JavaWEB(评论管理&include指令)[新闻发布系统03]

这是一个展示新闻详情的页面,包括新闻标题、作者、摘要、内容、发布时间和访问量。用户可以发表评论并查看已有评论,同时具备删除自己评论的功能。页面结构包括头部导航、新闻内容、评论区和评论表单。评论提交后会更新评论数量,删除评论则通过用户验证进行。
摘要由CSDN通过智能技术生成

用户发布评论和显示发布的评论以及删除自己的评论

新闻详情页面

<%@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"%>
<%
	//定义变量
	String ntitle = "";
	String ndate = "";
	String nauthor = "";
	String nsummary = "";
	String ncontent = "";
	int ncount = 0;

	//设置编码
	request.setCharacterEncoding("utf-8");
	//获取参数
	String id = request.getParameter("nid");
	int nid = 0;
	if (id != null) {
		nid = Integer.valueOf(id);
	}
	String username = request.getParameter("username");
	//数据库交互
	//加载驱动
	Class.forName("oracle.jdbc.driver.OracleDriver");
	//建立连接
	Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "triger");
	//sql语句
	String sql = "select * from tb_t281_news where nid = " + nid;
	PreparedStatement ps = conn.prepareStatement(sql);
	//返回结果集对象
	ResultSet rs = ps.executeQuery();
	//遍历
	if (rs.next()) {
		ntitle = rs.getString(3);
		nauthor = rs.getString(4);
		nsummary = rs.getString(5);
		ncontent = rs.getString(6);
		ndate = rs.getString(8);
		ncount = rs.getInt(9);
	}
	sql = "update tb_t281_news set ncount=ncount+1 where nid="+nid;
	ps = conn.prepareStatement(sql);
	int n = ps.executeUpdate();
%>

<!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="admin/css/read.css" />
<script type="text/javascript">
	function check() {
		var cauthor = document.getElementById("cauthor");
		var content = document.getElementById("ccontent");
		if (cauthor.value == "") {
			alert("用户名不能为空!!");
			return false;
		} else if (content.value == "") {
			alert("评论内容不能为空!!");
			return false;
		}
		return true;
	}
</script>
</head>
<body>
	<div id="header">
		<div id="top_login">
			<span style="font-size: 14px; cursor: pointer; font-weight: bold;">卓京教育新闻网首页</span>
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

			【<a href="">请注册</a>】 【<a href="">登录</a>】 <a href="index.html"
				class="login_link">返回首页</a> <img src="admin/images/friend_logo.gif"
				alt="Google" id="friend_logo" />
		</div>
		<div id="nav">
			<div id="logo">
				<img src="admin/images/logo.jpg" alt="新闻中国" />
			</div>
			<div id="a_b01">
				<img src="admin/images/a_b01.gif" alt="" />
			</div>
			<!--mainnav end-->
		</div>
	</div>
	<div id="container">
		<div class="sidebar">
			<h1>
				<img src="admin/images/title_1.gif" alt="国内新闻" />
			</h1>
			<div class="side_list">
				<ul>
					<li><a href='#'><b>国内新闻1</b></a></li>
					<li><a href='#'><b>国内新闻2</b></a></li>
					<li><a href='#'><b>国内新闻3</b></a></li>
				</ul>
			</div>
			<h1>
				<img src="admin/images/title_2.gif" alt="国际新闻" />
			</h1>
			<div class="side_list">
				<ul>
					<li><a href='#'><b>国际新闻1</b></a></li>
					<li><a href='#'><b>国际新闻2</b></a></li>
					<li><a href='#'><b>国际新闻3</b></a></li>
					<li><a href='#'><b>国际新闻4</b></a></li>
				</ul>
			</div>
			<h1>
				<img src="admin/images/title_3.gif" alt="娱乐新闻" />
			</h1>
			<div class="side_list">
				<ul>
					<li><a href='#'><b>娱乐新闻1</b></a></li>
					<li><a href='#'><b>娱乐新闻2</b></a></li>
					<li><a href='#'><b>娱乐新闻3</b></a></li>
					<li><a href='#'><b>娱乐新闻4</b></a></li>
				</ul>
			</div>
		</div>
		<div class="main">
			<div class="class_type">
				<img src="admin/images/class_type.gif" alt="新闻中心" />
			</div>
			<div class="content">
				<ul class="classlist">
					<table width="80%" align="center">
						<tr width="100%">
							<td colspan="2" align="center">新闻标题:<%=ntitle%></td>
						</tr>
						<tr>
							<td colspan="2">
								<hr />
							</td>
						</tr>
						<tr>
							<td style="text-align: left;">发布时间:<%=ndate%></td>
							<td style="text-align: left;">作者:<%=nauthor%>&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" align="center"></td>
						</tr>
						<tr>
							<td colspan="2">内容:<br/><%=ncontent%></td>
						</tr>
						<tr>
							<td colspan="2">
								<hr />
							</td>
						</tr>
					</table>
				</ul>
				<ul class="classlist">
					<table width="80%" align="center">
					<!-- 显示所有评论,否则显示暂无评论 -->
					<%
					int nidCount = 0;
					//根据新闻编号 查找评论表中的记录是否存在数据
					sql = "select count(*) from tb_t281_news_comment where cnid = ?";
					ps = conn.prepareStatement(sql);
					ps.setInt(1, nid);
					rs = ps.executeQuery();
					if(rs.next()){
						nidCount = rs.getInt(1);
					}
					if(nidCount>0){
						sql = "select * from tb_t281_news_comment where cnid = ?";
						ps = conn.prepareStatement(sql);
						ps.setInt(1, nid);
						rs = ps.executeQuery();
						while(rs.next()){
							String uname = null;
							sql = "select * from tb_t281_news_users where userid = ?";
							PreparedStatement ps2 = conn.prepareStatement(sql);
							ps2.setInt(1, rs.getInt(2));
							ResultSet rs2 = ps2.executeQuery();
							if(rs2.next()){
								uname = rs2.getString(2);
							}
							out.println("用户:"+uname);
							out.println("<br>评论内容:"+rs.getString(5));
							out.println("<br>评论时间:"+rs.getString(6));
							//判断只有当前用户所评论的内容才会显示删除按钮
							if(uname.equals(username)){
 							out.println("<a href = 'doDelComment.jsp?cid="+rs.getInt(1)+"&cnid="+rs.getInt(3)+"&username="+username+"'>删除</a><br/>");
							}
						}
					}else{
						out.println("<td colspan='6'>暂无评论!</td>");
					}
					%>
						<tr>
							<td colspan="6">
								<hr />
							</td>
						</tr>
					</table>
				</ul>
				<ul class="classlist">
					<form action='doComment.jsp' method="post"
						onsubmit="return check()">
						<input type="hidden" name="nid" value="<%=nid%>">
						<table width="80%" align="center">
							<tr>
								<td>评 论</td>
							</tr>
							<tr>
								<td>用户名:</td>
								<td><input id="cauthor" name="cauthor"
									value="<%=username%>" /> IP: <input name="cip"
									value="127.0.0.1" readonly="readonly" /></td>
							</tr>
							<tr>
								<td colspan="2"><textarea name="ccontent" cols="70"
										rows="10"></textarea></td>
							</tr>
							<td><input name="submit" value="发  表" type="submit" /></td>
						</table>
					</form>
				</ul>
			</div>
		</div>
	</div>
	<%@ include file = "index_foot1.jsp" %>
</body>
</html>

发布评论

<%@page import="java.util.Date"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@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"%>
    <%
    //设置编码
    request.setCharacterEncoding("utf-8");
    //获取参数
	int cid = 0;
	//加载驱动
	Class.forName("oracle.jdbc.driver.OracleDriver");
	//建立连接
	Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "triger");
	//返回执行对象
	String sql = "select nvl(max(cid),0) from tb_t281_news_comment";
	PreparedStatement ps = conn.prepareStatement(sql);
	//结果集
	ResultSet rs = ps.executeQuery();
	if (rs.next()) {
		cid = rs.getInt(1) + 1;
	}
	//用户编号
	int cuserid = 0;
	String username = request.getParameter("cauthor");
	//交互 根据username获取用户的编号
	sql = "select * from tb_t281_news_users where username = ?";
	ps = conn.prepareStatement(sql);
	ps.setString(1, username);
	rs = ps.executeQuery();
	if(rs.next()){
		cuserid = rs.getInt(1);
	}
	//新闻编号
	int cnid = 0;
	String id = request.getParameter("nid");
	if(id != null){
		cnid = Integer.valueOf(id);
	}
	//ip地址
	String cip = request.getParameter("cip");
	//内容 
	String ccontent = request.getParameter("ccontent");
	//时间
	Date date = new Date();
	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	String cdate = sdf.format(date);
	
	//数据交互
	sql = "insert into tb_t281_news_comment values(?,?,?,?,?,to_date(?,'yyyy-mm-dd hh24:mi:ss'))";
	ps = conn.prepareStatement(sql);
	//给占位符赋值
	ps.setInt(1, cid);
	ps.setInt(2, cuserid);
	ps.setInt(3, cnid);
	ps.setString(4, cip);
	ps.setString(5, ccontent);
	ps.setString(6, cdate);
	//返回所影响的行数
	int n = ps.executeUpdate();
	if(n>0){
		out.println("<script>alert('评论成功');location.href='news_read.jsp?username="+username+"&nid="+cnid+"'</script>");
	}else{
		out.println("<script>alert('评论失败');location.href='news_read.jsp?username="+username+"&nid="+cnid+"'</script>");
	}
    %>

删除自己发布的评论

<%@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"%>
    <%
    //定义
    int cid = 0;
    int cnid = 0;
    //设置编码
    request.setCharacterEncoding("utf-8");
    //获取
    String username = request.getParameter("username");
    String id = request.getParameter("cid");
    String nid = request.getParameter("cnid");
    if(id != null && nid != null){
    	cid = Integer.parseInt(id);
    	cnid = Integer.parseInt(nid);
    }
    //加载驱动
  	Class.forName("oracle.jdbc.driver.OracleDriver");
  	//建立连接
  	Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "triger");
  	//返回执行对象
  	String sql = "delete from tb_t281_news_comment where cid = "+cid;
  	PreparedStatement ps = conn.prepareStatement(sql);
  	//返回所影响的行数
  	int n = ps.executeUpdate();
  	if(n>0){
  		out.println("<script>alert('删除成功');location.href='news_read.jsp?username="+username+"&nid="+cnid+"'</script>");
  	}else{
  		out.println("<script>alert('删除失败');location.href='news_read.jsp?username="+username+"&nid="+cnid+"'</script>");
  	}
    %>

include指令

1.include指令属于jsp的三大指令之一

2.三大指令:page/include/taglib

3.include指令作用:引入页面
<%@ include file = "指定页面名称"%>

实际使用

include指令使用 引入页面

//include指令使用 引入页面
<%@ include file = "index_foot1.jsp" %>

文件地址页面

<%@ 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>Insert title here</title>
</head>
<body>
<div id="friend">
		<h1 class="friend_t">
			<img src="admin/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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值