当前位置: 代码迷 >> 综合 >> java_web 新闻展示删除查看修改主题绑定 [新闻发布系统02]
  详细解决方案

java_web 新闻展示删除查看修改主题绑定 [新闻发布系统02]

热度:14   发布时间:2023-12-05 09:32:37.0

一:新闻分类的数据绑定

简而言之,就是对新闻发布页面中的新闻分类绑定(下拉框数据绑定)。

     当点击发布新闻选项时,自动加载数据库中的数据进行显示,把数据库里的数据显示在下拉框中。
      

实现方法如下:

方法一:

?
?
?<p><label> 主题 </label><select name="ntid"><!-- 新闻分类的数据绑定  start --><%//需求:新闻分类的数据绑定//加载驱动Class.forName("oracle.jdbc.driver.OracleDriver");//建立连接Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott","123");//sql语句String sql = "select * from tb_news_theme";//传入方法返回执行对象PreparedStatement ps = conn.prepareStatement(sql);//调用方法返回结果集对象ResultSet rs = ps.executeQuery();//遍历结果集while(rs.next()){//out.println(rs.getInt(1)+"     "+rs.getString(2));%>out.println("<option value='<%=rs.getInt(1)%>'><%=rs.getString(2) %></option>")<%}%></select></p>???

方法二:

<label> 主题 </label><select name="ntid"><!-- 新闻分类的数据绑定  start --><%//需求:新闻分类的数据绑定//加载驱动Class.forName("oracle.jdbc.driver.OracleDriver");//建立连接Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott","123");//sql语句String sql = "select * from tb_news_theme";//传入方法返回执行对象PreparedStatement ps = conn.prepareStatement(sql);//调用方法返回结果集对象ResultSet rs = ps.executeQuery();//遍历结果集while(rs.next()){out.println("<option value = '"+rs.getInt(1)+"'>"+rs.getString(2)+"</option>");}%></select></p>

个人感觉,方法二比方法一简单易懂,代码简单明了,可以提高编写效率,减小出bug的情况

完整代码: 

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>新闻维护--管理后台</title><link rel="stylesheet" type="text/css" href="css/admin.css" /></head><body><div id="header"><div id="welcome">欢迎使用新闻管理系统!</div><div id="nav"><div id="logo"><img src="images/logo.jpg" alt="新闻中国" /></div><div id="a_b01"><img src="images/a_b01.gif" alt="" /></div></div></div><div id="admin_bar"><div id="status">管理员: 登录 &#160;&#160;&#160;&#160;<a href="#">退出</a></div><div id="channel"> </div></div><div id="main"><div id="opt_list"><ul><li><a href="admin.html">管&nbsp;&nbsp;理&nbsp;&nbsp;首&nbsp;&nbsp;页</a></li><li><a href="admin_addNews.html">新&nbsp;&nbsp;闻&nbsp;&nbsp;发&nbsp;&nbsp;布</a></li><li><a href="admin_themeMaintain.html">主&nbsp;&nbsp;题&nbsp;&nbsp;维&nbsp;&nbsp;护</a></li><li><a style="color: red;" href="#">系统账号管理</a></li><li><a style="color: red;" href="#">注册用户管理</a></li></ul></div><div id="opt_area">												<form action="doEditNews.jsp" method="post"><p><label> 主题 </label><select name="ntid"><%//模块:新闻分类的数据绑定sql = "select * from tb_news_theme";//传入方法返回执行对象ps = conn.prepareStatement(sql);//调用方法返回结果集对象rs = ps.executeQuery();//遍历结果集while(rs.next()){//上面已经根据新闻id获取到当前这篇新闻的分类id      while循环中可以遍历出所有的新闻分类if(ntid == rs.getInt(1)){out.println("<option selected = 'selected' value = '"+rs.getInt(1)+"'>"+rs.getString(2)+"</option>");}else{out.println("<option value = '"+rs.getInt(1)+"'>"+rs.getString(2)+"</option>");}}%></select></p><p><label> 标题 </label><input name="ntitle" type="text" class="opt_input" value="<%=ntitle %>" /></p><p><label> 作者 </label><input name="nauthor" type="text" class="opt_input" value="<%=nauthor %>" /></p><p><label> 摘要 </label><textarea name="nsummary" cols="40" rows="3" value="123"><%=nsummary %></textarea></p><p><label> 内容 </label><textarea name="ncontent" cols="70" rows="10"><%=ncontent %></textarea></p><p><label> 上传图片 </label><input name="file" type="file" class="opt_input" /></p><input name="nid" type="hidden" value="<%=nid%>"><input type="submit" value="提交" class="opt_sub" /><input type="reset" value="重置" class="opt_sub" /></form></div></div><div id="site_link"> <a href="#">关于我们</a><span>|</span> <a href="#">Aboue Us</a><span>|</span> <a href="#">联系我们</a><span>|</span><a href="#">广告服务</a><span>|</span> <a href="#">供稿服务</a><span>|</span> <a href="#">法律声明</a><span>|</span> <a href="#">招聘信息</a><span>|</span><a href="#">网站地图</a><span>|</span> <a href="#">留言反馈</a> </div><div id="footer"><p class="">24小时客户服务热线:010-68988888 &#160;&#160;&#160;&#160; <a href="#">常见问题解答</a> &#160;&#160;&#160;&#160;新闻热线:010-627488888<br />文明办网文明上网举报电话:010-627488888 &#160;&#160;&#160;&#160; 举报邮箱:<a href="#">jubao@jb-aptech.com.cn</a></p><p class="copyright">Copyright &copy; 1999-2009 News China gov, All Right Reserver<br />新闻中国 版权所有</p></div></body>
</html>

二:主页面新闻显示的绑定

  简单的,直接上代码

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>新闻发布系统-后台主页</title><link rel="stylesheet" type="text/css" href="css/admin.css" /></head><body><div id="header"><div id="welcome">欢迎使用新闻管理系统!</div><div id="nav"><div id="logo"><img src="images/logo.jpg" alt="新闻中国" /></div><div id="a_b01"><img src="images/a_b01.gif" alt="" /></div></div></div><div id="admin_bar"><div id="status">管理员:<%=request.getParameter("username") %> 登录 &#160;&#160;&#160;&#160; <a href="#">login out</a></div><div id="channel"> </div></div><div id="main"><div id="opt_list"><ul><li><a href="admin.html">管&nbsp;&nbsp;理&nbsp;&nbsp;首&nbsp;&nbsp;页</a></li><li><a href="add_news.jsp">新&nbsp;&nbsp;闻&nbsp;&nbsp;发&nbsp;&nbsp;布</a></li><li><a href="admin_themeMaintain.html">主&nbsp;&nbsp;题&nbsp;&nbsp;维&nbsp;&nbsp;护</a></li><li><a href="admin_themeMaintain.html">评&nbsp;&nbsp;论&nbsp;&nbsp;管&nbsp;&nbsp;理</a></li><li><a style="color: red;" href="#">系统账号管理</a></li><li><a style="color: red;" href="#">注册用户管理</a></li></ul></div><div id="opt_area"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><!-- 需求:完成后台主页面的新闻显示绑定  start --><ul class="classlist"><%//加载驱动Class.forName("oracle.jdbc.driver.OracleDriver");//建立连接Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott","123");//sql语句String sql = "select * from tb_news";//将sql语句传入方法返回执行对象PreparedStatement ps = conn.prepareStatement(sql);//根据执行对象调用方法返回结果集对象ResultSet rs = ps.executeQuery();//遍历结果集while(rs.next()){out.println("<li> <a href='admin_newsDetail.jsp?nid="+rs.getInt(1)+"'>"+rs.getString(3)+"</a> <span> 作者:"+rs.getString(4)+" &#160;&#160;&#160;&#160; <a href='admin_editNews.jsp?nid="+rs.getInt(1)+"'>修改</a> &#160;&#160;&#160;&#160; <a href='javascript:void(0)' onclick='clickdel(\""+rs.getInt(1)+"\")'>删除</a></span> </li>");}%><li class='space'></li><p align="right"> 当前页数:[1/3]&nbsp; <a href="#">下一页</a> <a href="#">末页</a> </p></ul><!-- 需求:完成后台主页面的新闻显示绑定  start --></div></div><div id="site_link"> <a href="#">关于我们</a><span>|</span> <a href="#">Aboue Us</a><span>|</span> <a href="#">联系我们</a><span>|</span><a href="#">广告服务</a><span>|</span> <a href="#">供稿服务</a><span>|</span> <a href="#">法律声明</a><span>|</span> <a href="#">招聘信息</a><span>|</span><a href="#">网站地图</a><span>|</span> <a href="#">留言反馈</a> </div><div id="footer"><p class="">24小时客户服务热线:010-68988888 &#160;&#160;&#160;&#160; <a href="#">常见问题解答</a> &#160;&#160;&#160;&#160;新闻热线:010-627488888<br />文明办网文明上网举报电话:010-627488888 &#160;&#160;&#160;&#160; 举报邮箱:<a href="#">jubao@jb-aptech.com.cn</a></p><p class="copyright">Copyright &copy; 1999-2009 News China gov, All Right Reserver<br />新闻中国 版权所有</p></div></body>
</html>

三:单个新闻的删除

  注意:由于删除新闻是通过超链接实现,所以必须保证阻止超链接跳转

   阻止超链接跳转方法如下:

<a href = "javascript:void(0)" onclick = "clickdel('"+nid+"')">超链接</a>

 删除操作如下:

function clickdel(nid) {//js传输参数  可以通过location.href进行页面跳转     do处理页面var flag = window.confirm("你确定要删除这篇新闻吗?");if(flag){//跳转window.location.href = 'doDelNews.jsp?nid='+nid;}}

第二种跳转方法如下:

 <a href = "doDelNew.jsp?nid=<%=rs.getInt(1)>">超链接</a>

      来,上个中间界面,进行获取admin.jsp点击删除时的新闻编号获取  然后数据库交互 将其编号的新闻进行删除的一系列方法操作。

 中间界面代码如下:

<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%//1.  设置相关的编码格式request.setCharacterEncoding("utf-8");//2.获取location.href传递过来的参数编号(新闻编号)String id = request.getParameter("nid");//新闻编号  数据库   number   需要转换int nid = 0;if(null!=id){nid = Integer.valueOf(id);}//3.数据库交互  根据新闻编号  进行删除新闻//加载驱动Class.forName("oracle.jdbc.driver.OracleDriver");//建立连接Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott","123");//sql语句String sql = "delete from tb_news where nid = ?";//将sql语句传入方法返回执行对象PreparedStatement ps = conn.prepareStatement(sql);ps.setInt(1, nid);//返回所影响的行数int n = ps.executeUpdate();//4.判断:删除成功----admin.jsp   删除不成功----admin.jspif(n>0){out.println("<script>alert('删除成功');location.href='admin.jsp'</script>");}else{out.println("<script>alert('删除失败');location.href='admin.jsp'</script>");}%>


    四:查看单篇新闻

     ------上代码------

?
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>新闻详情-后台管理</title><link rel="stylesheet" type="text/css" href="css/read.css"/></head><body><div id="header"><div id="top_login"><label> 登录名 </label><input type="text" id="uname" value="" class="login_input" /><label> 密&#160;&#160;码 </label><input type="password" id="upwd" value="" class="login_input" /><input type="button" class="login_sub" value="登录" onclick="login()" /><label id="error"> </label><a href="index.html" class="login_link">返回首页</a> <img src="images/friend_logo.gif" alt="Google" id="friend_logo" /></div><div id="nav"><div id="logo"> <img src="images/logo.jpg" alt="新闻" /> </div><div id="a_b01"> <img src="images/a_b01.gif" alt="" /> </div><!--mainnav end--></div></div><div id="container"><div class="sidebar"><h1> <img src="images/title_1.gif" alt="新闻" /> </h1><div class="side_list"><ul><li> <a href='#'><b>新闻  </b></a> </li><li> <a href='#'><b>新闻 </b></a> </li><li> <a href='#'><b> 新闻 </b></a> </li></ul></div><h1> <img src="images/title_2.gif" alt="新闻" /> </h1><div class="side_list"><ul><li> <a href='#'><b> 新闻 </b></a> </li><li> <a href='#'><b>新闻  </b></a> </li><li> <a href='#'><b> 新闻 </b></a> </li><li> <a href='#'><b> 新闻</b></a> </li></ul></div><h1> <img src="images/title_3.gif" alt="新闻" /> </h1><div class="side_list"><ul><li> <a href='#'><b>新闻  </b></a> </li><li> <a href='#'><b> 新闻 </b></a> </li><li> <a href='#'><b> 新闻 </b></a> </li><li> <a href='#'><b> 新闻</b></a> </li></ul></div></div><div class="main"><div class="class_type"> <img src="images/class_type.gif" alt="新闻中心" /> </div><div class="content"><!-- 该区域实现新闻详情显示  start --><%//定义所谓变量(新闻标题,发布时间,点击量,新闻内容等等)String ntitle = "";//标题String ndate = "";//发布时间String nauthor = "";//作者String ncontent = "";//内容int ncount = 0;//点击量//1.设置编码request.setCharacterEncoding("utf-8");//2.获取idString id = request.getParameter("nid");//转换int nid = 0;if(null!=id){nid = Integer.valueOf(id);}//3.获取数据//加载驱动Class.forName("oracle.jdbc.driver.OracleDriver");//建立连接Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott","123");//sql语句String sql = "select * from tb_news where nid = ?";//将sql语句传入方法返回执行对象PreparedStatement ps = conn.prepareStatement(sql);ps.setInt(1, nid);//返回结果集对象ResultSet rs = ps.executeQuery();//if改造if(rs.next()){ntitle = rs.getString(3);ndate = rs.getString(8);nauthor = rs.getString(4);ncontent = rs.getString(6);ncount = rs.getInt(9);}%><ul class="classlist"><table width="80%" align="center"><tr width="100%"><td colspan="2" align="center"><%=ntitle %>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 点击量 <%=ncount %></td></tr><tr><td colspan="2"><hr /></td></tr><tr><td align="center"><%=ndate %></td><td align="left"><%=nauthor %> </td></tr><tr><td colspan="2" align="center"></td></tr><tr><td colspan="2"> <%=ncontent %> </td></tr><tr><td colspan="2"><hr /></td></tr></table></ul><ul class="classlist"><table width="80%" align="center"><td colspan="6"> 暂无评论! </td><tr><td colspan="6"><hr /></td></tr></table></ul></div></div></div><div id="friend"><h1 class="friend_t"> <img src="images/friend_ico.gif" alt="合作伙伴" /> </h1><div class="friend_list"><ul><li> <a href="#">网</a> </li><li> <a href="#">网</a> </li><li> <a href="#">网</a> </li><li> <a href="#">网</a> </li><li> <a href="#">网</a> </li><li> <a href="#">网</a> </li><li> <a href="#">网</a> </li></ul></div></div><div id="footer"><p class=""> 24小时客户服务热线:010-68988888 &#160;&#160;&#160;&#160; <a href="#">常见问题解答</a> &#160;&#160;&#160;&#160;新闻热线:010-627488888 <br />文明办网文明上网举报电话:010-627488888 &#160;&#160;&#160;&#160; 举报邮箱: <a href="#">jubao@jb-aptech.com.cn</a> </p><p class="copyright"> Copyright &copy; 1999-2009 News China gov, All Right Reserver <br />新闻 版权所有 </p></div></body>
</html>?


    五:修改新闻(绑定主题)

     老步骤,代码展示

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>新闻维护--管理后台</title><link rel="stylesheet" type="text/css" href="css/admin.css" /></head><body><div id="header"><div id="welcome">欢迎使用新闻管理系统!</div><div id="nav"><div id="logo"><img src="images/logo.jpg" alt="新闻中国" /></div><div id="a_b01"><img src="images/a_b01.gif" alt="" /></div></div></div><div id="admin_bar"><div id="status">管理员: 登录 &#160;&#160;&#160;&#160;<a href="#">退出</a></div><div id="channel"> </div></div><div id="main"><div id="opt_list"><ul><li><a href="admin.html">管&nbsp;&nbsp;理&nbsp;&nbsp;首&nbsp;&nbsp;页</a></li><li><a href="admin_addNews.html">新&nbsp;&nbsp;闻&nbsp;&nbsp;发&nbsp;&nbsp;布</a></li><li><a href="admin_themeMaintain.html">主&nbsp;&nbsp;题&nbsp;&nbsp;维&nbsp;&nbsp;护</a></li><li><a style="color: red;" href="#">系统账号管理</a></li><li><a style="color: red;" href="#">注册用户管理</a></li></ul></div><div id="opt_area"><h1 id="opt_type"> 修改新闻: </h1><!-- 修改新闻的模块 --><%//设置编码request.setCharacterEncoding("UTF-8");//获取编号String id = request.getParameter("nid");int nid = 0;if (null != id) {nid = Integer.valueOf(id);}//数据库//加载驱动Class.forName("oracle.jdbc.driver.OracleDriver");//建立连接Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "123");//sql语句String sql = "select * from tb_news where nid = ?";//将sql语句传入方法返回执行对象PreparedStatement ps = conn.prepareStatement(sql);ps.setInt(1, nid);//返回结果集对象ResultSet rs = ps.executeQuery();int ntid = 0;String ntitle = "";String nauthor = "";String nsummary = "";String ncontent = "";String nimage = "";String ndate = "";int ncount = 0;if(rs.next()){ntid = rs.getInt(2);//分类编号ntitle = rs.getString(3);nauthor = rs.getString(4);nsummary = rs.getString(5);ncontent = rs.getString(6);nimage = rs.getString(7);ndate = rs.getString(8);ncount = rs.getInt(9);}%><form action="doEditNews.jsp" method="post"><p><label> 主题 </label><select name="ntid"><%//模块:新闻分类的数据绑定sql = "select * from tb_news_theme";//传入方法返回执行对象ps = conn.prepareStatement(sql);//调用方法返回结果集对象rs = ps.executeQuery();//遍历结果集while(rs.next()){//上面已经根据新闻id获取到当前这篇新闻的分类id      while循环中可以遍历出所有的新闻分类if(ntid == rs.getInt(1)){out.println("<option selected = 'selected' value = '"+rs.getInt(1)+"'>"+rs.getString(2)+"</option>");}else{out.println("<option value = '"+rs.getInt(1)+"'>"+rs.getString(2)+"</option>");}}%></select></p><p><label> 标题 </label><input name="ntitle" type="text" class="opt_input" value="<%=ntitle %>" /></p><p><label> 作者 </label><input name="nauthor" type="text" class="opt_input" value="<%=nauthor %>" /></p><p><label> 摘要 </label><textarea name="nsummary" cols="40" rows="3" value="123"><%=nsummary %></textarea></p><p><label> 内容 </label><textarea name="ncontent" cols="70" rows="10"><%=ncontent %></textarea></p><p><label> 上传图片 </label><input name="file" type="file" class="opt_input" /></p><input name="nid" type="hidden" value="<%=nid%>"><input type="submit" value="提交" class="opt_sub" /><input type="reset" value="重置" class="opt_sub" /></form></div></div><div id="site_link"> <a href="#">关于我们</a><span>|</span> <a href="#">Aboue Us</a><span>|</span> <a href="#">联系我们</a><span>|</span><a href="#">广告服务</a><span>|</span> <a href="#">供稿服务</a><span>|</span> <a href="#">法律声明</a><span>|</span> <a href="#">招聘信息</a><span>|</span><a href="#">网站地图</a><span>|</span> <a href="#">留言反馈</a> </div><div id="footer"><p class="">24小时客户服务热线:010-68988888 &#160;&#160;&#160;&#160; <a href="#">常见问题解答</a> &#160;&#160;&#160;&#160;新闻热线:010-627488888<br />文明办网文明上网举报电话:010-627488888 &#160;&#160;&#160;&#160; 举报邮箱:<a href="#">jubao@jb-aptech.com.cn</a></p><p class="copyright">Copyright &copy; 1999-2009 News China gov, All Right Reserver<br />新闻中国 版权所有</p></div></body>
</html>

总之,代码,看看是不能搞懂的,是要自己敲敲键盘,慢慢来搞懂的,多敲几遍,必有所获