Hello月 2023-10-27 11:04 采纳率: 0%
浏览 4

关于#javascript#的问题:使用JSP+Javabean+servlet的模式来进行设计,实现管理员登录验证(相关搜索:数据库|连接数据库)

使用JSP+Javabean+servlet的模式来进行设计,实现管理员登录验证。表名: admin,字段: id(int)主键、name(String)、password(String)具体要求:登录时验证用户是否存在,如果存在将用户名存入session并重定向intfsp页面,在该页面显示“欢迎X”,否则转发至index. jsp, 并提示:用户不存在或者密码错误。数据库用SQL,数据源用jdbc。要求连接数据库以及查询的功能由Javabean实现。

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-27 13:45
    关注

    【以下回答由 GPT 生成】

    解决方案如下:

    1. 首先,创建一个用于连接数据库的Javabean类,命名为DatabaseUtil.java。该类应该包含一个用于连接数据库的方法getConnection(),以及一个用于执行查询操作的方法selectUser(String username, String password),返回一个布尔值表示用户是否存在。
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    public class DatabaseUtil {
        private static final String jdbcUrl = "jdbc:mysql://localhost:3306/mydatabase";
        private static final String jdbcUsername = "admin";
        private static final String jdbcPassword = "admin";
    
        public Connection getConnection() {
            Connection connection = null;
            try {
                Class.forName("com.mysql.jdbc.Driver");
                connection = DriverManager.getConnection(jdbcUrl, jdbcUsername, jdbcPassword);
            } catch (ClassNotFoundException | SQLException e) {
                e.printStackTrace();
            }
            return connection;
        }
    
        public boolean selectUser(String username, String password) {
            try {
                String query = "SELECT * FROM admin WHERE name=? AND password=?";
                Connection connection = getConnection();
                PreparedStatement statement = connection.prepareStatement(query);
                statement.setString(1, username);
                statement.setString(2, password);
                ResultSet resultSet = statement.executeQuery();
                return resultSet.next();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return false;
        }
    }
    
    1. 创建一个Servlet类作为登录验证的控制器,命名为LoginServlet.java。在doPost()方法中,获取表单中的用户名和密码,然后调用DatabaseUtil的selectUser()方法来验证用户是否存在。如果验证通过,则将用户名存入session,并重定向到intfsp.jsp页面。如果验证不通过,则转发到index.jsp,并显示相应的错误提示。
    import java.io.IOException;
    
    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 javax.servlet.http.HttpSession;
    
    @WebServlet("/login")
    public class LoginServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            String username = request.getParameter("username");
            String password = request.getParameter("password");
    
            DatabaseUtil databaseUtil = new DatabaseUtil();
            boolean isValidUser = databaseUtil.selectUser(username, password);
    
            if (isValidUser) {
                HttpSession session = request.getSession();
                session.setAttribute("username", username);
                response.sendRedirect("intfsp.jsp");
            } else {
                request.setAttribute("errorMessage", "用户名或密码错误");
                request.getRequestDispatcher("index.jsp").forward(request, response);
            }
        }
    }
    
    1. 在intfsp.jsp页面中,使用JSP代码获取session中的用户名,并进行欢迎信息的显示。
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
    <html>
    <head>
        <title>Intfsp</title>
    </head>
    <body>
        <% 
            String username = (String) session.getAttribute("username");
            out.println("欢迎 " + username); 
        %>
    </body>
    </html>
    
    1. 在index.jsp页面中,使用JSP代码获取并显示错误提示。
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
    <html>
    <head>
        <title>Login</title>
    </head>
    <body>
        <% 
            String errorMessage = (String) request.getAttribute("errorMessage");
            if (errorMessage != null) {
                out.println(errorMessage);
            }
        %>
        <form action="login" method="post">
            <input type="text" name="username" placeholder="用户名"><br>
            <input type="password" name="password" placeholder="密码"><br>
            <input type="submit" value="登录">
        </form>
    </body>
    </html>
    

    这样,就完成了使用JSP+Javabean+servlet设计模式实现管理员登录验证系统的设计与实现。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 10月27日