web開發(fā)課程設(shè)計-新聞發(fā)布系統(tǒng)_第1頁
已閱讀1頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  《WEB數(shù)據(jù)庫系統(tǒng)開發(fā)》</p><p><b>  ——新聞發(fā)布系統(tǒng)</b></p><p>  班 級: 計科092班 </p><p>  姓 名: </p><p>  學(xué) 號: </p>

2、<p>  指導(dǎo)教師: </p><p>  時 間: 2012-6-1 </p><p><b>  需求分析</b></p><p><b>  項目概述</b></p><p>  當(dāng)今社會是一個信息化的社會,新聞作為信息的

3、一部分,有著信息量大、類別繁多、形式多樣等特點。新聞發(fā)布系統(tǒng)由此提出,簡單地說,新聞發(fā)布系統(tǒng)就是充當(dāng)一個網(wǎng)絡(luò)新聞媒介的功能,主要對新聞的管理功能。隨著網(wǎng)絡(luò)的快速發(fā)展和普及,越來越多的用戶習(xí)慣上網(wǎng)瀏覽新聞。本系統(tǒng)的主要目的就是為用戶提供一個方便、及時的網(wǎng)上新聞發(fā)布、瀏覽平臺。利用本系統(tǒng),用戶可以直接在網(wǎng)上發(fā)布新聞信息并根據(jù)自己的需要對新聞進(jìn)行檢索。</p><p><b>  需求分析</b>

4、</p><p>  1.2.1 功能需求描述</p><p>  新聞發(fā)布系統(tǒng)的主要目的是為用戶提供一個方便的、可快速瀏覽當(dāng)前最新新聞的界面,并且也可以隨時發(fā)布最新的訊息以達(dá)到信息共享的目的。因此要為用戶提供方便易用的使用界面,同時也為具有更高權(quán)限的管理用戶提供添加、刪除新聞的系統(tǒng)維護(hù)功能。</p><p>  1.2.2 基本功能</p><

5、;p>  1 查看新聞功能:任何用戶均可以使用查看新聞功能。首頁顯示不同欄目的最新幾條新聞,用戶通過在系統(tǒng)導(dǎo)航欄上單擊“新聞中心”超鏈接,可以進(jìn)入查看所有新聞的頁面,查看新聞,并且使用分頁顯示的效果,每頁顯示20條新聞,用戶可通過單擊下方的上下頁及首尾頁按鈕來跳轉(zhuǎn)到任意一頁瀏覽。并且顯示的所有新聞按發(fā)布的時間降序排列,以保證最新發(fā)布的新聞位于最前面。用戶通過單擊每條新聞的標(biāo)題可以查看到新聞的詳細(xì)內(nèi)容。</p><

6、;p>  2新聞搜索功能:任何用廣均可以使用新聞搜索功能。通過在“查詢類別”下拉列表框中選擇按新聞的標(biāo)題、內(nèi)容、作者和發(fā)布日期等不同的查詢方式來搜索符合條件的新聞。這里提供的是模糊搜索功能,即只要在查詢字段中包含用戶輸入的關(guān)鍵字內(nèi)容就認(rèn)為是符合查詢條件的記錄。查詢結(jié)果同樣以分頁的方式顯示。</p><p>  3 下載中心:任何用戶均可以使用下載功能。用戶通過在系統(tǒng)導(dǎo)航欄上單擊“下載中心”超鏈接可以進(jìn)入下載

7、頁面。該頁面顯示所有可供瀏覽者下載的文件,點擊文件名即可下載相應(yīng)的文件</p><p>  4留言功能:為了了解網(wǎng)站訪問者對站點的意見,本系統(tǒng)提供留言功能,所有用戶都可以通過導(dǎo)航欄上的“我要留言”鏈接進(jìn)入留言板系統(tǒng)進(jìn)行留言,無需注冊,只需填寫留言內(nèi)容、主題、用戶名即可進(jìn)行留言。 </p><p>  5后臺管理功能:當(dāng)管理員登錄后臺管理后,可以進(jìn)行新聞管理操作,包括發(fā)布新聞,對現(xiàn)有新聞的修

8、改和刪除;對文件的管理操作,包括文件上傳、下載、刪除等;用戶管理操作,對管理員用戶的增加、刪除及修改個人信息等;圖片管理操作,包括對圖片的上傳、刪除等;留言管理操作,包括對留言的回復(fù)、審核、刪除等操作。管理員可通過單擊“安全退出”按鈕來安全退出。</p><p><b>  概要設(shè)計</b></p><p>  在前面對用戶需求的分析和研究的過程中,對于本系統(tǒng)中幾個主

9、要的功能模塊大致有了一個抽象的認(rèn)識。下面將通過概要設(shè)計,給出新聞發(fā)布系統(tǒng)的模塊結(jié)構(gòu)、流程描述和用戶界面布局。</p><p>  2.1 開發(fā)與設(shè)計的總體思想</p><p>  新聞發(fā)布系統(tǒng)面向各個層次的網(wǎng)絡(luò)用戶,為了使它適合更多的用戶使用,系統(tǒng)的界面設(shè)計應(yīng)該盡量做到簡潔、友好、方便、易用,用戶不需要專門的學(xué)習(xí)便可熟練操作。</p><p>  首頁主要分為七個

10、板塊:圖片新聞、熱點新聞、最新公告、圖片掠影、天氣預(yù)報、下載中心、友情鏈接。首頁頭部logo有自動切換功能,管理員進(jìn)入后臺后,左邊為導(dǎo)航條,分別有:用戶管理、新聞管理、文件管理、圖片管理、留言管理,右邊為相應(yīng)操作界面。</p><p>  本系統(tǒng)采用B/S模式,服務(wù)器端使用JSP進(jìn)行動態(tài)網(wǎng)頁的開發(fā)。并使用struts2的MVC模式,使用第三方文本編輯插件fckeditor。</p><p>

11、;  2.2 系統(tǒng)模塊結(jié)構(gòu)圖</p><p>  依據(jù)需求分析結(jié)果,新聞發(fā)布系統(tǒng)可以分為六個模塊:數(shù)據(jù)庫訪問模塊、新聞查看模塊、新聞管理模塊、上傳管理模塊、留言管理模塊和用戶管理模塊,如圖2—1所示。</p><p>  2-1系統(tǒng)模塊結(jié)構(gòu)圖</p><p><b>  2.3 模塊設(shè)計</b></p><p>  

12、1、數(shù)據(jù)庫訪問模塊:利用JavaBean封裝對數(shù)據(jù)庫的操作,主要包括連接數(shù)據(jù)庫、添加、修改、刪除、查詢數(shù)據(jù)表、關(guān)閉連接等功能。當(dāng)JSP頁面中需要訪問數(shù)據(jù)庫時直接調(diào)用這個JavaBean即可。數(shù)據(jù)庫訪問模塊功能樹如圖2—2所示。</p><p>  2-2數(shù)據(jù)庫訪問模塊</p><p>  2、新聞查看模塊:新聞查看模塊提供分頁顯示全部新聞的功能,用戶通過單擊每條新聞的標(biāo)題可以查看到本條新聞

13、的詳細(xì)內(nèi)容。還可以通過輸入查詢類別和查詢關(guān)鍵字來選擇符合條件的新聞瀏覽。新聞查看模塊功能樹如圖2—3所示。</p><p><b>  2-3新聞查看模塊</b></p><p>  3、新聞管理模塊:新聞管理模塊包括修改新聞和刪除新聞的功能。在進(jìn)入管理模塊前,需要以合法的管理員身份登錄。新聞管理模塊功能樹如圖2—4所示。</p><p>&l

14、t;b>  2-4新聞管理模塊</b></p><p>  4、上傳管理模塊:上傳管理模塊包括文件上傳、下載、刪除功能,需以管理員身份進(jìn)入系統(tǒng)才能操作。</p><p>  留言管理模塊:留言管理模塊包括留言查看、審核、回復(fù)、刪除功能需</p><p>  以管理員身份進(jìn)入系統(tǒng)才能操作。</p><p>  6、用戶管理模塊

15、:用戶管理模塊包括對系統(tǒng)管理員得添加、刪除及個人信息修改功能,需提供管理員權(quán)限才能進(jìn)行操作。</p><p><b>  2.4 功能圖</b></p><p>  根據(jù)以上分析,可得系統(tǒng)功能圖如下所示:</p><p><b>  2.5 數(shù)據(jù)庫設(shè)計</b></p><p>  本系統(tǒng)主要涉及四

16、張表:管理員表(admin)、新聞表(news)、文件表(upload)、留言表(messages)。采用MySql數(shù)據(jù)庫。</p><p>  新聞:主要屬性有Id、類別、關(guān)鍵字、發(fā)布人、文章來源、新聞內(nèi)容、瀏覽次數(shù)、新聞標(biāo)題以及發(fā)布時間。</p><p>  管理員表:主要屬性有Id、姓名、密碼。</p><p>  上傳文件表:主要屬性有Id、文件存放路徑、文

17、件名稱、上傳時間。</p><p>  留言表:主要屬性有Id、主題、內(nèi)容、回復(fù)內(nèi)容、留言時間、留言人、心情、頭像、父級留言Id、留言人Email</p><p>  存儲新聞信息的news表。表結(jié)構(gòu)如表2-1所示。</p><p>  表2-1 數(shù)據(jù)表news的結(jié)構(gòu)</p><p>  admin數(shù)據(jù)表存儲管理員的信息,表的結(jié)構(gòu)如表2-2所

18、示。</p><p>  表2-2 數(shù)據(jù)表admin的結(jié)構(gòu)</p><p>  存儲上傳文件的信息upload表,表結(jié)構(gòu)如2-3所示。</p><p>  表2-3 數(shù)據(jù)表upload的結(jié)構(gòu)</p><p><b>  存儲留言信息的表</b></p><p><b>  表2-4 留言

19、表:</b></p><p><b>  詳細(xì)設(shè)計</b></p><p><b>  3.1 數(shù)據(jù)庫訪問</b></p><p><b>  功能:連接數(shù)據(jù)庫</b></p><p>  實現(xiàn):使用JDBC驅(qū)動,寫一個工具類,提供加載驅(qū)動、建立連接、釋放資源的靜態(tài)

20、方法,要用時直接通過類名.方法名調(diào)用。</p><p>  package com.king.utils;</p><p>  import java.sql.Connection;</p><p>  import java.sql.DriverManager;</p><p>  import java.sql.ResultSet;<

21、;/p><p>  import java.sql.SQLException;</p><p>  import java.sql.Statement;</p><p>  public final class DBConnector {</p><p>  private static String url=”jdbc:mysql://loca

22、lhost:3306/newssys”;</p><p>  private static String user = "root";</p><p>  private static String password = "root";</p><p><b>  static{</b></p>

23、;<p><b>  try {</b></p><p>  Class.forName("com.mysql.jdbc.Driver");</p><p>  } catch (ClassNotFoundException e) {</p><p>  e.printStackTrace();</p&g

24、t;<p><b>  }</b></p><p><b>  }</b></p><p>  public static Connection getConnection() throws SQLException{</p><p>  return DriverManager.getConnection(

25、url,user,password);</p><p><b>  }</b></p><p>  public static void free(ResultSet rs,Statement st,Connection con){</p><p><b>  try {</b></p><p> 

26、 if(rs!=null)</p><p>  rs.close();</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p>  } finally {</p><p><b>  try {</b>

27、</p><p>  if(st!=null)</p><p>  st.close();</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p>  } finally{</p><p><b

28、>  try {</b></p><p>  if(con!=null)</p><p>  con.close();</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }<

29、;/b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  } </b></p><p><b>  }</b></p><p><b>  3.2 新聞瀏覽

30、</b></p><p>  功能:通過點擊新聞查看新聞的詳細(xì)內(nèi)容</p><p>  實現(xiàn):點擊新聞后根據(jù)新聞ID查詢出新聞詳細(xì)內(nèi)容,封裝至新聞的JavaBean中,傳至JSP頁面,取出數(shù)據(jù)顯示</p><p>  public News getNewsDetail(String news_id){</p><p>  News

31、 news = new News();</p><p><b>  try {</b></p><p>  con = DBConnector.getConnection();</p><p>  ps = con.prepareStatement("select * from news where news_id=?");

32、</p><p>  ps.setString(1, news_id);</p><p>  rs = ps.executeQuery();</p><p>  while(rs.next()){</p><p>  news.setNews_id(rs.getInt(1));</p><p>  news.setNe

33、ws_type(rs.getString(2));</p><p>  news.setNews_keys(rs.getString(3));</p><p>  news.setNews_author(rs.getString(4));</p><p>  news.setNews_origin(rs.getString(5));</p><p

34、>  news.setNews_content(rs.getString(6));</p><p>  news.setNews_title(rs.getString(7));</p><p>  news.setNews_read(rs.getShort(8));</p><p>  news.setNews_time(rs.getString(9));&l

35、t;/p><p><b>  }</b></p><p>  ps = con.prepareStatement("update news set news_read=? where news_id=?");</p><p>  ps.setInt(1, news.getNews_read()+1);//將閱讀次數(shù)加1</

36、p><p>  ps.setString(2, news_id);</p><p>  ps.executeUpdate();</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }finally{&l

37、t;/b></p><p>  DBConnector.free(rs, ps, con);</p><p><b>  }</b></p><p>  return news;</p><p><b>  }</b></p><p><b>  3.3 新聞

38、管理</b></p><p>  3.3.1 發(fā)布新聞:</p><p>  功能:管理員在后臺發(fā)布新聞。</p><p>  實現(xiàn):將新聞的信息存入數(shù)據(jù)庫,添加成功則返回true,否則返回false</p><p>  public boolean addArticle(String news_type, String news

39、_title,</p><p>  String news_keys, String news_author, String news_content,</p><p>  String news_origin, String news_time, int news_read){</p><p>  boolean b = false;</p><

40、;p>  String sql = "insert into news values (null,?,?,?,?,?,?,?,?)";</p><p><b>  try {</b></p><p>  con = DBConnector.getConnection();</p><p>  ps = con.prep

41、areStatement(sql);</p><p>  ps.setString(1, news_type);</p><p>  ps.setString(2, news_keys);</p><p>  ps.setString(3, news_author);</p><p>  ps.setString(4, news_origin

42、);</p><p>  ps.setString(5, news_content);</p><p>  ps.setString(6, news_title);</p><p>  ps.setInt(7, news_read);</p><p>  ps.setString(8, news_time);</p><p

43、>  int result = ps.executeUpdate();</p><p>  if (result != 0) {</p><p><b>  b = true;</b></p><p><b>  }</b></p><p>  } catch (SQLException e)

44、 {</p><p>  e.printStackTrace();</p><p><b>  }finally{</b></p><p>  DBConnector.free(rs, ps, con);</p><p><b>  }</b></p><p><b&g

45、t;  return b;</b></p><p><b>  }</b></p><p>  3.3.2 編輯新聞:</p><p><b>  功能:修改新聞內(nèi)容</b></p><p>  實現(xiàn):根據(jù)新聞的ID,修改新聞信息。成功則返回true,否則返回false </p&g

46、t;<p>  public boolean editArticle(String news_type, String news_title,String news_keys, String news_author, String news_content,String news_origin, String news_time, int news_read,String news_id){</p><

47、p>  boolean b = false;</p><p>  String sql = "update news set news_type=?,news_keys=?,news_author=?,news_origin=?,news_content=?,news_title=?,news_read=?,news_time=? where news_id=?";</p>

48、<p><b>  try {</b></p><p>  con = DBConnector.getConnection();</p><p>  ps = con.prepareStatement(sql);</p><p>  ps.setString(1, news_type);</p><p>  

49、ps.setString(2, news_keys);</p><p>  ps.setString(3, news_author);</p><p>  ps.setString(4, news_origin);</p><p>  ps.setString(5, news_content);</p><p>  ps.setString(

50、6, news_title);</p><p>  ps.setInt(7, news_read);</p><p>  ps.setString(8, news_time);</p><p>  ps.setString(9, news_id);</p><p>  int result = ps.executeUpdate();</

51、p><p>  if (result != 0) {</p><p><b>  b = true;</b></p><p><b>  }</b></p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace(

52、);</p><p><b>  }finally{</b></p><p>  DBConnector.free(rs, ps, con);</p><p><b>  }</b></p><p><b>  return b;</b></p><p>

53、;<b>  }</b></p><p>  3.3.3 刪除新聞:</p><p><b>  功能:刪除指定新聞</b></p><p>  實現(xiàn):根據(jù)該新聞ID刪除記錄,成功返回true,否則返回false.</p><p>  public boolean deleteNews(String

54、 news_id){</p><p>  boolean b = false;</p><p><b>  try {</b></p><p>  con = DBConnector.getConnection();</p><p>  ps = con.prepareStatement("delete fro

55、m news where news_id=?");</p><p>  ps.setString(1, news_id);</p><p>  if(ps.executeUpdate()!=0){</p><p><b>  b=true;</b></p><p><b>  }</b>&

56、lt;/p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }finally{</b></p><p>  DBConnector.free(rs, ps, con);</p><p><

57、b>  }</b></p><p><b>  return b;</b></p><p><b>  }</b></p><p>  3.3.3 搜索新聞:</p><p>  功能:根據(jù)關(guān)鍵字搜索新聞</p><p>  實現(xiàn):接收搜索關(guān)鍵字,對新聞進(jìn)行

58、模糊搜索,并將搜索結(jié)果封裝到一個PageModel的Bean中,該Ban存放了搜索結(jié)果的所有信息,返回至JSP頁面后即可取出相應(yīng)信息并顯示。</p><p>  public PageModel<News> searchNews(String key,int pageNow){</p><p>  PageModel<News> newsModel = new Pa

59、geModel<News>();</p><p>  ArrayList<News> newsList = new ArrayList<News>();</p><p>  int totalRecord=0;</p><p><b>  try {</b></p><p>  con

60、 = DBConnector.getConnection();</p><p>  ps = con.prepareStatement("select count(*) from news where news_title like ?");</p><p>  ps.setString(1, "%"+key+"%");</

61、p><p>  rs = ps.executeQuery();</p><p>  if(rs.next()){</p><p>  totalRecord = rs.getInt(1);</p><p><b>  }</b></p><p>  ps = con.prepareStatement(

62、"select * from news where news_title like ? limit ?,?");</p><p>  ps.setString(1, "%"+key+"%");</p><p>  ps.setInt(2, pageSize*(pageNow-1));</p><p>  p

63、s.setInt(3, pageSize);</p><p>  rs = ps.executeQuery();</p><p>  while(rs.next()){</p><p>  News news = new News();</p><p>  news.setNews_id(rs.getInt(1));</p>&

64、lt;p>  news.setNews_type(rs.getString(2));</p><p>  news.setNews_keys(rs.getString(3));</p><p>  news.setNews_origin(rs.getString(5));</p><p>  news.setNews_title(rs.getString(7)

65、);</p><p>  news.setNews_time(rs.getString(9));</p><p>  newsList.add(news);</p><p><b>  }</b></p><p>  } catch (SQLException e) {</p><p>  e.p

66、rintStackTrace();</p><p><b>  }finally{</b></p><p>  DBConnector.free(rs, ps, con);</p><p><b>  }</b></p><p>  newsModel.setList(newsList);</

67、p><p>  newsModel.setPageNow(pageNow);</p><p>  newsModel.setPageSize(pageSize);</p><p>  newsModel.setTotalRecords(totalRecord);</p><p>  return newsModel;</p><

68、;p><b>  }</b></p><p><b>  3.4 上傳管理</b></p><p>  3.4.1 上傳文件</p><p>  功能:實現(xiàn)文件上傳,可一次上傳多個文件,并對文件大小、類型進(jìn)行過濾</p><p>  實現(xiàn):使用apache的common-fileupload組

69、件實現(xiàn),將文件上傳至服務(wù)器,同時在數(shù)據(jù)庫中存儲相應(yīng)文件的信息。</p><p><b>  1、上傳至服務(wù)器:</b></p><p>  package com.king.action;</p><p>  import java.io.File;</p><p>  import java.io.FileInputS

70、tream;</p><p>  import java.io.FileOutputStream;</p><p>  import java.io.InputStream;</p><p>  import java.io.OutputStream;</p><p>  import java.util.Date;</p>&

71、lt;p>  import java.util.List;</p><p>  import org.apache.struts2.ServletActionContext;</p><p>  import com.king.dao.UploadManager;</p><p>  import com.king.utils.DateFormatEditor

72、;</p><p>  import com.opensymphony.xwork2.ActionSupport;</p><p>  public class UploadAction extends ActionSupport {</p><p>  private List<File> file;//file對應(yīng)于表單的file</p

73、><p>  private List<String> fileFileName;</p><p>  private List<String> fileContenType;</p><p>  private String savePath;</p><p>  private int id;</p>

74、<p>  UploadManager uploadManager = new UploadManager();</p><p>  public int getId() {</p><p>  return id;</p><p><b>  }</b></p><p>  public void setI

75、d(int id) {</p><p>  this.id = id;</p><p><b>  }</b></p><p>  public String getSavePath() {</p><p>  return savePath;</p><p><b>  }</b

76、></p><p>  public void setSavePath(String savePath) {</p><p>  this.savePath = savePath;</p><p><b>  }</b></p><p>  public List<File> getFile() {&l

77、t;/p><p>  return file;</p><p><b>  }</b></p><p>  public void setFile(List<File> file) {</p><p>  this.file = file;</p><p><b>  }<

78、/b></p><p>  public List<String> getFileFileName() {</p><p>  return fileFileName;</p><p><b>  }</b></p><p>  public void setFileFileName(List<S

79、tring> fileFileName) {</p><p>  this.fileFileName = fileFileName;</p><p><b>  }</b></p><p>  public List<String> getFileContenType() {</p><p>  ret

80、urn fileContenType;</p><p><b>  }</b></p><p>  public void setFileContenType(List<String> fileContenType) {</p><p>  this.fileContenType = fileContenType;</p>

81、;<p><b>  }</b></p><p>  @SuppressWarnings("deprecation")</p><p><b>  @Override</b></p><p>  public String execute(){</p><p>&l

82、t;b>  try{</b></p><p>  for(int i = 0;i < file.size();++i){</p><p>  if(file.get(i).length()!=0){</p><p>  InputStream is = new FileInputStream(file.get(i));</p>

83、<p>  String root = ServletActionContext.getRequest().getRealPath(this.getSavePath());</p><p>  File destFile = new File(root,this.getFileFileName().get(i));</p><p>  String time = new Date

84、FormatEditor().dateEditor2(new Date());</p><p>  if(uploadManager.savePath(null,this.getFileFileName().get(i), time)){</p><p>  OutputStream os = new FileOutputStream(destFile);</p><p

85、>  int length = 0;</p><p>  byte[] buffer = new byte[400];</p><p>  while((length = is.read(buffer)) >0){</p><p>  os.write(buffer, 0, length);</p><p><b>  

86、}</b></p><p>  is.close();</p><p>  os.close();</p><p>  ServletActionContext.getRequest().setAttribute("state", "uploadFileSucc");</p><p>  r

87、eturn SUCCESS;</p><p><b>  }else{</b></p><p>  return ERROR;</p><p><b>  }</b></p><p><b>  }else{</b></p><p>  return E

88、RROR;</p><p><b>  }</b></p><p><b>  }</b></p><p>  }catch(Exception e){</p><p>  e.printStackTrace();</p><p>  return ERROR;</p&

89、gt;<p><b>  }</b></p><p>  return SUCCESS;</p><p><b>  }</b></p><p><b>  }</b></p><p>  2、文件信息存入數(shù)據(jù)庫:</p><p>  pu

90、blic boolean savePath(String filePath,String name,String time) {</p><p>  boolean flag = false;</p><p>  String sql = "insert into upload values (null,?,?,?)";</p><p><

91、b>  try {</b></p><p>  con = DBConnector.getConnection();</p><p>  pstmt = con.prepareStatement(sql);</p><p>  pstmt.setString(1, filePath);</p><p>  pstmt.set

92、String(2, name);</p><p>  pstmt.setString(3, time);</p><p>  int result = pstmt.executeUpdate();</p><p>  if(result != 0) {</p><p>  flag = true;</p><p>&l

93、t;b>  }</b></p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }finally{</b></p><p>  DBConnector.free(rs, pstmt, con);&

94、lt;/p><p><b>  }</b></p><p>  return flag;</p><p><b>  }</b></p><p>  3.4.2 刪除文件</p><p>  功能:刪除服務(wù)器中供下載的文件</p><p>  實現(xiàn):刪除服

95、務(wù)器中供下載的文件,并刪除數(shù)據(jù)庫中相應(yīng)的記錄</p><p>  package com.king.action;</p><p>  import java.io.File;</p><p>  import org.apache.struts2.ServletActionContext;</p><p>  import org.omg.

96、CORBA.Request;</p><p>  import com.king.dao.UploadManager;</p><p>  import com.opensymphony.xwork2.ActionSupport;</p><p>  public class DeleteFileAction extends ActionSupport {</

97、p><p>  private int id;</p><p>  public int getId() {</p><p>  return id;</p><p><b>  }</b></p><p>  public void setId(int id) {</p><p&

98、gt;  this.id = id;</p><p><b>  }</b></p><p><b>  @Override</b></p><p>  public String execute() throws Exception {</p><p>  UploadManager manage

99、r = new UploadManager();</p><p>  String path = ServletActionContext.getRequest().getRealPath("/upload/file");</p><p>  System.out.println(manager.getFileNameById(this.getId()));</p

100、><p>  File file = new File(path,manager.getFileNameById(this.getId()));</p><p><b>  try{</b></p><p>  if(manager.deleteFile(this.getId())){</p><p>  file.dele

101、te();//刪除磁盤上的文件</p><p>  ServletActionContext.getRequest().setAttribute("state", "deleteFileSuc");</p><p><b>  }</b></p><p>  }catch(Exception e){<

102、;/p><p>  e.printStackTrace();</p><p>  ServletActionContext.getRequest().setAttribute("state", "deleteFileFail");</p><p>  return ERROR;</p><p><b&

103、gt;  }</b></p><p>  return SUCCESS;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  3.5 留言管理</b></p><p><b>

104、  功能:刪除留言</b></p><p>  實現(xiàn):根據(jù)后臺指定要刪除留言的Id,在數(shù)據(jù)庫中刪除留言及其下級留言</p><p>  public boolean deleteMessage(String id){</p><p>  boolean b = false;</p><p><b>  try {<

105、/b></p><p>  con = DBConnector.getConnection();</p><p>  ps =con.prepareStatement("delete from messages where pid=?");</p><p>  ps.setString(1, id);</p><p>

106、;  ps.executeUpdate();</p><p>  ps = con.prepareStatement("delete from messages where Id=?");</p><p>  ps.setString(1, id);</p><p>  if(ps.executeUpdate()==1){</p>

107、<p><b>  b = true;</b></p><p><b>  }</b></p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }finally{</

108、b></p><p>  DBConnector.free(rs, null, con);</p><p><b>  }</b></p><p><b>  return b;</b></p><p><b>  }</b></p><p>&l

109、t;b>  3.6 用戶管理</b></p><p>  3.6.1 添加用戶</p><p>  public boolean addUser(String username,String password){</p><p>  boolean b = false;</p><p><b>  try {<

110、;/b></p><p>  con = DBConnector.getConnection();</p><p>  ps = con.prepareStatement("insert into admin(name,password) values(?,?)");</p><p>  ps.setString(1, username);

111、</p><p>  ps.setString(2, password);</p><p>  if(ps.executeUpdate()==1){</p><p><b>  b = true;</b></p><p><b>  }</b></p><p>  } cat

112、ch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }finally{</b></p><p>  DBConnector.free(rs, ps, con);</p><p><b>  }</b></p>

113、;<p><b>  return b;</b></p><p><b>  }</b></p><p>  3.6.2 刪除用戶</p><p>  public boolean delUser(String userid){</p><p>  boolean b = false;

114、</p><p><b>  try {</b></p><p>  con = DBConnector.getConnection();</p><p>  ps = con.prepareStatement("delete from admin where Id=?");</p><p>  ps

115、.setString(1, userid);</p><p>  if(ps.executeUpdate()==1){</p><p><b>  b = true;</b></p><p><b>  }</b></p><p>  } catch (SQLException e) {</p

116、><p>  e.printStackTrace();</p><p><b>  }finally{</b></p><p>  DBConnector.free(rs, ps, con);</p><p><b>  }</b></p><p><b>  retu

117、rn b;</b></p><p><b>  }</b></p><p><b>  3.7 建立數(shù)據(jù)庫</b></p><p>  本系統(tǒng)采用MySql6.0數(shù)據(jù)庫</p><p>  3.7.1 表admin:</p><p>  CREATE TABLE

118、`admin` (</p><p>  `Id` int(11) NOT NULL AUTO_INCREMENT,</p><p>  `name` varchar(20) NOT NULL DEFAULT '',</p><p>  `password` varchar(30) DEFAULT NULL,</p><p> 

119、 PRIMARY KEY (`Id`)</p><p>  ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=gbk;</p><p>  3.7.2 表news:</p><p>  CREATE TABLE `news` (</p><p>  `news_id` int(11) NOT N

120、ULL AUTO_INCREMENT,</p><p>  `news_type` varchar(10) NOT NULL,</p><p>  `news_keys` varchar(50) DEFAULT '',</p><p>  `news_author` varchar(30) DEFAULT '',</p>

121、<p>  `news_origin` varchar(80) DEFAULT '',</p><p>  `news_content` longtext NOT NULL,</p><p>  `news_title` varchar(100) NOT NULL,</p><p>  `news_read` int(11) DEFAUL

122、T '0',</p><p>  `news_time` varchar(20) NOT NULL,</p><p>  PRIMARY KEY (`news_id`)</p><p>  ) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=gbk;</p><p>  `3.

123、7.3 表upload:</p><p>  CREATE TABLE `upload` (</p><p>  `id` int(11) NOT NULL AUTO_INCREMENT,</p><p>  `path` varchar(100) DEFAULT NULL,</p><p>  `name` varchar(30) NOT

124、NULL,</p><p>  `time` varchar(30) NOT NULL,</p><p>  PRIMARY KEY (`id`)</p><p>  ) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=gbk;</p><p><b>  總結(jié)</b>&l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論