摘要:校園新聞是師生、校外人員及時獲得學校最新信息的重要平臺。從河南機電學校的實際情況出發,經過對學校新聞發布事項的一番考察、分析,對師生及外界對校園新聞需求的調查基礎上,采用jsp+weblogic+sql技術設計并實現一個適用于校園的B/S模式新聞發布系統,同時對系統中存在的一些關鍵的問題進行研究并提出有效的解決方法。校園新聞的動態管理,使得對學校信息的管理更加及時、高效,在很大程度上也提高了工作效率。
關鍵詞:校園新聞發布;JSP;B/S;安全
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2010)21-5750-04
The Design and Realization of the Campus News Issue System Based on JSP Technology
LEI Gen-ping, WANG Kun-jie
(Henan Electrical and Mechanical School Henan, Zhengzhou 451191, China)
Abstract:Campus News is an important platform of access the latest information of school for teachers 、students andchool staff. It design and implementation of a suitable school The B / S Mode news release system using jsp + weblogic + sql technical, based on the analysis of The actual situation of Henan Electrical and Mechanical School, the investigation of some School news items, and the survey of demand on the Campus News for teachers and students outside the campus.while it studies the existence of the system in some of the key issues and propose effective solutions. The dynamic management of Campus Newsmakesthe management of school information more timely and increases efficiency.
Key words: campus press release;JSP; B/S; safety
隨著網絡技術的發展和Internet應用的普及,互聯網已成為人們獲取信息的重要來源。建立自己的網站已經成為的一個學校發展的必然趨勢,校園新聞發布系統是校園網站的重要組成部分,是師生、外界及時獲得學校最新消息的重要平臺。
傳統的新聞發布系統是采取靜態HTML頁面,更新信息時需要重新制作頁面然后上傳頁面并修改相應鏈接。學校新聞發布是一項瑣碎、復雜而又十分細致的工作,而且不容許出錯,這種方式對于信息量小的學校還能勉強能夠使用。但隨著教育行業的發展、學校規模的擴大,如果仍舊采取傳統的方式,將會耗費工作人員大量的時間和精力,并且也很難保證新聞的及時性和準確性。
本文對河南機電學校有關新聞發布事項的進行詳細考察、分析,并對師生及外界對學校新聞需求的調查,采用采用jsp+weblogic+sql技術設計實現出適用于校園的B/S模式的新聞發布系統,對系統中關鍵的安全問題提出了有效的解決方案,實現了網站新聞的動態管理,使得對信息的管理更加及時、高效,提高了工作效率,克服了傳統新聞發布方式的弊端。
1 需求分析
通過對學校有關新聞發布事項實際情況的考察分析,校園新聞發布的業務流程如圖1所示。
根據新聞發布流程圖及實際情況得出用戶的具體需求:
1)學校所發布的新聞根據顯示位置不同可分兩類:
① 部門新聞 該類新聞通過部門人員錄入發布后顯示在部門主頁;
② 校園新聞 該類新聞同樣是某部門人員錄入,但該錄入人員不具有發布權限,需經特定人員審核通過后由該特定人員發布,顯示在學校主頁。
2)新聞發布系統用戶分為三類:
① 系統管理員:負責用戶的添加、刪除及權限的設定,新聞類別的管理;
② 各部門新聞管理人員:錄入新聞、發布部門新聞;
③ 學校主頁新聞審核人員:負責審核學校主頁新聞的審核及發布。
3)新聞發布系統需要完成的功能有:
① 錄入:新聞內容的錄入,具體內容有標題、部門、發布人、審核人、關鍵字、正文、圖片、附件等;
② 發布:新聞在部門主頁或學校主頁顯示;
③ 審核:審核新聞能否在學校主頁顯示;
④ 修改:修改審核未通過的新聞或發現存在錯誤的且在兩天內的新聞;
⑤ 刪除:刪除不需要顯示的新聞(刪除新聞只是不在頁面顯示但數據庫中仍然存在)。
通過調查師生及外界對校園新聞系統的需求,得出校園新聞在頁面顯示時應該滿足以下要求:
1)在頁面上顯示最新的若干條新聞;
2)能夠查看所有新聞(被刪除的新聞除外);
3)能夠根據關鍵字搜索相關的新聞。
2 系統設計
根據以上對系統的需求分析,對校園新聞系統的功能及結構進行了詳細的設計。
2.1功能設計
結合校園新聞發布流程圖得出系統要實現的主要功能分為前臺顯示部分和后臺管理兩大部分,前臺顯示主要是針對登陸學校網站的用戶瀏覽新聞,后臺管理部分主要是對新聞添加刪除、修改等管理以及對用戶及其權限的管理。
1)前臺顯示新聞部分的具體功能包括:
●部門、學校主頁顯示最新的若干條新聞;
●根據關鍵字搜索相關新聞;
●新聞詳細信息瀏覽閱讀;
●新聞詳細頁面為統一格式,分別顯示標題、供稿單位、供稿人、編審人、新聞正文、圖片、附件等。
2)后臺管理部分的具體功能包括
●用戶登錄驗證;
●根據權限顯示相應的管理目錄;
●添加、修改和刪除新聞;
●錄入、提交、發布新聞;
●審核新聞;
●用戶及權限管理。
2.2 結構設計
圖2 為系統模塊結構圖。
3)數據庫主要關系表設計
在數據庫設計時,整體上綜合考慮兩方面因素:關系型數據庫規范化理論和表的連接操作對讀寫數據庫性能的影響,將數據庫設計成滿足3NF[1]。具體在每個表的每個字段上:字段名稱采取“簡潔而有意義”的原則;字段的類型和長度采取“節約夠用、適當留有余地以便于擴展”的原則。
在SQL Server 2000中共建了5個表:部門信息表、用戶表、新聞表、附件表、圖片表五個表格等以下是典型表及其字段的功能說明。
① 用戶表(news_user)
如表1所示。
② 新聞表(news_news)
如表2所示。
3 系統實現
1)使用JDB實現連接數據庫,代碼如下:
Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");
Connection con = DriverManager.getConnection(\"jdbc:odbc:news\");
Statement smt =con.createStatement();
2)新聞附件及圖片以文件的形式保存到指定的文件夾下,上傳附件及圖片使用jspsmartupload插件上傳,代碼如下:
int img_num=0,attach_num=0;
int file_num=su.getFiles().getCount();
for(int i=0;i { String file_name; com.jspsmart.upload.File file = su.getFiles().getFile(i); if (file.isMissing()) continue; file_name = file.getFileName(); if(file.getFileExt().equals(\"jpg\")||file.getFileExt().equals(\"JPG\")|| file.getFileExt().equals(\"gif\")|| file.getFileExt().equals(\"GIF\")) { img_num++;file.saveAs(\"upload/news/img/\"+news_id+i+\".\"+file.getFileExt() ,su.SAVE_VIRTUAL); String sql1=\"insert into news_Img(ImgID,NewsID,ImgTitle) values('\"+ news_id + i +\".\"+ file.getFileExt()+\"','\" + news_id + \"','\" + file_name +\"')\"; smt.executeUpdate(sql1); } Else { file.saveAs(\"/upload/news/attach/\" + news_id +i+\".\"+ file.getFileExt() ,su.SAVE_VIRTUAL); String sql2=\"insert into news_Attach(AttachID,NewsID,AttachTitle) values('\"+ news_id + i + \".\"+ file.getFileExt()+ \"','\" + news_id + \"','\" + file_name +\"')\"; smt.executeUpdate(sql2); attach_num++; } } 3)新聞發布頁面截圖如圖3。 4 關鍵問題及解決方法 1) 新聞編號問題 因為學校有多個部門,多個部門可能同時發布新聞,如果只按照時間來對新聞進行編號可能會產生沖突。本系統中新聞編號組成如下:部門編號+用戶編號+時間+隨機數。該編號方式除了能夠防止新聞編號沖突外,還能夠從新聞比好中讀取供稿部門、發布人等信息,可能節省數據庫中的存儲空間。 新聞編號生成代碼如下: Date currentTime = new Date(); SimpleDateFormat formatter = new SimpleDateFormat(\"yyyyMMddHHmmss\"); String datestr = formatter.format(currentTime); String depart=(String)session.getAttribute(\"user_id\"); String departid=depart.substring(0,3); double a=Math.random()*100; String newsid=departid+datestr+(int)a; 2) 根據需要)增加減少附件控件個數 因為新聞附件和圖片的個數不定,在發布無法給出上傳附件的空間個數,多則浪費空間,少則無法完成上傳任務,為了解決該問題,需要實現根據需要實現上傳控件的隨意增加減少功能代碼如下: function addRow1(){ var newTr = tb1.insertRow(); var newTd0 = newTr.insertCell(); newTd0.innerHTML = ''; } function addRow2(){ var newTr = tb2.insertRow(); var newTd0 = newTr.insertCell(); newTd0.innerHTML = ''; } function delRows(tb){ var iRowIndex = getRows() ; if(tb tb.tagName==\"TABLE\") { tb.deleteRow(iRowIndex) ; var iRows=tb.rows.length ; for (var i=iRowIndex;i tb[i]=tb[i+1]; tb.length=tb.length-1; } } } functiongetRows(){ var src=event.srcElement; var row=src.parentElement.parentElement; if(row row.tagName==\"TR\") return row.rowIndex; } 3) 上圖片容量影響網頁瀏覽速度問題及附件類型限定 如果一個網頁包含圖片、附件容量過大則會影響到網頁瀏覽的速度,為了解決該問題,本系統在設置新聞錄入模塊中,對圖片、附件的大小及做嚴格的限制。代碼如下: SmartUpload su = new SmartUpload(); su.initialize(pageContext); su.setAllowedFilesList( \"gif,jpg,rar,zip,doc,txt,xls \"); su.setDeniedFilesList( \"jsp,asp,php,aspx,html.htm \"); su.setMaxFileSize(200000); su.setTotalMaxFileSize(5000000); su.setContentDisposition(1); try { su.upload(); } catch (Exception e){ out.println( \"你選擇的文件不允許上傳或者文件過大,請返回檢查! \"); } 4) 用戶繞過登登錄問題 用戶登陸問題及用戶不經過登陸界面打開系統其他頁面,如果在此直接有合法用戶登陸過,不合法用戶能夠繞過。解決方法寫一個通用的基類,判斷用戶的session是否存在,如果不存在的話就轉到登陸頁面,代碼如下: session.setAttribute(\"user_id\",request.getParameter(\"user_name\")); String id=(String)session.getAttribute(\"user_right\"); if(id==1) { response.sendRedirect(\"error.jsp\"); } 5 小結 基于jsp新聞發布系統的設計完全依據河南機電學校的實際需要,實現中對一些關鍵問題提出了較好的解決方案。系統的投入使用很大程度上提高了新聞發布的工作效率,并為師生、外界及時獲得學校最新消息提供了重要平臺。 參考文獻: [1] 徐景忠,趙迪.新聞管理系統的具體實現及其優點[J].電腦知識與技術,2010(1). [2] 吳俊萍,孫根琴.基于JSP技術的新聞發布系統電[J].電腦知識與技術,2008(30). [3] 柳永坡,劉雪梅,趙長海.JSP應用開發技術[M].北京:人民郵電出版社,2005. [4] 賈素玲.JavaScript程序設計[M].北京:清華大學出版社,2007. [5] 袁健美.基于JSP的B/S動態網站開發及數據庫連接[J].計算機技術與發展,2007(6). [6] 程文.基于JSP開發動態網站的設計與實現[J].現代計算機,2002(10).