List list-new ArrayList(); con=getconn(); try{ st=con.createstatement () rs-st.executequery("select from newstype"); NewsTypeBean newsType-new NewsTypeBean(); newsType.setNewstypeid(rs.getInt(1)); newsType.setNewstypename(rs.getstring(2)); list.add(newsType) )catch (SQLException e){ /TODO Auto-generated catch block e.printStackTrace(); c10seA110: return list public NewsTypeBean selectNewsTypeById(int newsTypeId){ return null: public int updateNewsType(NewsTypeBean newsType){ return 0; (4)建立接口News Dao的实现类NewsDaoImpl package cn.sdut.dao.impl: import java.ql.SQLException. import java.util.ArrayList; import java.util.List, import cn.sdut.dao.NewsDao
10 List list=new ArrayList(); con=getConn(); try { st=con.createStatement(); rs=st.executeQuery("select * from newstype"); while(rs.next()) { NewsTypeBean newsType=new NewsTypeBean(); newsType.setNewstypeid(rs.getInt(1)); newsType.setNewstypename(rs.getString(2)); list.add(newsType); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { closeAll(); } return list; } public NewsTypeBean selectNewsTypeById(int newsTypeId) { return null; } public int updateNewsType(NewsTypeBean newsType) { return 0; } } (4)建立接口 NewsDao 的实现类 NewsDaoImpl package cn.sdut.dao.impl; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import cn.sdut.dao.NewsDao;
import cn.sdut.po.NewsBean; public class NewsDaolmpl extends BaseDao implements NewsDao{ public int addNews(NewsBean news) //TODO Auto-generated method stub public int delNews(int newsld) //TODO Auto-generated method stub return 0: public List selectAllNews() //TODO Auto-generated method stub return null: public NewsBean selectNewsByld(int newsld){ //TODO Auto-generated method stub return null; public List selectNewsBy Typeld(int newsTypeld){ List list =new ArrayList(). con getConn(): try String sql="select*from news where newstypeid-? pst con.preparestatement(sql) pst.setlnt(1,newslypeld): rs pst executeQuery() while (rs.next()){ NewsBea n news=new NewsBean() news.setNewsid(rs.getlnt(1)). news.setNewstitle(rs.getString(2)); news.setNewscontent(rs.getString(3)). news.setNewstvpeid(rs.getlnt(4)): list.add(news). )catch (SQLException e) //TODO Auto-generated catch block
11 import cn.sdut.po.NewsBean; public class NewsDaoImpl extends BaseDao implements NewsDao { public int addNews(NewsBean news) { // TODO Auto-generated method stub return 0; } public int delNews(int newsId) { // TODO Auto-generated method stub return 0; } public List selectAllNews() { // TODO Auto-generated method stub return null; } public NewsBean selectNewsById(int newsId) { // TODO Auto-generated method stub return null; } public List selectNewsByTypeId(int newsTypeId) { List list = new ArrayList(); con = getConn(); try { String sql="select * from news where newstypeid=?"; pst = con.prepareStatement(sql); pst.setInt(1, newsTypeId); rs = pst.executeQuery(); while (rs.next()) { NewsBean news = new NewsBean(); news.setNewsid(rs.getInt(1)); news.setNewstitle(rs.getString(2)); news.setNewscontent(rs.getString(3)); news.setNewstypeid(rs.getInt(4)); list.add(news); } } catch (SQLException e) { // TODO Auto-generated catch block
e.printStack Trace(). finally } return list: } public int updateNews(NewsBean news) //TODO Auto-generated method stub return 0; 5、建立显示页面及Servlet (I)首页面index.jsp及需要的Servlet 完成功能:在首页面中,要显示所有的新闻类型,根据新闻类型显示新闻内容。 步骤分析: 第一步:在首页面之前,先执行从数据库中查询新闻类型的数据,因此要建立一一显示 新闻类型的Servlet(DispNewsType)。从该Servlet中封装新闻类型到链表中,传到页面中 去: 第二步:在index.jsp页面中将链表的内容取出,进行显示。并且,选中新闻类型后, 向服务器发送异步请求,服务器端采用Servlet(DispNews)进行处理。该Servlet完成的功 能为:根据新闻类型,查找所有该类型的新闻,封装成字符串传到index.js印页面。 DispNewsType.javar package cn.sdut.servlet import java.io.IOException import java io.PrintWriter importjava.util.List. import javax.servlet ServletException importjavax.servlet.http.HttpServlet. import iavax servlet http HttpServletRequest import cn.sdut.dao.NewsTypeDao. import cn.sdut.dao.impl.NewsTypeDaoImpl; import cn.sdut.po.News TvpeBean: public class DispNewsType extends HttpServlet
12 e.printStackTrace(); } finally { closeAll(); } return list; } public int updateNews(NewsBean news) { // TODO Auto-generated method stub return 0; } } 5、建立显示页面及 Servlet (1)首页面 index.jsp 及需要的 Servlet 完成功能:在首页面中,要显示所有的新闻类型,根据新闻类型显示新闻内容。 步骤分析: 第一步:在首页面之前,先执行从数据库中查询新闻类型的数据,因此要建立——显示 新闻类型的 Servlet(DispNewsType)。从该 Servlet 中封装新闻类型到链表中,传到页面中 去; 第二步:在 index.jsp 页面中将链表的内容取出,进行显示。并且,选中新闻类型后, 向服务器发送异步请求,服务器端采用 Servlet(DispNews)进行处理。该 Servlet 完成的功 能为:根据新闻类型,查找所有该类型的新闻,封装成字符串传到 index.jsp 页面。 DispNewsType.java: package cn.sdut.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import cn.sdut.dao.NewsTypeDao; import cn.sdut.dao.impl.NewsTypeDaoImpl; import cn.sdut.po.NewsTypeBean; public class DispNewsType extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOExeeption NewsTypeDao newsTypeDao-new NewsTypeDaolmpl( List<News TypeBean>newsTypeList=newsTypeDao.selectAllNews Type(): request.setAttribute("newstypelist".newsTypeList). request.getRequestDispatcher("/index.jsp").forward(request,response); public void doPost(HttpServletRequest request,HttpServletResponse response throws ServletException,IOException{ doGet(request,response) index.jsp: k taglib uri="http://java.sun.com/jsp/jst1/core"prefix-"c" <号 String path request.getContextPath(); string basePath request.getscheme ()+":// +request.(request.( +path 8> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="-basePath>"> <title>My JSP 'index.isp'starting page</title> <meta http-equiv="pragma"content="no-cache"> meta http-equiv"cache-contro content="no-cache <meta http-equiv-"expires"content-"0" <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description"content="This is my page"> <1- <link rel="stylesheet"type="text/css"href="styles.css"> <script type="text/javascript"> 6
13 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { NewsTypeDao newsTypeDao=new NewsTypeDaoImpl(); List<NewsTypeBean> newsTypeList=newsTypeDao.selectAllNewsType(); request.setAttribute("newstypelist", newsTypeList); request.getRequestDispatcher("/index.jsp").forward(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } } index.jsp: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!- <link rel="stylesheet" type="text/css" href="styles.css"> -> <script type="text/javascript">
function displaynewstitle (value){ if (window.XMLHttpRequest){ xmlhttp new XMLHttpRequest () 1e18e{ xmlhttp new Activexobject("Microsoft.XMLHTTP"); xmlhttp.onreadystatechange =function()( if (xmlhttp.readystate ==4 &6 xmlhttp.status ==200)( document.getElementById("newstitle").innerHTML= mlhttp.responseText; xmlhttp.open("GET","servlet/DispNews?newstypeid="+value true); xmlhttp.send() funetion autoclick (v1,v2) var source=document.getElementById("newscontent"+v2) source.innerHTML=v1; 1 </script> </head> <body> <hl align="center"> 欢迎光临**新闻管理系统 <table border="1" <tr height="20"align="justify"> <td width="200"align="center"><h4>新闻类别</h4></td> <td width="800”align="center"><h4>新闻内容</h4></td少 </tx> <tr><td align="center"> <select id="newstype"name="newstype"size="s(10) onchange="displaynewstitle(this.value)">
14 function displaynewstitle(value) { var xmlhttp; if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { document.getElementById("newstitle").innerHTML = xmlhttp.responseText; } } xmlhttp.open("GET", "servlet/DispNews?newstypeid=" + value, true); xmlhttp.send(); } function autoclick(v1,v2) { var source=document.getElementById("newscontent"+v2); source.innerHTML=v1; } </script> </head> <body> <h1 align="center"> 欢迎光临****新闻管理系统 </h1> <table border="1"> <tr height="20" align="justify"> <td width="200" align="center"><h4>新闻类别</h4></td> <td width="800" align="center"><h4>新闻内容</h4></td> </tr> <tr><td align="center"> <select id="newstype" name="newstype" size="${10}" onchange="displaynewstitle(this.value)">