用户发布评论和显示发布的评论以及删除自己的评论
新闻详情页面
<%@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>
【<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%> 访问量<%=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      <a href="#">常见问题解答</a>
     新闻热线:010-627488888 <br />
文明办网文明上网举报电话:010-627488888      举报邮箱: <a href="#">jubao@jb-aptech.com.cn</a>
</p>
<p class="copyright">
Copyright © 1999-2009 News China gov, All Right Reserver <br />
新闻中国 版权所有
</p>
</div>
</body>
</html>