开学考试小结
题目:河北省环保监测中心网络新闻发布系统
2.1 页面要求
(1)通过浏览器查看,能适应常用分辨率;(1分)
(2)布局合理、结构清晰、页面完整;(1分)
(3)网站页面整体风格统一;(1分)
(4)首页为用户登录页面,不同角色用户登录后,进入相应的功能页,要求密码在数据库中加密;(4分)
(5)新闻撰稿人功能页:在线撰写与修改稿件、查看已写稿件及修改意见;
(6)普通用户功能页:浏览相应栏目新闻、用户评论新闻(可匿名)、浏览其他用户评论;
(7)新闻栏目管理员功能页:浏览与管理本栏目待发与已发新闻;
(8)系统管理功能页:用户注册、用户权限管理、新闻栏目管理;
(9)对每页中的查询结果推荐采用分页显示。
2.2 功能要求
(1)在线撰写新闻稿件:新闻撰稿人在线撰写新闻,选择栏目,正式提交;(2分)
(2)查看修改意见:新闻撰稿人查看新闻栏目管理员提出的修改意见;(1分)
(3)修改新闻稿件:新闻撰稿人根据修改意见可以对新闻进行修改;(1分)
(4)查询已经撰写的新闻:新闻撰稿人可以查看自己已经撰写的新闻;(1分)
(5)浏览新闻:普通用户可以浏览栏目的新闻(按照时间倒排);(1分)
图1 新闻发布流程
(6)发表评论回复:普通用户可以对新闻进行发表评论,可选择匿名回复;(1分)
(7)按照一定条件查询新闻:栏目管理员可以按照时间段,新闻关键字等条件进行查询;(2分)
(8)管理待发与已发新闻:新闻栏目管理员可以批准新闻发布、删除不合适新闻、给出撰稿人修改意见、对已发的过时新闻进行删除;(2分)
(9)管理新闻评论回复:新闻栏目管理员可以查看、删除、禁止新闻的回复;(2分)
(10)管理新闻栏目:新开新闻栏目、删除新闻栏目、合并新闻栏目、更改新闻栏目的基本信息;(2分)
(11)用户管理:管理员可以查询用户、批准新用户、暂停用户、为用户赋予角色,普通用户可以修改用户资料。(2分)
2.1,2.2 评分标准:以上各项分值为页面要求和功能要求,各项分值合计(24分);除此以外设计出合理的数据库和数据表(3分),数据库连接正常(2分),设计出用户权限管理(6分)。
2.3 网站发布
(1)网站制作完成后需指定一台机器作为服务器发布。
(2)在其他主机上可正常浏览。
评分标准:能够在Tomcat服务器中正确部署(3分),其它主机可正常浏览(2分);
1.登录
完成不同用户登录
前端.index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>登录界面</title> </head> <body> <form action="denglu" method="post"> <h1>登录界面</h1> <table> <tr> <td>身份</td> <td> <select name="shenfen"> <option value="系统管理">系统管理</option> <option value="新闻栏目管理员">新闻栏目管理员</option> <option value="普通用户">普通用户</option> <option value="新闻撰稿人">新闻撰稿人</option> </select> </tr> <tr> <td>用户名</td> <td><input type="text" name="hao"/></td> </tr> <tr> <td>密码</td> <td><input type="password" name="password"/></td> </tr> </table> <input type="submit" value="提交"/> </form> </body> </html>
后台.Dengres.java
package deng; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import util.JDBCTools; public class Dengres { public String find(String zhang) { Connection conn=JDBCTools.getConnection(); PreparedStatement pre=null; ResultSet res=null; String password=null; String sql="SELECT *FROM denglu where hao= ? "; try { pre=conn.prepareStatement(sql); pre.setString(1, zhang); res=pre.executeQuery(); while(res.next()) { String hao=res.getString("hao"); String passwords=res.getString("password"); String s=res.getString("shenfen"); password=passwords; } } catch(SQLException e) { e.printStackTrace(); }finally{ JDBCTools.release(conn, pre, res); } return password; } }
后台实现层 DengSer.java
package deng; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class DengSer extends HttpServlet{ @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ String z = request.getParameter("hao"); String password=request.getParameter("password"); String shenfen =request.getParameter("shenfen"); switch(shenfen) { case "新闻撰稿人": Dengres d=new Dengres(); String p=d.find(z); if(p.equals(password)) { request.setAttribute("test", z); request.getRequestDispatcher("xinwenset.jsp").forward(request, response); }else { request.setAttribute("test", "密码错误"); request.getRequestDispatcher("tishi.jsp").forward(request, response); } break; case "系统管理": Dengres d1=new Dengres(); String p1=d1.find(z); if(p1.equals(password)) { request.setAttribute("test", z); request.getRequestDispatcher("xitong.jsp").forward(request, response); }else { request.setAttribute("test", "密码错误"); request.getRequestDispatcher("tishi.jsp").forward(request, response); } break; case "普通用户": Dengres d2=new Dengres(); String p2=d2.find(z); if(p2.equals(password)) { request.setAttribute("test", z); request.getRequestDispatcher("yonghu.jsp").forward(request, response); }else { request.setAttribute("test", "密码错误"); request.getRequestDispatcher("tishi.jsp").forward(request, response); } break; case "新闻栏目管理员": Dengres d3=new Dengres(); String p3=d3.find(z); if(p3.equals(password)) { request.setAttribute("test", z); request.getRequestDispatcher("xinwengl.jsp").forward(request, response); }else { request.setAttribute("test", "密码错误"); request.getRequestDispatcher("tishi.jsp").forward(request, response); } break; } } @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ doPost(request,response); } }
mysql数据库:

连接数据库包
package util; import java.sql.*; public class JDBCTools { private static Connection connection; private static String url="jdbc:mysql://localhost:3306/runoob?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone = GMT";//runoob为数据库名 private static String user="root";//用户名 private static String pass="123456";//密码 static { try { Class.forName("com.mysql.cj.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static Connection getConnection(){ try { connection= DriverManager.getConnection(url,user,pass); } catch (SQLException e) { e.printStackTrace(); } return connection; } public static void release(Connection connection, Statement statement, ResultSet resultSet){ try { if (connection!=null) { connection.close(); } if (statement!=null){ statement.close(); } if (resultSet!=null){ resultSet.close(); } } catch (SQLException e) { e.printStackTrace(); } } }

浙公网安备 33010602011771号