开学小测总结(上)

河北省环保监测中心网络新闻发布系统(卷面成绩40分,占课程过程考核20分)

 

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)在其他主机上可正常浏览。

评分标准:能够在Tomcat服务器中正确部署(3分),其它主机可正常浏览(2分);

首先为基础类:

package passage;

public class XinWen {
private String lanmu;
private String zhengwen;
private String timu;
public String getLanmu() {
    return lanmu;
}
public void setLanmu(String lanmu) {
    this.lanmu = lanmu;
}
public String getZhengwen() {
    return zhengwen;
}
public void setZhengwen(String zhengwen) {
    this.zhengwen = zhengwen;
}
public String getTimu() {
    return timu;
}
public void setTimu(String timu) {
    this.timu = timu;
}
public XinWen(String lanmu, String zhengwen, String timu) {
    super();
    this.lanmu = lanmu;
    this.zhengwen = zhengwen;
    this.timu = timu;
}

}

 

链接数据库的代码:

package tool;
import java.sql.*;
public class Tool {
private static Connection connection;
private static String url="jdbc:mysql://localhost:3306/teach?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
private static String user="root";
private static String pass="020907";
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();
    }
}
}

 

首先是登陆的书写:

index.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 charset="UTF-8">
<title>登录界面</title>
</head>
<body>
<form action="denglu" method="post"> 
<center>
<p>
<select name="shenfen">
              <option value="新闻撰稿人">新闻撰稿人</option>
              <option value="普通用户" >普通用户</option>
              <option value="新闻栏目管理员">新闻栏目管理员</option>
              <option value="系统管理员">系统管理员</option>
            </select>
    </p>
    <p>账户
              <input type="text" name="hao"/>
              </p>
              <p>密码
              <input type="password" name="password" />
              </p>
              <p>
              <input type="submit" value="登录">
        </p>
    </center>
            </form>
</body>
</html>

denglu.java

package denglu;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import tool.Tool;
public class Denglu {
    public String find(String zhang) {
        Connection conn=Tool.getConnection();
        PreparedStatement pre=null;
        ResultSet res=null;
        String password=null;
        String sql="SELECT *FROM yonghu 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{
            Tool.release(conn, pre, res);
        }
        return password;
    }
}

Sev.java

package denglu;
import java.io.IOException;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@WebServlet("/denglu")
public class Sev 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 "新闻撰稿人":
            Denglu d=new Denglu();
        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 "系统管理功能":
            Denglu d1=new Denglu();
            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 "普通用户":
            Denglu d2=new Denglu();
            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 "新闻栏目管理员":
            Denglu d3=new Denglu();
            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);
}
}

之后就是各种用户的界面设计,随后就是基本的增删改查的功能实现:

<%@ 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>
<title>Insert title here</title>
</head>
<body>
 <form action="xw" method="post">
<center>
栏目:
<select name="lanmu">
              <option value="政治">政治</option>
              <option value="人文" >人文</option>
              <option value="自然">自然</option>
            </select>
            
             <p>题目
               <input type="text" name="tm"/>
              </p>
 <p>正文
               <input type="text" name="word"/>
              </p>
              
              <input type="hidden" name="method" value="add"/>
              <p>
        <input type="submit" value="提交">
        </p>
</center>
</form>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="xw" method="post">
    栏目: <input type="text" name="lanmu" value="${test.lanmu}" readonly/><br/>
    标题:<input type="text" name="timu" value="${test.timu}"readonly/><br/>
    正文:<input type="text" name="zhengwen" value="${test.zhengwen}"/><br/>
    <input type="hidden" name="method" value="up"/>
    <input type="submit" value="修改"/>
</form>
</body>
</html>

以上是界面的大部分代码。

posted @ 2023-02-13 19:14  一个小虎牙  阅读(21)  评论(0编辑  收藏  举报