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用于返回错误的信息:
- error = “账号或密码不能为空”;request.setAttribute(“error”,error);
- error = “账号或密码错误”;request.setAttribute(“error”,error);
- 获取到错误将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