1、项目需求:
河北省环保监测中心网络新闻为搭建公众信息交流平台,决定建立新闻发布平台。新闻发布平台按内容包括中心新闻、企业环保信息发布等若干新闻栏目,新闻撰稿人可登陆平台发布新闻,每个新闻栏目至少有一位新闻栏目管理员,负责审查新闻撰稿人所发的新闻稿件,在审查通过后,对应新闻才可以显示在对应新闻栏目上,一般用户登录后才可以看到,另外还可以删除过时或无用的信息。另外,系统管理员可以对用户进行管理和对新闻栏目进行调整。新闻发布流程如下:
2.系统要求与功能设计
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分)
(6)发表评论回复:普通用户可以对新闻进行发表评论,可选择匿名回复;(1分)
(7)按照一定条件查询新闻:栏目管理员可以按照时间段,新闻关键字等条件进行查询;(2分)
(8)管理待发与已发新闻:新闻栏目管理员可以批准新闻发布、删除不合适新闻、给出撰稿人修改意见、对已发的过时新闻进行删除;(2分)
(9)管理新闻评论回复:新闻栏目管理员可以查看、删除、禁止新闻的回复;(2分)
(10)管理新闻栏目:新开新闻栏目、删除新闻栏目、合并新闻栏目、更改新闻栏目的基本信息;(2分)
(11)用户管理:管理员可以查询用户、批准新用户、暂停用户、为用户赋予角色,普通用户可以修改用户资料。(2分)
2.1,2.2 评分标准:以上各项分值为页面要求和功能要求,各项分值合计(24分);除此以外设计出合理的数据库和数据表(3分),数据库连接正常(2分),设计出用户权限管理(6分)。
2.3 网站发布
(1)网站制作完成后需指定一台机器作为服务器发布。
(2)在其他主机上可正常浏览。
Login.jsp
<%--
Created by IntelliJ IDEA.
User: 86178
Date: 2022/11/18
Time: 13:48
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录界面</title>
</head>
<body>
<center>
<h2>登录</h2>
<form action="LoginServlet" method="post">
账户: <input type = "text" name="id"><br><br>
密码: <input type="password" name="pwd"><br><br>
<select name="role">
<option value = 1>新闻撰稿人</option>
<option value = 2>用户</option>
<option value = 3>新闻管理员</option>
</select>
<a href="zhuce.jsp">注册</a> <button style="margin-left: 20px" id="btn02">登录</button><br>
</form>
</center>
</body>
</html>
writer.jsp:
<%--
Created by IntelliJ IDEA.
User: 86178
Date: 2023/2/13
Time: 15:00
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>writer</title>
</head>
<body>
<h2>新闻撰写者界面</h2>
<a href="writing.jsp">撰写新闻稿件</a><br>
<a href="Look.jsp">查看修改意见</a><br>
<a href="xiugai.jsp">修改新闻稿件</a><br>
<a href="chakan.jsp">查看新闻稿件</a>
</body>
</html>
writing.jsp:
<%--
Created by IntelliJ IDEA.
User: 86178
Date: 2023/2/13
Time: 15:24
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>撰写界面</title>
</head>
<body>
<form action="writingServlet" method="post">
<table align="center" border="1" width="600">
<tr>
<td>新闻内容</td>
<td>
<input type="text" name="xinwenneirong"><br>
</td>
</tr>
<tr>
<td>新闻栏目</td>
<td>
<input type="text" name="xinwenlanmu"><br>
</td>
</tr>
<tr>
<td><button aligin="center">提交</button></td>
</tr>
</table>
</form>
</body>
</html>
xiugai.jsp:
<%--
Created by IntelliJ IDEA.
User: 86178
Date: 2023/2/13
Time: 16:14
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>xiugai</title>
</head>
<body>
<form action="xiugaiServlet" method="post">
请输入修改栏目:<input type="text" name="xinwenlanmu"><br>
请输入修改内容:<input type="text" name="xinwenneirong"><br>
请输入修改新闻编号:<input type="text" name="num">
<button>提交</button>
</form>
</body>
</html>
Look.jsp:
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %><%--
Created by IntelliJ IDEA.
User: 86178
Date: 2023/2/13
Time: 15:54
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>1</title>
</head>
<body>
<% //驱动程序名
String driverName = "com.mysql.jdbc.Driver";
//数据库用户名
String userName = "root";
//密码
String userPasswd = "1234";
//数据库名
String dbName = "firsttest";
//表名
String tableName = "guanliyuan";
//联结字符串
String url = "jdbc:mysql://localhost:3306/"+dbName+"?user="+userName+"&password="+userPasswd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection = DriverManager.getConnection(url);
Statement statement = connection.createStatement();
String sql = "SELECT * FROM "+tableName;
ResultSet rs = statement.executeQuery(sql);
%>
<table align="center">
<tr>
<th>
<% out.print("意见"); %>
</th>
<% while(rs.next()){ %>
<tr>
<td>
<% out.print(rs.getString(1));}%>
</td>
</tr>
</table>
</body>
</html>
Dbutil.java:
package DButil;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DButil {
//通用数据库连接
public static Connection getConnection() {
Connection connection = null;
try{
Class.forName("com.mysql.jdbc.Driver"); //常用的连接数据库语句
String url = "jdbc:mysql://localhost/firsttest?useUnicode=true&characterEncoding=utf8";//连接数据库具体语句
connection = DriverManager.getConnection(url, "root", "1234"); //连接 输入账号 密码
System.out.println("连接成功!");
return connection; //返回连接内容
}catch(ClassNotFoundException nfe) {
nfe.printStackTrace();
}catch(SQLException sqle) {
sqle.printStackTrace();
}
return connection;
}
public static void closeConnection(Connection connection) {
if(connection != null) {
try{
connection.close();
}catch(SQLException sqle) {
sqle.printStackTrace();
}
}
}
}
LgoinSevlet:
package Servlet;
import Dao.LoginDao;
import com.example.xiademo01.HelloServlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
@WebServlet("/LoginServlet")
public class LoginServlet extends HelloServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String id=req.getParameter("id");
String pwd=req.getParameter("pwd");
String role=req.getParameter("role");
if(role.equals("1")){
LoginDao A =new LoginDao();
try {
if(A.login(id,pwd)) req.getRequestDispatcher("writer.jsp").forward(req,resp);
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
if(role.equals("2")){
req.getRequestDispatcher("rooter.jsp").forward(req,resp);
}
if(role.equals("3")){
req.getRequestDispatcher("user.jsp").forward(req,resp);
}
}
}
writingServlet:
package Servlet;
import Dao.LoginDao;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
@WebServlet("/writingServlet")
public class writingServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String xinwenneirong = req.getParameter("xinwenneirong");
String xinwenlanmu = req.getParameter("xinwenlanmu");
LoginDao A =new LoginDao();
try {
A.write(xinwenneirong,xinwenlanmu);
req.getRequestDispatcher("writer.jsp").forward(req,resp);
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
xiugaiServlet:
package Servlet;
import Dao.LoginDao;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
@WebServlet("/xiugaiServlet")
public class xiugaiServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String xinwenneirong = req.getParameter("xinwenneirong");
String xinwenlanmu = req.getParameter("xinwenlanmu");
int num = Integer.parseInt(req.getParameter("num"));
LoginDao A = new LoginDao();
try {
A.xiugai(xinwenneirong,xinwenlanmu,num);
req.getRequestDispatcher("writer.jsp").forward(req,resp);
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
这次开学试验测试让我进一步认识到了自己在数据库的增删改查的问题,需要解决的步骤一多就容易混乱找不到思路。一个假期的松懈退步了不少,需要多改进。
标签:栏目,网络新闻,新闻,req,监测中心,jakarta,import,servlet,河北省 From: https://www.cnblogs.com/YFLZ/p/17134958.html