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

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

1、注册功能:

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

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

2、简易查询:

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

演示

1.启动进入登陆页面

Jsp+Servlet实现简单登录注册查询_第1张图片

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

Jsp+Servlet实现简单登录注册查询_第2张图片

失败则提示

Jsp+Servlet实现简单登录注册查询_第3张图片

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

Jsp+Servlet实现简单登录注册查询_第4张图片

登录失败显示提示信息

Jsp+Servlet实现简单登录注册查询_第5张图片

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

Jsp+Servlet实现简单登录注册查询_第6张图片

代码

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 (result>0){
   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/zy?&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=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" %>


 查询页面


输入用户名,查询信息
<% User userInfo = (User) request.getAttribute("userInfo"); %> <% if (userInfo != null) { %>
用户名 密码 年龄
    <%=userInfo.getName()%>         <%=userInfo.getPassword()%>         <%=userInfo.getAge()%>    
<% } %>

register.jsp

<%@ page import="com.mysql.cj.util.StringUtils" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


 Title




<% String info =(String) request.getAttribute("info"); %> <% if (!StringUtils.isNullOrEmpty(info)){ %>

<%=info%>

<% } %>
用户名
密码
年龄

web.xml



 
  LoginServlet
  servlet.LoginServlet
 
 
  RegisterServlet
  servlet.RegisterServlet
 
 
  FindByNameServlet
  servlet.FindByNameServlet
 
 
  LoginServlet
  /login
 
 
  RegisterServlet
  /register
 
 
  FindByNameServlet
  /findByName
 

 
 
  login.html 
 

login.html




 
 登陆界面


用户登录
用户名
密码
立即注册

login_error.html




 
 登录验证


用户登录
登录信息不存在,请重新登陆!!!
用户名
密码
立即注册

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

你可能感兴趣的:(Jsp+Servlet实现简单登录注册查询)