




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
任務6.2實現新聞發(fā)布系統后臺管理功能任務實施主講:
新聞發(fā)布系統—Servlet技術實現任務描述知識準備總結與練習目錄CONTENTS任務實施01新聞發(fā)布系統后臺管理將程序中的實體對象和業(yè)務邏輯分別封裝到單獨的Java類中,使用MVC設計模式,小組成員按照分工要求,共同完成新聞發(fā)布系統后臺管理功能,提高程序的可讀性和易維護性。任務實施
1.實現后臺查看新聞列表功能合法用戶登錄進入后臺管理頁面后,單擊新聞詳情可以查看所有新聞列表,實現后臺查看新聞列表功能的步驟如下。①
在servlet包下創(chuàng)建Servlet類SearchNewsList。SearchNewsList類主要用于獲取新聞相關信息,調用后臺NewsDaoImpl對象的查詢新聞方法。將查詢的集合newsList存入request作用域,然后請求轉發(fā)回layUI_NewsList.jsp新聞列表頁面。SearchNewsList的實現代碼參考如下。任務實施
@WebServlet("/manager/News/SearchNewsList")publicclassSearchNewsListextendsHttpServlet{@OverrideprotectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//創(chuàng)建dao對象,調用dao中對應的方法(查詢所有新聞)NewsDaoImplnewsDao=newNewsDaoImpl();List<News>newsList=newsDao.search();request.setAttribute("newsList",newsList);//將newsList存入request作用域request.getRequestDispatcher("/manager/News/layUI_NewsList.jsp").forward(request,response);//跳轉到layUI_NewsList.jsp}任務實施
②
在news_mvc項目的web/manager/News目錄下新建layUI_NewsList.jsp頁面。在靜態(tài)代碼的基礎上加入Java腳本段,從request作用域中獲取新聞列表。如果用戶直接訪問該頁面,而不是先訪問SearchNewsList的Servlet,則讓用戶重定向到SearchNewsList。注:在MVC設計模式中,我們在JSP頁面中盡可能不直接和Dao打交道。任務實施
<%//從request作用域中取出新聞列表List<News>list=(List<News>)request.getAttribute("newsList");if(list==null){//list==null說明用戶直接訪問該頁面,不是先訪問名為SearchNewsList//的Servlet,所以需要讓用戶重定向到名為SearchNewsList的Servletresponse.sendRedirect(request.getContextPath()+"/manager/News/SearchNewsList");}elseif(list.size()==0){//暫無新聞%><div>暫無新聞</div><%}else{%><!--主體內容-->
<tableclass="layui-table"lay-even=""lay-skin="row"
style="text-align:center;">
<colgroup>
<colwidth="20%">
<colwidth="20%">
<colwidth="20%">
<colwidth="20%">
<colwidth="20%">
</colgroup>
<thead>
<tr>
<th>編號</th>
<th>標題</th>
<th>時間</th>
<th>修改</th>
<th>刪除</th>
</tr>
</thead>任務實施
<tbody><%for(Newsnews:list){%><tr><td><%=news.getN_id()%></td><td><%=news.getN_title()%></td><td><%=news.getN_publishtime()%></td><td><ahref="ToUpdateNews?n_id=<%=news.getN_id()%>"><buttontype="button"class="layui-btnlayui-btn-warm">修改</button></a></td><td><ahref="javascript:checkDelete(<%=news.getN_id()%>)"><buttontype="button"class="layui-btnlayui-btn-danger">刪除</button></a></td></tr><%}}%></tbody></table>任務實施
③
新聞列表功能測試。一種測試方法是直接在瀏覽器訪問http://localhost:8080/news_mvc_war_exploded/manager/News/layUI_NewsList.jsp,會跳轉至SearchNewsList,然后請求轉發(fā)回layUI_NewsList.jsp頁面,顯示所有新聞列表。另一種測試方法是直接在瀏覽器訪問http://localhost:8080/news_mvc_war_exploded/manager/News/SearchNewsList,請求轉發(fā)至layUI_NewsList.jsp頁面后顯示所有新聞列表。執(zhí)行效果如圖6-8所示。任務實施
任務實施
整個項目完成后,新聞的增、刪、改、查會整合到后臺管理首頁bottom_index.jsp,在該首頁中可以實現對新聞及新聞類別的統一管理,頁面效果如圖6-9所示。任務實施
2.實現新聞添加功能①
在news_mvc項目的web/manager/News目錄下新建layUI_NewsAdd.jsp頁面。在靜態(tài)代碼的基礎上加入Java腳本段,調用TypeDaoImpl中的search()方法獲取所有新聞類別,實現新聞類別詳情在下拉列表中顯示。表單提交到路徑為DoAddNews的Servlet中。任務實施
文件layUI_NewsAdd.jsp部分代碼示例如下。<formclass="layui-form"action="<%=request.getContextPath()%>/manager/News/DoAddNews"name="form1"method="post"><divclass="layui-form-item"><labelclass="layui-form-label">新聞標題</label><divclass="layui-input-block"><inputtype="text"name="n_title"requiredlay-verify="required"placeholder="請輸入標題"autocomplete="off"class="layui-input"></div></div><%TypeDaoImpltypeDao=newTypeDaoImpl();List<Type>list=typeDao.search();%><divclass="layui-form-item"><labelclass="layui-form-label">新聞類別</label><divclass="layui-input-block"><selectname="t_id"lay-verify="required"><%for(Typetype:list){%><optionvalue="<%=type.getT_id()%>"><%=type.getT_name()%></option><%}%></select></div></div>
<divclass="layui-form-itemlayui-form-text">
<labelclass="layui-form-label">新聞內容</label>
<divclass="layui-input-block">
<textareaname="n_content"placeholder="請輸入內容"
class="layui-textarea"></textarea>
</div>
</div>
<divclass="layui-form-item">
<divclass="layui-input-block">
<buttonclass="layui-btn"lay-submitlay-filter="formDemo">立即提交</button>
<buttontype="reset"class="layui-btnlayui-btn-primary">重置</button>
<buttontype="button"class="layui-btnlayui-btn-normal"
onclick="back()">取消</button>
</div>
</div></form>任務實施
②
在servlet包下創(chuàng)建Servlet類DoAddNews。DoAddNews類主要用于獲取用戶提交的新聞相關參數,構建新聞對象,然后調用后臺NewsDaoImpl對象的新聞添加方法實現新聞添加。如果添加成功,則跳轉到SearchNewsList查看新聞列表;如果不成功,則請求轉發(fā)回新聞添加頁面。DoAddNews的實現代碼參考如下。任務實施
@WebServlet("/manager/News/DoAddNews")publicclassDoAddNewsextendsHttpServlet{protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{request.setCharacterEncoding("UTF-8");//獲取請求參數Stringn_title=request.getParameter("n_title");Stringn_content=request.getParameter("n_content");intt_id=Integer.parseInt(request.getParameter("t_id"));Datedate=newDate();SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");Stringn_publishtime=sdf.format(date);//Newsnews=newNews(n_title,n_content,t_id,n_publishtime);//調用dao對象的新聞添加方法實現新聞添加NewsDaonewsDao=newNewsDaoImpl();Booleanflag=newsDao.add(news);//添加成功,跳轉到SearchNewsList進行展示if(flag){response.sendRedirect(request.getContextPath()+"/manager/News/SearchNewsList");}else{//添加不成功,回到新聞添加頁面request.getRequestDispatcher("/manager/News/layUI_NewsAdd.jsp").forward(request,response);}}}任務實施
③
新聞添加功能測試。在layUI_NewsAdd.jsp頁面中輸入信息,單擊“立即提交”按鈕,會進入路徑為/manager/News/DoAddNews的Servlet,對提交的數據進行處理。如果添加成功,則進入路徑為/manager/News/SearchNewsList的Servlet,否則回到新聞添加頁面layUI_NewsAdd.jsp。新聞添加頁面效果如圖6-10所示。任務實施
3.實現新聞修改功能①
將新聞列表頁面中
layUI_NewsList.jsp
的“修改”超鏈接設置為單擊時跳轉至路徑/manager/News/ToUpdateNews,具體代碼如下。<td><ahref="ToUpdateNews?n_id=<%=news.getN_id()%>"><buttontype="button"class="layui-btnlayui-btn-warm">修改</button></a></td>任務實施
②
在servlet包下創(chuàng)建Servlet類ToUpdateNews。ToUpdateNews類主要用于獲取用戶提交的新聞編號,然后調用后臺NewsDaoImpl對象的根據新聞編號查詢新聞的方法searchByNid()查詢該新聞的詳細信息。將查詢到的新聞對象News存入request作用域,然后請求轉發(fā)至新聞修改頁面layUI_NewsModify.jsp。ToUpdateNews類的實現代碼參考如下。任務實施
@WebServlet("/manager/News/ToUpdateNews")publicclassToUpdateNewsextendsHttpServlet{@OverrideprotectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//獲取請求參數Stringn_idStr=request.getParameter("n_id");intn_id=Integer.parseInt(n_idStr);;//創(chuàng)建dao對象,調用dao中對應的方法(searchByNid())NewsDaoImplnewsDao=newNewsDaoImpl();Newsnews=newsDao.searchByNid(n_id);//將news存入request作用域request.setAttribute("news",news);//跳轉到新聞修改頁面layUI_NewsModify.jsp request.getRequestDispatcher("/manager/News/layUI_NewsModify.jsp").forward(request,response);}}任務實施
③
在news_mvc項目的web/manager/News目錄下新建layUI_NewsModify.jsp頁面。在靜態(tài)代碼的基礎上加入Java腳本段,從request作用域取出News對象,同時調用TypeDaoImpl中的search()方法獲取所有新聞類別,實現新聞類別詳情在下拉列表中顯示。表單提交到路徑為/manager/News/DoUpdateNews的Servlet中。文件layUI_NewsModify.jsp部分代碼示例如下任務實施
<body><%//從作用域中獲取News對象
Newsnews=(News)request.getAttribute("news");//獲取所有新聞類別TypeDaoImpltypeDao=newTypeDaoImpl();List<Type>list=typeDao.search();%><divstyle="margin-top:30px;"><formclass="layui-form"action="DoUpdateNews"name="form1"method="post"><divclass="layui-form-item"><labelclass="layui-form-label">新聞編號</label><divclass="layui-input-block"><inputvalue="<%=news.getN_id()%>"type="text"name="n_id"readonlyrequiredlay-verify="required"placeholder="請輸入標題"autocomplete="off"class="layui-input"></div></div>任務實施
<divclass="layui-form-item"><labelclass="layui-form-label">新聞標題</label><divclass="layui-input-block"><inputvalue="<%=news.getN_title()%>"type="text"name="n_title"requiredlay-verify="required"placeholder="請輸入標題"autocomplete="off"class="layui-input"></div></div><divclass="layui-form-item"><labelclass="layui-form-label">新聞類別</label><divclass="layui-input-block"><selectname="t_id"lay-verify="required"><%for(Typetype:list){%><optionvalue="<%=type.getT_id()%>"<%=type.getT_id()==news.getT_id()?"selected":""%>><%=type.getT_name()%></option><%}%></select></div></div>任務實施
<divclass="layui-form-itemlayui-form-text"><labelclass="layui-form-label">新聞內容</label><divclass="layui-input-block"><textareaname="n_content"placeholder="請輸入內容"class="layui-textarea"><%=news.getN_content()%></textarea></div></div><divclass="layui-form-item"><divclass="layui-input-block"><buttonclass="layui-btn"lay-submitlay-filter="formDemo">立即提交</button><buttontype="reset"class="layui-btnlayui-btn-primary">重置</button><buttontype="button"class="layui-btnlayui-btn-normal"onclick="back()">取消</button></div></div></form></div></body>任務實施
新聞修改頁面效果如圖6-11所示。任務實施
④
在servlet包下創(chuàng)建Servlet類DoUpdateNews。DoUpdateNews類主要用于獲取用戶提交的待修改新聞相關參數,構建新聞對象,然后調用后臺NewsDaoImpl對象的新聞更新方法實現新聞修改。如果修改成功,則跳轉到SearchNewsList查看新聞列表;如果不成功,則請求轉發(fā)至新聞修改頁面layUI_NewsModify.jsp。DoUpdateNews類的實現代碼參考如下。任務實施
@WebServlet("/manager/News/DoUpdateNews")publicclassDoUpdateNewsextendsHttpServlet{@OverrideprotectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException//設置字符集request.setCharacterEncoding("UTF-8");//獲取請求參數
Stringn_title=request.getParameter("n_title");Stringn_content=request.getParameter("n_content");intt_id=Integer.parseInt(request.getParameter("t_id"));intn_id=Integer.parseInt(request.getParameter("n_id"));//創(chuàng)建日期對象,對日期進行格式化Datedate=newDate();SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");Stringn_publishtime=sdf.format(date);////構建新聞對象Newsnews=newNews(n_id,n_title,n_content,t_id,n_publishtime);//創(chuàng)建dao對象,調用dao中對應的更新方法(update())NewsDaonewsDao=newNewsDaoImpl();Booleanflag=newsDao.update(news);if(flag){//修改成功,重定向跳轉至路徑為/manager/News/SearchNewsList的Servletresponse.sendRedirect(request.getContextPath()+"/manager/News/SearchNewsList");}else{request.setAttribute("news",news);//修改不成功,回到新聞修改頁面request.getRequestDispatcher("/manager/News/layUI_NewsModify.jsp").forward(request,response);}}}任務實施
4.實現新聞刪除功能①
將新聞列表頁面layUI_NewsList.jsp中的“刪除”超鏈接設置為單擊時執(zhí)行JavaScript函數checkDelete(),在checkDelete()函數中詢問用戶是否確認刪除,如果確認刪除,則跳轉至/manager/News/DoDeleteNews路徑,具體代碼如下。<td><ahref="javascript:checkDelete(<%=news.getN_id()%>)"><buttontype="button"class="layui-btnlayui-btn-danger">刪除</button></a></td><script>functioncheckDelete(n_id){varflag=confirm("確認要刪除嗎?");if(flag){location.href="DoDeleteNews?n_id="+n_id;}}</script>任務實施
②
在servlet包下創(chuàng)建Servlet類DoDeleteNews。DoDeleteNews類主要用于根據用戶提交的新聞編號刪除數據庫中相應新聞的信息。刪除操作完成后回到路徑為/manager/News/SearchNewsList的Servlet。為了讓用戶知道是否刪除成功,此處采用彈出警
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 奶茶稿子題目大全及答案
- 內蒙古師范大學《一帶一路俄語國家概況》2023-2024學年第二學期期末試卷
- 菏澤家政職業(yè)學院《英漢筆譯》2023-2024學年第二學期期末試卷
- 焦作大學《形勢與政策(二)》2023-2024學年第二學期期末試卷
- 武漢生物工程學院《高層與抗震結構設計》2023-2024學年第二學期期末試卷
- 南京大學金陵學院《外國文化通論》2023-2024學年第二學期期末試卷
- 哈爾濱城市職業(yè)學院《混凝土結構設計原理道橋》2023-2024學年第二學期期末試卷
- 錫林郭勒職業(yè)學院《定量分析》2023-2024學年第二學期期末試卷
- 上海師范大學《進階英語》2023-2024學年第二學期期末試卷
- 人際關系沖突化解模型-洞察及研究
- 【大學課件】道路工程測量2
- 新材料在綠色制造中的應用及發(fā)展趨勢分析
- 日間手術病房術前宣教
- 高層建筑防火涂料施工標準方案
- 2024年重慶市初中學業(yè)水平考試生物試卷含答案
- 胎盤滯留病因介紹
- 機械類中職學業(yè)水平考試專業(yè)綜合理論考試題庫(含答案)
- 四川省樹德中學2025屆高三下學期一模考試數學試題含解析
- 王陽明讀書分享
- 2024年銀行考試-銀行間本幣市場交易員資格考試近5年真題集錦(頻考類試題)帶答案
- PC工法樁專項施工方案-
評論
0/150
提交評論