使用JavaBean+Servlet+JSP实现一个简单的后台登陆和注册功能

一.相关概念

1.JavaBean

JavaBean泛指java的一些基本组件,类似domain,service,utils等

2.Servlet

Servlet是运行在服务器端可以接收客户端请求并向客户端发送响应的一个Java类,servlet的主要职责有三个,分别是(1)获取请求,接收请求参数;(2)调用业务逻辑;(3)页面导航,返回数据。

3.JSP

JSP是一种使用Java语言在服务器端编写动态页面的技术,其核心思路是在JSP=HTML+Java,即在HTML页面中嵌入Java代码,其文件后缀是.jsp

二.具体实现

       实现一个登陆功能,需要验证用户输入的用户名和密码是否与数据库的数据一致,一致则登陆成功,不一致则提示错误。实现用户注册功能需要验证用户输入的名字是否与数据库中原有的数据一致,一致则提示错误,不一致则注册成功。

       根据servlet的职责可知,servlet先要接收客户端的请求,这个请求来自JSP页面,然后调用service的业务逻辑,验证之后将结果返回给JSP,登录情况分为登陆成功和登陆失败,登陆成功则跳转页面。

     我们需要先将数据库和Java连接起来,在Java里依次编写数据库表的实体类,实体类的mapper类和mapper.xml文件和service。然后编写登录和注册的JSP页面,最后编写控制器。

1.Users实体类,mapper,service

1.1 users实体类

package com.xja.domain;/*
 *@描述:
 *@author:Wugq
 *@date:2023/4/7 5:28
 */

public class Users {

    private Integer userId;

    private String userName;

    private String userPass;
}

1.2 UserMapper接口和UserMapper.xml文件

userMapper

package com.xja.mapper;/*
 *@描述:
 *@author:Wugq
 *@date:2023/4/7 5:30
 */

import com.xja.domain.Users;
import org.springframework.stereotype.Repository;

@Repository("UserMapper")
public interface UserMapper {
    public Users selectByName(String userName);
    public void insert(Users users);

}

UserMapper.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xja.mapper.UserMapper">
    <resultMap id="userMap" type="com.xja.domain.Users">
        <id property="userId" column="user_id" javaType="java.lang.Integer" />
        <result property="userName" column="user_name" javaType="java.lang.String" />
        <result property="userPass" column="user_pass" javaType="java.lang.String" />
    </resultMap>
    <select id="selectByName" resultMap="userMap">
        SELECT *  FROM  users  WHERE  user_name = #{userName}
    </select>

    <insert id="insert">
        insert into users (user_name,user_pass) values(#{userName},#{userPass})
    </insert>
</mapper>

  • 7
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个基于 JSPServletJavaBean 实现简单登陆注册系统的代码示例: 1. 登录页面 login.jsp ```html <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>登录</title> </head> <body> <h1>用户登录</h1> <form action="LoginServlet" method="post"> 用户名:<input type="text" name="username"><br> 密码:<input type="password" name="password"><br> <input type="submit" value="登录"> </form> <p><a href="register.jsp">没有账号?点击注册</a></p> </body> </html> ``` 2. 注册页面 register.jsp ```html <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>注册</title> </head> <body> <h1>用户注册</h1> <form action="RegisterServlet" method="post"> 用户名:<input type="text" name="username"><br> 密码:<input type="password" name="password"><br> 重复密码:<input type="password" name="password2"><br> <input type="submit" value="注册"> </form> <p><a href="login.jsp">已有账号?点击登录</a></p> </body> </html> ``` 3. LoginServlet.java ```java import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; 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"); UserBean user = new UserBean(username, password); boolean valid = user.validate(); if (valid) { HttpSession session = request.getSession(); session.setAttribute("username", username); response.sendRedirect("welcome.jsp"); } else { response.sendRedirect("login.jsp"); } } } ``` 4. RegisterServlet.java ```java import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class RegisterServlet 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"); String password2 = request.getParameter("password2"); if (!password.equals(password2)) { response.sendRedirect("register.jsp"); return; } UserBean user = new UserBean(username, password); boolean success = user.register(); if (success) { HttpSession session = request.getSession(); session.setAttribute("username", username); response.sendRedirect("welcome.jsp"); } else { response.sendRedirect("register.jsp"); } } } ``` 5. UserBean.java ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class UserBean { private String username; private String password; public UserBean(String username, String password) { this.username = username; this.password = password; } public boolean validate() { try { Class.forName("com.mysql.cj.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname?user=root&password=root&useSSL=false&serverTimezone=UTC"); PreparedStatement stmt = conn.prepareStatement("SELECT * FROM users WHERE username = ? AND password = ?"); stmt.setString(1, username); stmt.setString(2, password); ResultSet rs = stmt.executeQuery(); boolean found = rs.next(); rs.close(); stmt.close(); conn.close(); return found; } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); return false; } } public boolean register() { try { Class.forName("com.mysql.cj.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname?user=root&password=root&useSSL=false&serverTimezone=UTC"); PreparedStatement stmt = conn.prepareStatement("INSERT INTO users (username, password) VALUES (?, ?)"); stmt.setString(1, username); stmt.setString(2, password); int rows = stmt.executeUpdate(); stmt.close(); conn.close(); return rows == 1; } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); return false; } } 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; } } ``` 6. welcome.jsp ```html <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>欢迎</title> </head> <body> <h1>欢迎,<%= session.getAttribute("username") %>!</h1> <p><a href="logout.jsp">退出登录</a></p> </body> </html> ``` 7. logout.jsp ```html <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>退出</title> </head> <body> <% session.invalidate(); response.sendRedirect("login.jsp"); %> </body> </html> ``` 以上代码仅供参考,具体实现需要根据实际情况进行调整和完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值