javaweb登录验证怎么实现_java实现用户登录

javaweb登录验证怎么实现_java实现用户登录javaweb实现登录系统,登陆系统界面,servlet跳转,登录过程中error错误信息获取涉及内容(适合初学javaweb者):javawebMySQLservletjsp项目导航运行to

javaweb实现登录系统,登陆系统界面,servlet跳转,登录过程中error错误信息获取

涉及内容(适合初学javaweb者):

  • javaweb
  • MySQL
  • servlet
  • jsp

项目导航
项目导航
运行tomcat定向到login界面:
运行tomcat后,浏览器会默认打开index.jsp页面,需要在index.jsp中添加如下代码,使默认打开login.jsp。

<body> <jsp:forward page="login.jsp"></jsp:forward> </body> 

用户登录的jsp页面:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%-- Created by IntelliJ IDEA. User: HP Date: 2021/10/16 Time: 22:47 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>登录</title> </head> <body> <% request.setCharacterEncoding("utf-8"); response.setContentType("text/html; charset=UTF-8"); //获取登录操作转发的信息 Object error = request.getAttribute("error"); System.out.println("error = " + error); %> <form action="LoginServlet" method="post"> <table align="center" width="600px" bgcolor="#f0f8ff" height="320px"> <tr> <th colspan="600px" height="120px" align="center"><font size="5px" color="black">员工信息管理系统</font></th> </tr> <tr> <td colspan="600px" height="50px" align="center"><input type="text" name="name" placeholder="请输入账号"></td> </tr> <tr> <td colspan="600px" height="50px" align="center"><input type="password" name="password" placeholder="请输入密码"> </td> </tr> <tr> <td align="center"><font color="red"><%=(error == null ? "" : error)%></font></td> </tr> <tr> <th><input type="submit" value="登录"></th> </tr> </table> </form> </body> </html> 

登录界面效果:
登录界面

controller中的loginServlet映射:

package controller; import dao.EmployeeDao; import utils.JDBCUtils; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.annotation.*; import java.io.IOException; @WebServlet(name = "LoginServlet", value = "/LoginServlet") public class LoginServlet extends HttpServlet { 
    @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    //判断登陆信息是否正确 request.setCharacterEncoding("utf-8"); response.setContentType("text/html; charset=UTF-8"); //获取表单账号密码 String name = request.getParameter("name"); String password = request.getParameter("password"); System.out.println("name = " + name); System.out.println("password = " + password); //设置错误信息 String error; if (null==name||null==password||"".equals(name)||"".equals(password)){ 
    //告知用户账号或密码不能为空 error = "账号或密码不能为空"; request.setAttribute("error",error); //把错误信息返回到登录界面 request.getRequestDispatcher("login.jsp").forward(request, response); }else { 
    //校验用户账号或密码是否正确 EmployeeDao emp = new EmployeeDao(); boolean flag = emp.loginQuery(name,password); if (flag){ 
    //登陆成功 request.setAttribute("name",name); System.out.println(name+"登陆成功"); //重定向到首页 request.getRequestDispatcher("home_page.jsp").forward(request, response); }else { 
    //设置错误信息 error = "账号或密码错误"; request.setAttribute("error",error); request.getRequestDispatcher("login.jsp").forward(request, response); } } } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    doGet(request, response); } } 

验证登录的String error用于返回错误的信息:

  1. error = “账号或密码不能为空”;request.setAttribute(“error”,error);
  2. error = “账号或密码错误”;request.setAttribute(“error”,error);
  3. 获取到错误将error转发到login.jsp

在这里插入图片描述
在这里插入图片描述
Dao层查询账号密码是否正确数据

package dao; import utils.JDBCUtils; import java.sql.ResultSet; import java.sql.SQLException; public class EmployeeDao { 
    //根据账号密码查询 public boolean loginQuery(String name,String password){ 
    boolean b = false; String sqlQuery = "select * from employee where name=? and password=?"; ResultSet rs = JDBCUtils.query(sqlQuery,name,password); try { 
    if (rs.next()){ 
    b = true; }else { 
    b=false; } } catch (SQLException throwables) { 
    throwables.printStackTrace(); } return b; } } 

utils数据库查询方法

public static ResultSet query(String sql,Object... objs){ 
    //预处理 getConnect(); try { 
    statement = connection.prepareStatement(sql); //判断objs是否为空或为0 if(objs != null && objs.length > 0){ 
    for (int i = 0; i < objs.length; i++) { 
    statement.setObject(i+1,objs[i]); } } //查询操作 resultSet = statement.executeQuery(); } catch (SQLException throwables) { 
    throwables.printStackTrace(); } return resultSet; } 

gitee代码:https://gitee.com/guo-yc/gyc202/tree/master/src/IDEA/src/Web

写此文主要是想认真总结,主动写代码的逻辑,训练一下自己敲代码的速度,这只是入门,算是一步步记录自己的学习过程,本人也是初学javaweb,本文有不当的地方欢迎大佬改正。

今天的文章
javaweb登录验证怎么实现_java实现用户登录分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/60651.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注