0
点赞
收藏
分享

微信扫一扫

JavaWeb新闻发布系统案例3

驚鴻飛雪 2022-03-31 阅读 46

后台

<!-- 功能1:实现admin.jsp页面中新闻管理模块----模糊查询的搜索功能(根据标题进行模糊查询) -->
			<!-- 
					注意:在没有学习servlet时,模糊查询都是本页面
				 -->
			<div
				style="width: 100%; height: 40px; text-align: center; line-height: 40px;">
				<form action="admin.jsp" method="post">
					<label>新闻标题</label>
					<!-- autocomplete 关闭自动提示 -->
					<input type="text" name="strName" autocomplete="off" /> <input
						type="submit" value="搜索" />
				</form>
			</div>

			<%
				//1.运行admin.jsp之后,默认显示所有新闻。
				//2.在输入框中输入关键词点击搜索  跳转到本页面
				//通过request内置对象获取当前模糊查询表单提交的关键词

				//编码设置
				request.setCharacterEncoding("utf-8");
				String strName = request.getParameter("strName");
				//搜索的关键词为中文  获取时会出现乱码    通过String类进行编码和解码(得到我们看得懂的中文)
				System.out.println("模糊查询的关键词为:[解决前] " + strName);
				//sql语句
				String sql = "select * from tb_news";
				//第一次运行admin.jsp  strName为null  不能调用任何方法
				if (null != strName) {
					//new String(strName.getBytes("ISO-8859-1"),"utf-8");
					//将指定编码的字符串进行解码  通过getBytes("编码")   构造函数new String()编码
					strName = new String(strName.getBytes("ISO-8859-1"), "utf-8");
					//强调  电脑 有些电脑不需要第82行代码。
					//sql语句拼接模糊查询
					sql += " where ntitle like '%" + strName + "%'";
				}
				System.out.println("模糊查询的关键词为:[解决后] " + strName);

				System.out.println("模糊查询的关键词为:[sql] " + sql);
			%>

实现效果:

 


前台


码如下:

<%@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="admin/css/main.css" />
</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>】
			<%
				request.setCharacterEncoding("utf-8");
				//获取usernmae
				String username = request.getParameter("username");
				if (null != username) {
					out.println("<span>欢迎你回来!&nbsp;&nbsp;" + username + "</span>");
				} else {
					out.println("【<a href = 'newlogin.jsp'>登录</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> 重庆涉黑富豪黎强夫妇庭审答辩言辞相互矛盾 </b></a></li>
					<li><a href='#'><b> 发改委:4万亿投资计划不会挤占民间投资空间 </b></a></li>
					<li><a href='#'><b> 河南2个乡镇政绩报告内容完全一致引关注 </b></a></li>
				</ul>
			</div>
			<h1>
				<img src="admin/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> 伊朗将于30日前就核燃料供应方案作出答复 </b></a></li>
					<li><a href='#'><b> 与基地有关组织宣称对巴格达连环爆炸负责 </b></a></li>
				</ul>
			</div>
			<h1>
				<img src="admin/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="admin/images/class_type.gif" alt="新闻中心" />
			</div>
			<div class="content">

				<!-- 3.index.jsp用户首页的新闻分类显示(数据绑定) -->
				<ul class="class_date">
					<li id='class_month'><a href="index.jsp"><b>&nbsp;全部&nbsp;</b></a>
						<%
							//加载驱动
							Class.forName("oracle.jdbc.driver.OracleDriver");
							//建立连接
							String url = "jdbc:oracle:thin:@localhost:1521:orcl";
							Connection conn = DriverManager.getConnection(url, "scott", "123");
							//sql
							String sql = "select * from tb_news_theme";
							PreparedStatement ps = conn.prepareStatement(sql);
							ResultSet rs = ps.executeQuery();
							//sql  select count(*) from tb_news_theme
							int count = 1;
							while (rs.next()) {
								count++;
								out.println("<a href='index.jsp?username=" + username + "&ntid=" + rs.getInt(1) + "'><b> "
										+ rs.getString(2) + " </b></a> ");
								//11 就是总记录数
								if (count % 11 == 0) {
									out.println("<br/>");
								}
							}
						%></li>
				</ul>
				<!-- 当进入index.jsp页面后,手动点击对应的主题名称  跳转到本页面  获取当前点击的主题名称 -->
				<%
					username = request.getParameter("username");
					String tid = request.getParameter("ntid");
					if (null != tid) {//说明点击了主题分类
						//根据点击的主题分类进行查询  where 条件
						sql = "select * from tb_news where ntid = " + Integer.valueOf(tid);
					} else {//第一次进来,没有点击主题分类
						sql = "select * from tb_news";//查询所有新闻
					}
				%>

				<!-- 新闻显示  start-->
				<ul class="classlist">
					<%
						//sql
						ps = conn.prepareStatement(sql);
						rs = ps.executeQuery();
						while (rs.next()) {
							out.println("<li><a href='newRead.jsp?username=" + username + "&nid=" + rs.getInt(1) + "'> "
									+ rs.getString(3) + " </a><span> " + rs.getString(8) + " </span></li>");
						}
					%>

				</ul>
			</div>
			<div class="picnews">
				<ul>
					<li><a href="#"><img src="admin/images/Picture1.jpg"
							width="249" alt="" /> </a><a href="#">幻想中穿越时空</a></li>
					<li><a href="#"><img src="admin/images/Picture2.jpg"
							width="249" alt="" /> </a><a href="#">国庆多变的发型</a></li>
					<li><a href="#"><img src="admin/images/Picture3.jpg"
							width="249" alt="" /> </a><a href="#">新技术照亮都市</a></li>
					<li><a href="#"><img src="admin/images/Picture4.jpg"
							width="249" alt="" /> </a><a href="#">群星闪耀红地毯</a></li>
				</ul>
			</div>
		</div>
	</div>
	<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">
		<!-- 通过jsp中的include指令进行引入第三方页面 -->
		<%@ include file="foot.jsp"%>
	</div>
</body>
</html>

实现效果如下:

 

完整代码如下:

<%@ 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>
<!-- Meta tag Keywords -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8" />
<meta name="keywords" content="" />
<script>
	addEventListener("load", function() {
		setTimeout(hideURLbar, 0);
	}, false);

	function hideURLbar() {
		window.scrollTo(0, 1);
	}
</script>
<!-- Meta tag Keywords -->
<!-- css files -->
<link rel="stylesheet" href="admin/css/style.css" type="text/css"
	media="all" />
<!-- Style-CSS -->
<link rel="stylesheet" href="admin/css/fontawesome-all.css">
<!-- Font-Awesome-Icons-CSS -->
<!-- //css files -->
<!-- web-fonts -->

<!-- //web-fonts -->
</head>

<body>
	<!-- bg effect -->
	<div id="bg">
		<canvas></canvas>
		<canvas></canvas>
		<canvas></canvas>
	</div>
	<!-- //bg effect -->
	<!-- title -->
	<h1>Effect Login Form</h1>
	<!-- //title -->
	<!-- content -->
	<div class="sub-main-w3">
		<form action="doNewLogin.jsp" method="post">
			<h2>
				Login Now <i class="fa fa-long-arrow-down"></i>
			</h2>
			<div class="form-style-agile">
				<label> <i class="fa fa-user"></i> Username
				</label> <input placeholder="Username" name="username" type="text"
					value="admin" required="">
			</div>
			<div class="form-style-agile">
				<label> <i class="fa fa-unlock-alt"></i> Password
				</label> <input placeholder="Password" name="password" type="password"
					required="">
			</div>
			<!-- checkbox -->
			<div class="wthree-text">
				<ul>
					<li><label class="anim"> <input type="checkbox"
							class="checkbox" required=""> <span>Stay Signed In</span>
					</label></li>
					<li><a href="#">Forgot Password?</a></li>
				</ul>
			</div>
			<!-- //checkbox -->
			<input type="submit" value="Log In">
		</form>
	</div>
	<!-- //content -->

	<!-- copyright -->
	<div class="footer">
		<p>Copyright &copy; 2021.Company name All rights reserved.</p>
	</div>
	<!-- //copyright -->

	<!-- Jquery -->
	<script src="admin/js/jquery-3.3.1.min.js"></script>
	<!-- //Jquery -->

	<!-- effect js -->
	<script src="admin/js/canva_moving_effect.js"></script>
	<!-- //effect js -->

</body>

</html>

实现效果如下:

  注意:登录时需连接oracle数据库,并在先前创建好的用户表(tb_news_user)中添入新用户数据

<%@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");
	String username = request.getParameter("username");//用户名
%>

<!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">
<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>】
			<%
				request.setCharacterEncoding("utf-8");
				//获取username
				String username2 = request.getParameter("username");
				if (null != username2) {
					out.println("<span>欢迎你回来!&nbsp;&nbsp;" + username + "</span>");
				} else {
					out.println("【<a href = 'newlogin.jsp'>登录</a>】");
				}
			%>
			<a href="index.jsp" 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> 重庆涉黑富豪黎强夫妇庭审答辩言辞相互矛盾 </b></a></li>
					<li><a href='#'><b> 发改委:4万亿投资计划不会挤占民间投资空间 </b></a></li>
					<li><a href='#'><b> 河南2个乡镇政绩报告内容完全一致引关注 </b></a></li>
				</ul>
			</div>
			<h1>
				<img src="admin/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> 伊朗将于30日前就核燃料供应方案作出答复 </b></a></li>
					<li><a href='#'><b> 与基地有关组织宣称对巴格达连环爆炸负责 </b></a></li>
				</ul>
			</div>
			<h1>
				<img src="admin/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="admin/images/class_type.gif" alt="新闻中心" />
			</div>
			<div class="content">
				<!-- 该区域实现新闻详情显示  start -->

				<%
					//定义所谓变量(新闻标题,发布时间,点击量,新闻内容等等)
					String ntitle = "";//标题
					String ndate = "";//发布时间
					String nauthor = "";//作者
					String ncontent = "";//内容
					int ncount = 0;//点击量

					//2.获取id
					String 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">
						<!-- 从index.jsp页面中跳转到详情页面,如果有评论  此处要显示出来,如果没有
							评论  显示 "暂无评论" 
							-->
						<%
							//定义一个变量存储指定新闻的评论数
							int commentCount = 0;
							//1.求指定新闻的评论数判断
							sql = "select count(*) from tb_comment where cnid = ?";
							ps = conn.prepareStatement(sql);
							ps.setInt(1, nid);
							rs = ps.executeQuery();
							if (rs.next()) {
								commentCount = rs.getInt(1);
							}

							if (commentCount != 0) {
								//遍历所有的评论
								sql = "select * from tb_comment where cnid = ?";
								ps = conn.prepareStatement(sql);
								ps.setInt(1, nid);
								rs = ps.executeQuery();
								while (rs.next()) {
									sql = "select * from tb_news_users where userid = ?";
									ps = conn.prepareStatement(sql);
									ps.setInt(1, rs.getInt(2));
									ResultSet rs2 = ps.executeQuery();
									String uname = "";
									if (rs2.next()) {
										uname = rs2.getString(2);
									}

									out.println("<tr>");
									out.println("<td>");
									out.println("用户名:" + uname + "<br/>");

									out.println("评论内容:" + rs.getString(5));
									out.println("&nbsp;&nbsp;&nbsp;&nbsp;<a href = 'doDelComment.jsp?username=" + username + "&cid="
											+ rs.getInt(1) + "'>删除</a><br/>");
									out.println("评论时间:" + rs.getString(6) + "<br/>");
									out.println("</td>");
									out.println("</tr>");
									out.println("<tr>");
									out.println("<td>");
									out.println("&nbsp;");
									out.println("</td>");
									out.println("</tr>");
								}

							} 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="username"
									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>
	<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">
		<!-- 通过jsp中的include指令进行引入第三方页面 -->
		<%@ include file="foot.jsp"%>
	</div>
</body>
</html>

实现效果如下:

 完整代码如下:

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>

<%
	//1.设置编码
	request.setCharacterEncoding("utf-8");
	//获取数据
	//评论编号
	int cid = 0;
	Class.forName("oracle.jdbc.driver.OracleDriver");
	//建立连接
	String url = "jdbc:oracle:thin:@localhost:1521:orcl";
	Connection conn = DriverManager.getConnection(url, "scott", "123");

	String sql = "select nvl(max(cid),0) from tb_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("username");
	//根据用户名查找到该用户的编号
	sql = "select * from tb_news_users where username = ?";
	ps = conn.prepareStatement(sql);
	ps.setString(1, username);
	rs = ps.executeQuery();
	if (rs.next()) {
		cuserid = rs.getInt(1);
	}
	//新闻编号
	int nid = Integer.valueOf(request.getParameter("nid"));
	//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_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, nid);
	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='newRead.jsp?username=" + username + "&nid=" + nid
				+ "'</script>");
	} else {
		out.println("<script>alert('评论失败');location.href='newRead.jsp?username=" + username + "&nid=" + nid
				+ "'</script>");
	}

	//关闭资源
	if (conn != null && !conn.isClosed()) {
		conn.close();
	}
	if (ps != null) {
		ps.close();
	}
	if (rs != null) {
		rs.close();
	}
%>

<%@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");
	//获取用户名
	String username = request.getParameter("username");
	//加载驱动
	Class.forName("oracle.jdbc.driver.OracleDriver");
	//建立连接
	String url = "jdbc:oracle:thin:@localhost:1521:orcl";
	Connection conn = DriverManager.getConnection(url, "scott", "123");
	int cuserid = 0;
	String sql = "select * from tb_news_users where username = ?";
	PreparedStatement ps = conn.prepareStatement(sql);
	ps.setString(1, username);
	ResultSet rs = ps.executeQuery();
	if (rs.next()) {
		cuserid = rs.getInt(1);
	}

	//获取cid
	String id = request.getParameter("cid");
	int cid = 0;
	if (null != id) {
		cid = Integer.valueOf(id);
	}
	int cid_cuserid = 0;
	//根据cid进行查找  cuserid
	int nid = 0;//保存新闻编号

	//sql
	sql = "select * from tb_comment where cid = ?";
	ps = conn.prepareStatement(sql);
	ps.setInt(1, cid);
	rs = ps.executeQuery();
	if (rs.next()) {
		cid_cuserid = rs.getInt(2);
		nid = rs.getInt(3);
	}

	if (cuserid != cid_cuserid) {//不是当前登录用户所评论的内容
		//out.println("不是当前登录用户的评论内容");
		out.println("<script>alert('此评论不是当前用户所评,无法删除');location.href='newRead.jsp?username=" + username
				+ "&nid=" + nid + "'</script>");
	} else {
		//out.println("是当前登录用户的评论内容");
		//根据当前登录的用户以及对应的评论编号进行删除
		sql = "delete from tb_comment where cuserid = ? and cid = ?";
		ps = conn.prepareStatement(sql);
		ps.setInt(1, cid_cuserid);
		ps.setInt(2, cid);
		int n = ps.executeUpdate();
		if (n > 0) {
			out.println("<script>alert('删除成功');location.href='newRead.jsp?username=" + username + "&nid=" + nid
					+ "'</script>");
		} else {
			out.println("<script>alert('删除失败');location.href='newRead.jsp?username=" + username + "&nid=" + nid
					+ "'</script>");

		}

	}

	//关闭资源
	if (conn != null && !conn.isClosed()) {
		conn.close();
	}
	if (ps != null) {
		ps.close();
	}
	if (rs != null) {
		rs.close();
	}
%>


举报

相关推荐

0 条评论