servlet实现在线考试系统,参考动力节点


整体布局 在这里插入图片描述

一、Jdbcutil工具包

连接数据库嘛,非它不可,毕竟数据库连接就那几步,总不能一直重复写

public class JdbcUtil {
    //数据库url、用户名和密码
    private static String driver="com.mysql.jdbc.Driver";//Ctrl+Alt+F抽取全局静态变量
    private static String url="jdbc:mysql://localhost:3306/testweb?useUnicode=true&characterEncoding=utf-8";
    private static String username="root";
    private static String password="123456";

    /*读取属性文件,获取jdbc信息*/
    /*static{
        ResourceBundle bundle = ResourceBundle.getBundle("db");
        driver = bundle.getString("driver");
        url = bundle.getString("url");
        username = bundle.getString("username");
        password = bundle.getString("password");
    }*/

    public static Connection getConnection() {
        Connection connection = null;
        try {
            //1、注册JDBC驱动
            Class.forName(driver);
            /* 2、获取数据库连接 */
            connection = DriverManager.getConnection(url,username,password);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }
    public static PreparedStatement createStatement(String sql)  {
        Connection con = getConnection();
        PreparedStatement ps = null;
        try {
            ps = con.prepareStatement(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return ps;
    }
    /*关闭结果集、数据库操作对象、数据库连接*/
    public static void close(ResultSet re){
        if(re!=null){
            try {
                re.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    public static void close(PreparedStatement ps){
        if(ps!=null){
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    public static void release(Connection connection, PreparedStatement preparedStatement, ResultSet resultSet) {

        if(resultSet!=null) {
            try {
                resultSet.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(preparedStatement!=null) {
            try {
                preparedStatement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(connection!=null) {
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

}

二、users实体类,dao类

匹配数据库表,用实体类把它封装起来方便使用!

package com.song.entity;

public class Users {
    private Integer userId;
    private String userName;
    private String password;
    private String sex;
    private String email;

    public Users(Integer userId, String userName, String password, String sex, String email) {
        this.userId = userId;
        this.userName = userName;
        this.password = password;
        this.sex = sex;
        this.email = email;
    }

    public Users() {
    }

    public int getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

userdao类,对数据库操作的方法全在这里边了

package com.song.dao;
public class UserDao {
    private JdbcUtil util=new JdbcUtil();
    public int add(Users users) throws SQLException {//从网页写数据入数据库操作
        String sql="insert into Users(userName,password,sex,email)"+"values(?,?,?,?)";
        PreparedStatement ps= util.createStatement(sql);
        int result= 0;
        try {
            ps.setString(1,users.getUserName());
            ps.setString(2,users.getPassword());
            ps.setString(3,users.getSex());
            ps.setString(4,users.getEmail());
            result = ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            ps.close();
        }
        return result;
    }

    public List findAll()  {//查询操作
        String sql="select * from users";
        PreparedStatement ps=util.createStatement(sql);
        List<Users> list = new ArrayList<>();
        ResultSet re = null;
        try {
            re=ps.executeQuery();
            while(re.next()){
                Integer userId=re.getInt("userId");
                String userName=re.getString("userName");
                String password=re.getString("password");
                String sex=re.getString("sex");
                String email=re.getString("email");
                Users users = new Users(userId, userName, password, sex, email);
                list.add(users);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            util.close(re);
        }
        return list;
    }

    public int deleteUser(String userId) {//显然,删除操作
        //JdbcUtil util = new JdbcUtil();
        //Users users = new Users();
        String sql="delete from Users where userId=?";
        PreparedStatement ps = util.createStatement(sql);
        int result=0;
        try {
            ps.setInt(1,Integer.valueOf(userId));
            //ps.executeQuery();
            //System.out.println("why???"+Integer.valueOf(userId));
            result = ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            util.close(ps);
            //util.close(result);
        }
        return result;
    }
}

三、servlet实现的注册,查询,删除用户数据

1、UserAddServlet,添加数据,用户注册操作


import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

@WebServlet(name = "UserAddServlet")
public class UserAddServlet extends HttpServlet {
    /*protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }*/
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //调用请求对象
        request.setCharacterEncoding("utf-8");
        //request.setContentType("text/html;charset=UTF-8");
        String userName,password,sex,email;
        userName=request.getParameter("userName");
        password=request.getParameter("password");
        sex=request.getParameter("sex");
        email=request.getParameter("email");
        System.out.println("userName"+userName);
        UserDao dao  = new UserDao();
        Users users = new Users(null, userName, password, sex, email);
        int result= 0;
        try {
            result = dao.add(users);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        response.setContentType("text/html;charset=utf-8");
            PrintWriter out = response.getWriter();
            if (result==1){
                out.print("<font style='color:red;font-size:40'>用户信息注册成功</font>");
            }else {
                out.print("<font style='color:red;font-size:40'>用户信息注册失败</font>");
            }
    }
}

2、FindUserServlet 查询数据和用户


import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

public class FindUserServlet extends HttpServlet {//查询数据
    //protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        UserDao dao = new UserDao();
        PrintWriter out;
        List<Users> list=dao.findAll();
        //request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        response.setCharacterEncoding("utf-8");
        out=response.getWriter();
        out.print("<table border='2' align='center'>");
        out.print("<tr>");
        out.print("<td>用户编号</td>");
        out.print("<td>用户姓名</td>");
        out.print("<td>用户密码</td>");
        out.print("<td>用户性别</td>");
        out.print("<td>用户邮箱</td>");
        out.print("<td>操作</td>");
        out.print("</tr>");
        for(Users users:list){
            out.print("<tr>");
            out.print("<td>"+users.getUserId()+"</td>");
            out.print("<td>"+users.getUserName()+"</td>");
            out.print("<td>******</td>");
            out.print("<td>"+users.getSex()+"</td>");
            out.print("<td>"+users.getEmail()+"</td>");
            out.print("<td><a href='/myWeb/delete?userId="+users.getUserId()+"'>删除用户</a></td>");
            out.print("</tr>");
        }
        out.print("</table>");
        System.out.println("从数据库中查出来是否是乱码"+list.toString());

    }
}

3、删除数据用户 DeleteUserServlet

public class DeleteUserServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String userId;
        PrintWriter out=null;
        int result=0;
        userId=request.getParameter("userId");
        System.out.println(userId);
        UserDao dao = new UserDao();
        result=dao.deleteUser(userId);
        System.out.println("???????"+result);
        response.setContentType("text/html;charset=utf-8");
        out=response.getWriter();
        if(result==1){
            out.print("<font style='color:red;font-size:40'>用户信息删除成功</font>");
        }else{
            out.print("<font style='color:red;font-size:40'>用户信息删除失败</font>");
        }
    }
}

四、其余网页(html)代码以及web.xml配置

用户注册网页,UserAdd.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<center>
    <form action="/myWeb/user/add" method="get">
        <table>
            <tr>
                <td>用户姓名</td>
                <td><input type="text" name="userName"></td>
            </tr>
            <tr>
                <td>用户密码</td>
                <td><input type="password" name="password"></td>
            </tr>
            <tr>
                <td>用户性别</td>
                <td>
                    <input type="radio" name="sex" value=""/><input type="radio" name="sex" value=""/></td>
            </tr>
            <tr>
                <td>用户邮箱</td>
                <td><input type="text" name="email"></td>
            </tr>
            <tr>
                <td><input type="submit" value="用户注册"/></td>
                <td><input type="reset"/></td>
            </tr>

        </table>
    </form>
</center>


</body>
</html>

导航页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>主页</title>
</head>
<frameset rows="15%,85%">
    <frame name="top"src="/myWeb/top.html"/>
    <frameset cols="15%,85%">
        <frame name="left" src="/myWeb/left.html"/>
        <frame name="right" charset="UTF-8">
    </frameset>
</frameset>
</html>

左侧

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body style="font-size: 15px;background-color: darkgrey">
<ul>
    <li>用户信息管理
    <ol>
        <li><a href="/myWeb/user_Add.html"target="right">用户注册</a></li>
        <li><a href="/myWeb/find"target="right">用户信息查询</a></li>
    </ol></li>
    <li>aaa</li>
</ul>

</body>
</html>

顶部

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body style="background-color: aqua">
<center>
    <front style="color: black;font-size: 45px">天软在线考试管理系统</front>
</center>

</body>
</html>

web.xml文件配置

    <servlet>
        <servlet-name>UserAddServlet</servlet-name>
        <servlet-class>com.song.controller.UserAddServlet</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>FindUserServlet</servlet-name>
        <servlet-class>com.song.controller.FindUserServlet</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>DeleteUserServlet</servlet-name>
        <servlet-class>com.song.controller.DeleteUserServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>DeleteUserServlet</servlet-name>
        <url-pattern>/delete</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>FindUserServlet</servlet-name>
        <url-pattern>/find</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>UserAddServlet</servlet-name>
    <url-pattern>/user/add</url-pattern>
</servlet-mapping>
五、结果图,

用户注册
在这里插入图片描述
用户信息查询
在这里插入图片描述

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
在线考试系统是一种通过互联网进行考试系统。它基于Java编程语言设计与实现,具有以下功能和特点。 首先,在线考试系统具有用户管理功能系统管理员可以创建、编辑和删除考生账号,为考生分配考试科目和考试时间。考生可以根据自己的需求选择考试科目和时间。 其次,系统具有试题管理功能。管理员可以上传试题,包括选择题、填空题和问答题。试题可以根据科目和难度级别进行分类,方便考生选择合适的考试内容。管理员还可以编辑和删除试题,并进行试题的随机抽取和组卷。 再次,系统具有考试功能。考生可以登录系统,在规定的时间内进行考试系统会根据考生的选择生成试卷,考生需要在规定的时间内完成答题。考生可以随时交卷,系统会自动计算得分并将考试结果保存。 此外,系统还具有成绩管理功能考试结束后,系统会自动生成考试成绩和排名,并将成绩保存在数据库中。考生可以查看自己的成绩和排名,系统管理员可以查看所有考生的成绩统计和分析,以便于评估考试质量。 在线考试系统实现代码主要包括前端和后端两部分。前端使用HTML、CSS和JavaScript等前端技术实现用户界面和交互功能。后端使用Java编程语言,搭建基于Spring框架的Web应用,通过Servlet和JSP等技术实现用户请求的处理和响应。 总之,基于Java的在线考试系统设计与实现代码,能够方便地管理用户、试题和成绩,并提供稳定可靠的考试服务。这种系统可以应用于各种机构的考试和测评,提高效率和准确度,方便考生和管理员的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值