继上一篇文章之后的后续
新闻系统之新闻维护有以下几点:
1、添加主题
a、在admin.jsp界面,找到添加主题的标签跳转至add_sub.jsp界面。
代码展示:
<li><a href="newspages/add_sub.jsp">添加主题</a></li>
add_sub的源代码展示:
<%@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"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>添加主题--管理后台</title>
<link href="../CSS/admin.css" rel="stylesheet" type="text/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">管理员: 登录     <a href="#">login out</a></div>
<div id="channel"> </div>
</div>
<div id="main">
<div id="opt_list">
<ul>
<li><a href="news_add.jsp">添加新闻</a></li>
<li><a href="../admin.jsp">编辑新闻</a></li>
<li><a href="#">查找新闻</a></li>
<li><a href="topic_add.jsp">添加主题</a></li>
<li><a href="#">编辑主题</a></li>
</ul>
</div>
<div id="opt_area">
<h1 id="opt_type"> 添加主题: </h1>
<form action="doadd_stu.jsp" method="post">
<p>
<label> 主题: </label>
<input name="nauthor" type="text" class="opt_input" />
</p>
<input name="action" type="hidden" value="addnews">
<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      <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>
b、然后在add_sub.jsp界面跳转到doadd_sub.jsp界面,然后先接收添加的主题连接数据库
ps:因为oracle数据库编号不自增,所有我们先定义一个编号为1,然后查询到主题的数据库
如果有结果集就找到最大的编号在原有的编号上加一,为下一个编号。
c、然后连接到数据库添加主题名成功就跳转至主界面admin界面。
doadd_sub源代码展示:
<%
request.setCharacterEncoding("utf-8");
String tname = request.getParameter("nauthor");
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
Connection con = DriverManager.getConnection(url, "scott", "1234");
int nexTid = 1;
PreparedStatement ps = con.prepareStatement("select max(tid) from subject");
ResultSet rs = ps.executeQuery();
if (rs.next()) {
nexTid = rs.getInt(1) + 1;
}
ps = con.prepareStatement("insert into subject values(?,?)");
ps.setInt(1, nexTid);
ps.setString(2, tname);
int i = ps.executeUpdate();
if(i > 0){
out.print("<script>alert('添加成功');location.href='../admin.jsp'</script>");
}else{
out.print("<script>alert('添加失败');location.href='add_sub.jsp'</script>");
}
%>
2、修改主题
a、在admin.jsp界面,找到添加主题的标签跳转至update_sub.jsp界面。
b、首先需要绑定新闻主题(下拉框)然后点击选中哪个主题就修改哪个主题。
<form action="doupdate_sub.jsp" method="post">
主题:<select name="tid">
<%
Class.forName("oracle.jdbc.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
Connection con = DriverManager.getConnection(url, "scott", "1234");
PreparedStatement ps=con.prepareStatement("select * from subject");
ResultSet rs=ps.executeQuery();
while(rs.next()){
%>
<option value="<%=rs.getInt(1)%>"><%=rs.getString(2) %></option>
<%
}
%>
c、然后因为我们的主题编号在我们的news数据库中为外键,所以我们要先找到主题编号才能找到主题名称。源代码如下:
<div id="opt_area">
<h1 id="opt_type"> 修改主题: </h1>
<form action="doupdate_sub.jsp" method="post">
主题:<select name="tid">
<%
Class.forName("oracle.jdbc.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
Connection con = DriverManager.getConnection(url, "scott", "1234");
PreparedStatement ps=con.prepareStatement("select * from subject");
ResultSet rs=ps.executeQuery();
while(rs.next()){
%>
<option value="<%=rs.getInt(1)%>"><%=rs.getString(2) %></option>
<%
}
%>
d、然后再《》修改为》的文本框中写下值后,跳转至doupdate_sub.jsp界面,然后接收要修改的主题编号和主题名,然后连接数据库,根据主题编号修改主题名。
doupdate_sub源代码:
<%@page import="jdk.nashorn.internal.ir.SetSplitState"%>
<%@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 tid=Integer.valueOf(request.getParameter("tid"));
String tname=request.getParameter("tname");
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
Connection con = DriverManager.getConnection(url, "scott", "1234");
PreparedStatement ps=con.prepareStatement("update subject set tname=? where tid="+tid);
ps.setString(1, tname);
int i=ps.executeUpdate();
if(i>0){
out.print("<script>alert('修改成功');location.href='../admin.jsp'</script>");
}else{
out.print("<script>alert('修改失败');location.href='update_sub.jsp'</script>");
}
%>
3、新闻的模糊查询
a、首先模糊查询就是在主页面的文本框点击输入关键字,找到标题里包含关键字的数据,然后界面跳转至本界面也就是admin界面,
b、然后获取模糊查询的关键字,
ps:第一次进入主界面时是不需要模糊查询的,当我们第二次进入才需要模糊查询,所以我们要确认他是否是第一次进入主界面。所以当我们第一次进去时我们的模糊查询的关键字是没有值的,没有值的话就获取不到模糊查询的关键字,所以会得到null;
c、当关键字不为空时我们就写下模糊查询的sql语句,然后在写下判断如果关键字等于空,我们的关键字也就为空,就正常查询所有。
代码展示:
</form>
<ul class="classlist">
<%
//设置编码-设置请求对象的编号
request.setCharacterEncoding("utf-8");
//获取模糊查询的关键字
String str = request.getParameter("str");
if (str == null) {
str = "";
}
String sql = "select * from news where ntitle like '%" + str + "%' order by nid desc";