栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

JAVAWEB实现用户登录验证

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVAWEB实现用户登录验证

我想做个网页,所以学了点JAVAWEB。

在这里实现了用户登录验证:

实现要知道javaweb常见内置对象的一些性质。

javaweb常见对象
对象名创建时间销毁时间每个用户的共享情况是否可自行定义销毁时间
request客户端发送一次请求浏览器发送请求回复每个用户每次请求独立使用
respond客户端发送一次请求浏览器发送请求回复每个用户每次请求独立使用
servletContext服务器启动服务器正常关闭所有用户全局共享
cookies一次会话建立一次会话结束每个用户独自拥有,该用户所有请求共享
session一次会话建立一次会话结束(没过期前)每个用户独自拥有,该用户所有请求共享

在实现登录的时候,我们必须要保证,用户必须输入的用户名,密码,验证码信息完全正确。除此之外,必须保证一个用户只能登录一次。所以必须要在servletContext里添加用户信息。但这也让用户想要退出时,必须显示登出。

这里的前四个包,都是用户自定义类。分别是:管理员类,用户类,管理员数据库查询实现接口及其实现类。

import domin.AdministratorInfo;
import domin.UserInfo;
import service.AdministratorLoginService;
import service.impl.AdministratorLoginServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

@WebServlet("/servlet_access")
public class Servlet_access extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");//得到post的数据,都要设置编码,不然的话中文会出现乱码
        AdministratorLoginService adminService = new AdministratorLoginServiceImpl(request.getParameter("user"));
        //得到service对象
        AdministratorInfo admin = adminService.getPassWord();//如果查询到了该管理员,则返回
        boolean flag = false;//验证是否管理员是否已经登录
        ArrayList arrayList = (ArrayList) request.getSession().getAttribute("error");//记录错误信息数组
        arrayList.clear();//每次请求都清楚错误信息
        ArrayList listAlreadyLogin = (ArrayList) request.getServletContext().getAttribute("login_user");//相同用户名的管理员列表
        if(listAlreadyLogin == null){//管理员列表为空?
            listAlreadyLogin = new ArrayList();
        }

        for(AdministratorInfo administratorInfo : listAlreadyLogin){//检查是否登录
            if(administratorInfo.getId() == admin.getId())
                flag=true;
        }

        if(request.getSession().getAttribute("login_/confirm/i") != null){检查是否登录
            arrayList.add("请不要尝试多次登录,或者关闭浏览器重试");
        }else {
            if (!request.getSession().getAttribute("checkCode").equals(request.getParameter("checkCode"))) {//验证码验证
                arrayList.add("验证码错误");
            } else if(flag){
                arrayList.add("不要尝试多次登录");
            } else{
                if (admin != null) {//用户输入用户名是否为空
                    if (admin.getPassWord().equals(request.getParameter("password")))//确认管理员账号密码
                    {
                        listAlreadyLogin.add(admin);
                        request.getServletContext().setAttribute("login_user",listAlreadyLogin);
                        request.getSession().setAttribute("login_/confirm/i", admin);//确认管理员等级
                        request.getRequestDispatcher("/servlet_findAll").forward(request, response);//跳转到成功界面
                        return;
                    } else {
                        arrayList.add("密码错误,请重试");
                    }
                } else {//没查到密码对应用户
                    arrayList.add("账号错误,请重试");
                }
            }
        }
        request.getRequestDispatcher("/login.jsp").forward(request,response);//失败界面
        return;
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request,response);
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/510872.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号