Jsp+Servlet实现简单登录注册查询

JSP教程 2025-08-01

本文实例为大家分享了Jsp+Servlet实现简单登录注册查询的具体代码,供大家参考,具体内容如下

1、注册功能:

制作一个注册页面
用户输入:

用户名
密码
年龄
注册成功:——跳转至登录页面进行登录
注册失败:——文字或其他形式的提示皆可

2、简易查询:

制作一个查询页面
输入用户名
显示该用户的用户名、密码、年龄

演示

1.启动进入登陆页面

2.点击注册,进入注册页面,成功跳转到登录页面

失败则提示

回到登录页面,登录成功进入查询页面

登录失败显示提示信息

输入用户名-显示该用户的用户名、密码、年龄

代码

dao

public class UserDao {
 private Connection conn = null;
 private PreparedStatement ps=null;
 private int result=0;
 private ResultSet rs=null;

 //用户注册
 public int register(User user){
 String sql="insert into users(name,password,age) value (,,)";
 try {
 //获取数据库连接对象
 conn= JDBCUtil.getConnection();
 //获取数据库操作对象
 ps=conn.prepareStatement(sql);
 ps.setString(1,user.getName());
 ps.setString(2,user.getPassword());
 ps.setInt(3,user.getAge());
 //执行sql
 result=ps.executeUpdate();
 } catch (Exception e) {
 e.printStackTrace();
 }finally {
 JDBCUtil.close(null,ps,conn);
 }
 return result;
 }

 //登录验证用户信息
 public int login(String userName,String password){
 String sql ="select count(*) from users where name= and password=";
 try {
 conn=JDBCUtil.getConnection();
 ps=conn.prepareStatement(sql);
 ps.setString(1,userName);
 ps.setString(2,password);
 rs=ps.executeQuery();
 while (rs.next()){
 result=rs.getInt("count(*)");
 }
 } catch (Exception e) {
 e.printStackTrace();
 } finally {
 JDBCUtil.close(rs,ps,conn);
 }
 return result;
 }

 //根据用户名 显示用户名、密码、年龄
 public User findByName(String userName){
 String sql="select name,password,age from users where name=";
 User user = null;
 try {
 conn=JDBCUtil.getConnection();
 ps=conn.prepareStatement(sql);
 ps.setString(1,userName);
 rs=ps.executeQuery();
 while (rs.next()){
 String name = rs.getString("name");
 String password = rs.getString("password");
 int age = rs.getInt("age");
 user = new User(name,password,age);
 }

 } catch (Exception e) {
 e.printStackTrace();
 }finally {
 JDBCUtil.close(null,ps,conn);
 }
 return user;
 }
}

entity 实体类

public class User {
 private int id;
 private String name;
 private String password;
 private int age;
//set...
//get...
//constructor...
}

service

public class UserServiceImpl implements UserService {
 UserDao userDao = new UserDao();
 // 注册
 @Override
 public int register(User user) {
 return userDao.register(user);
 }
 // 登陆
 @Override
 public int login(String userName, String password) {
 return userDao.login(userName,password);
 }

 // 根据用户名查找信息
 @Override
 public User findByName(String userName) {
 return userDao.findByName(userName);
 }
}

servlet

// FindByNameServlet
public class FindByNameServlet extends HttpServlet {
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 String name = request.getParameter("name");

 UserService userService = new UserServiceImpl();
 User user = userService.findByName(name);

 //将查询结果放入request作用域
 request.setAttribute("userInfo",user);
 request.getRequestDispatcher("/jsp/index.jsp").forward(request,response);
 }
}

// LoginServlet
public class LoginServlet extends HttpServlet {
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 //1 获取
 String userName = request.getParameter("userName");
 String password = request.getParameter("password");

 //2 service调用dao对数据库操作
 UserService userService = new UserServiceImpl();
 int result = userService.login(userName, password);

 //3 成功跳转到查询页面,失败跳转到失败页面
 if (result0){
 response.sendRedirect("/jsp/index.jsp");
 }else{
 response.sendRedirect("/login_error.html");
 }
 }
}
// RegisterServlet
public class RegisterServlet extends HttpServlet {
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 UserService userService = new UserServiceImpl();
 User user = null;
 int result = 0;
 //1【调用请求对象】读取【请求头】参数信息,得到用户注册信息
 String userName, password, age;
 userName = request.getParameter("userName");
 password = request.getParameter("password");
 age = request.getParameter("age");
 user = new User(userName, password, Integer.valueOf(age));
 //2 调用userService——userDao
 // 先查询用户是否存在
 User byName = userService.findByName(userName);
 if (byName!=null){
 request.setAttribute("info","用户已存在!");
 request.getRequestDispatcher("/jsp/register.jsp").forward(request,response);
 }
 // 注册
 result = userService.register(user);

 //3 设置编码格式,防止乱码
 response.setContentType("text/html;charset=utf-8");
 PrintWriter out = response.getWriter();

 //注册成功:——跳转至登录页面进行登录
 //注册失败:——注册页面提示:注册失败
 if (result == 1) {
 response.sendRedirect("/login.html");
 } else {
 request.setAttribute("info","注册失败!");
 request.getRequestDispatcher("/jsp/register.jsp").forward(request,response);
 }
 }
}

JDBCUtil

public class JDBCUtil {
 private JDBCUtil(){}
 //静态代码块在类加载时执行,并且执行一次。
 static{
 try {
 Class.forName("com.mysql.cj.jdbc.Driver");
 } catch (ClassNotFoundException e) {
 e.printStackTrace();
 }
 }
 //获取数据库连接对象
 public static Connection getConnection() throws Exception{
 String url="jdbc:mysql://127.0.0.1:3306/zyuseSSL=falseserverTimezone=UTCrewriteBatchedStatements=true";
 String user="root";
 String password="rootroot";

 return DriverManager.getConnection(url,user,password);
 }
 /**
 *关闭资源
 * @param conn 连接对象
 * @param ps 数据库操作对象
 * @param rs 结果集
 */
 public static void close(ResultSet rs, Statement ps, Connection conn){
 if (rs != null) {
 try {
 rs.close();
 } catch (SQLException e) {
 e.printStackTrace();
 }
 }
 if (ps != null) {
 try {
 ps.close();
 } catch (SQLException e) {
 e.printStackTrace();
 }
 }
 if (conn != null) {
 try {
 conn.close();
 } catch (SQLException e) {
 e.printStackTrace();
 }
 }
 }
}

index.jsp

%@ page import="entity.User" %
%@ page contentType="text/html;charset=UTF-8" language="java" %
html
head
 title查询页面/title
/head
body
div align="center"
 h2/输入用户名,查询信息
 form action="/findByName" method="get"
 input type="text" name="name" id="name"
 input type="submit" value="查询"
 /form
 %
 User userInfo = (User) request.getAttribute("userInfo");
 %
 %
 if (userInfo != null) {
 %
 table border="3"
 tr
 th用户名/th
 th密码/th
 th年龄/th
 /tr
 tr
 td nbsp; nbsp; %=userInfo.getName()% nbsp; nbsp;/td
 td nbsp; nbsp; %=userInfo.getPassword()% nbsp; nbsp;/td
 td nbsp; nbsp; %=userInfo.getAge()% nbsp; nbsp;/td
 /tr

 /table
 %
 }
 %
/div
/body
/html

register.jsp

%@ page import="com.mysql.cj.util.StringUtils" %
%@ page contentType="text/html;charset=UTF-8" language="java" %
html
head
 titleTitle/title
/head
body
br
br
%
 String info =(String) request.getAttribute("info");
%
%
 if (!StringUtils.isNullOrEmpty(info)){
%
 h1 style="color: red;text-align: center" %=info%/h1
%
 }
%

div align="center"
 form action="/register" method="post"
 table border="2"
 tr
 th用户名/th
 tdinput type="text" name="userName"//td
 /tr
 tr
 th密码/th
 tdinput type="password" name="password"//td
 /tr
 tr
 th年龄/th
 tdinput type="text" name="age"//td
 /tr
 tr
 td colspan="2" align="center"
  input type="submit" value="注册"/
  input type="reset" value="清空"/
 /td
 /tr
 /table
 /form
/div
/body
/html

web.xml

xml version="1.0" encoding="UTF-8"
web-app xmlns="http://xmlns.*j*c*p.org/xml/ns/javaee"
 xmlns:xsi="http://www.**w*3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://xmlns.*j*c*p.org/xml/ns/javaee http://xmlns.*j*c*p.org/xml/ns/javaee/web-app_4_0.xsd"
 version="4.0"
 servlet
 servlet-nameLoginServlet/servlet-name
 servlet-classservlet.LoginServlet/servlet-class
 /servlet
 servlet
 servlet-nameRegisterServlet/servlet-name
 servlet-classservlet.RegisterServlet/servlet-class
 /servlet
 servlet
 servlet-nameFindByNameServlet/servlet-name
 servlet-classservlet.FindByNameServlet/servlet-class
 /servlet
 servlet-mapping
 servlet-nameLoginServlet/servlet-name
 url-pattern/login/url-pattern
 /servlet-mapping
 servlet-mapping
 servlet-nameRegisterServlet/servlet-name
 url-pattern/register/url-pattern
 /servlet-mapping
 servlet-mapping
 servlet-nameFindByNameServlet/servlet-name
 url-pattern/findByName/url-pattern
 /servlet-mapping

 !--设置默认欢迎文件规则--
 welcome-file-list
 welcome-filelogin.html/welcome-file !--servlet 作为默认欢迎文件 ‘/'需要去掉--
 /welcome-file-list
/web-app

login.html

!DOCTYPE html
html lang="en"
head
 meta charset="UTF-8"
 title登陆界面/title
/head
body
div align="center"
 font size="10px" color="#00008b"用户登录/font
 form action="/login" method="post"

 table border="2"
 tr
 th用户名/th
 tdinput type="text" name="userName"//td
 /tr
 tr
 th密码/th
 tdinput type="password" name="password"//td
 /tr
 tr
 td colspan="2" align="center"
  input type="submit" value="登录"/
  input type="reset" /
 /td
 /tr
 /table
 /form
 a href="/jsp/register.jsp" style="text-align: left"立即注册/a


/div
/body
/html

login_error.html

!DOCTYPE html
html lang="en"
head
 meta charset="UTF-8"
 title登录验证/title
/head
body
div align="center"
 font size="10px" color="#00008b"用户登录/fontbr
 font size="5px" color="red"登录信息不存在,请重新登陆!!!/font
 form action="/login" method="post"
 table border="2"
 tr
 th用户名/th
 tdinput type="text" name="userName" //td
 /tr
 tr
 th密码/th
 tdinput type="password" name="password" //td
 /tr
 tr
 td colspan="2" align="center"
  input type="submit" value="登录"/
  input type="reset"

 /td
 /tr
 /table
 /form
 a href="/jsp/register.jsp" style="text-align: left"立即注册/a

/div
/body
/html