JavaBean及Servlet使用

发布于:2025-04-11 ⋅ 阅读:(36) ⋅ 点赞:(0)

1.创建一个数据库,在数据库建立用户表,插入几条用户数据。

2. 编写一个JavaBean“User.java”,它包含属性stuno(String)、password(String)、stuname(String),并编写相应的getter和setter方法。

3.编写一个登录页面,输入学号和密码,在数据库中进行验证,如果验证通过,则在另一个页面中显示学生的姓名;如果验证不通过,返回登录页面,并提示用户不存在信息。要求数据提交到Servlet中进行处理,使用JavaBean封装学生信息,使用DAO查询数据库。

实验代码:

package com.example;

import jakarta.servlet.ServletException;

import jakarta.servlet.http.HttpServlet;

import jakarta.servlet.http.HttpServletRequest;

import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;

public class LoginServlet extends HttpServlet {

    @Override

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String stuno = request.getParameter("stuno");

        String password = request.getParameter("password");

        User user = new User();

        user.setStuno(stuno);

        user.setPassword(password);

        UserDAO userDAO = new UserDAO();

        boolean isAuthenticated = userDAO.authenticate(user);

        if (isAuthenticated) {

            request.getSession().setAttribute("user", user);

            response.sendRedirect("success.jsp");

        } else {

            response.sendRedirect("login.jsp?error=1");

        }

    }

}

package com.example;

public class User {

    private String stuno;

    private String password;

    private String stuname;

    // Getter for stuno

    public String getStuno() {

        return stuno;

    }

    // Setter for stuno

    public void setStuno(String stuno) {

        this.stuno = stuno;

    }

    // Getter for password

    public String getPassword() {

        return password;

    }

    // Setter for password

    public void setPassword(String password) {

        this.password = password;

    }

    // Getter for stuname

    public String getStuname() {

        return stuname;

    }

    // Setter for stuname

    public void setStuname(String stuname) {

        this.stuname = stuname;

    }

}

package com.example;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

public class UserDAO {

    private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";

    private static final String DB_URL = "jdbc:mysql://localhost:3306/student_db";

    private static final String USER = "root";

    private static final String PASS = "123456";

    public boolean authenticate(User user) {

        Connection conn = null;

        PreparedStatement stmt = null;

        ResultSet rs = null;

        boolean result = false;

        try {

            Class.forName(JDBC_DRIVER);

            conn = DriverManager.getConnection(DB_URL, USER, PASS);

            String sql = "SELECT * FROM user_table WHERE stuno =? AND password =?";

            stmt = conn.prepareStatement(sql);

            stmt.setString(1, user.getStuno());

            stmt.setString(2, user.getPassword());

            rs = stmt.executeQuery();

            if (rs.next()) {

                user.setStuname(rs.getString("stuname"));

                result = true;

            }

        } catch (SQLException | ClassNotFoundException e) {

            e.printStackTrace();

        } finally {

            try {

                if (rs!= null) rs.close();

                if (stmt!= null) stmt.close();

                if (conn!= null) conn.close();

            } catch (SQLException e) {

                e.printStackTrace();

            }

        }

        return result;

    }

}

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

    <title>登录页面</title>

</head>

<body>

<form action="LoginServlet" method="post">

    学号: <input type="text" name="stuno"><br>

    密码: <input type="password" name="password"><br>

    <input type="submit" value="登录">

</form>

</body>

</html>

<%@ page import="com.example.User" %>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

    <title>欢迎页面</title>

</head>

<body>

<h1>欢迎您,${user.stuname}!</h1>

<%

    User user = (User) session.getAttribute("user");

    if (user == null) {

        out.println("用户对象在会话中不存在");

    } else {

        out.println("用户对象存在,姓名为:" + user.getStuname());

    }

%>

</body>

</html>