首页 > 其他分享 >登录功能代码实现

登录功能代码实现

时间:2023-02-02 15:23:16浏览次数:29  
标签:功能 登录 代码 request session user new login response

登录功能_代码实现

public class LoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//        设置编码
        request.setCharacterEncoding("UTF-8");
//        获取数据
        String verifycode = request.getParameter("verifycode");
        Map map = request.getParameterMap();
        //        验证码校验
        HttpSession session = request.getSession();
        String o = (String) session.getAttribute("CHECKCODE_SERVER");
        session.removeAttribute("CHECKCODE_SERVER");
        if (!o.equalsIgnoreCase(verifycode)) {
            //验证码错误
            //提示信息
            request.setAttribute("login_msg", "验证码错误");
            //跳转登陆页面
            request.getRequestDispatcher("/login.jsp").forward(request, response);
            return;
        }
//        封装user对象
        User user = new User();
        try {
            BeanUtils.populate(user,map);
        } catch (IllegalAccessException e) {
            throw new RuntimeException(e);
        } catch (InvocationTargetException e) {
            throw new RuntimeException(e);
        }

//        调用Servlet查询
        UserService service = new UserServiceImpl();
        User loginUser = service.login(user);
//        判断登录成功
        if (loginUser!=null){
//            登路成功
//             将用户存入session
            session.setAttribute("user",loginUser);
//            跳转页面
            response.sendRedirect(request.getContextPath()+"/index.jsp");
        }else {
            request.setAttribute("login_msg","用户名或者验证码错误");
//           跳转‘
            request.getRequestDispatcher("/login.jsp").forward(request,response);
        }
    }
}

jsp错误提示页面

<!-- 出错显示的信息框 -->
<div class="alert alert-warning alert-dismissible" role="alert">
    <button type="button" class="close" data-dismiss="alert" >
        <span>&times;</span></button>
    <strong>${login_msg}</strong>
</div>

 

标签:功能,登录,代码,request,session,user,new,login,response
From: https://www.cnblogs.com/xuche/p/17085882.html

相关文章

  • Html音频播放代码
    页面代码:<html><head><scriptsrc="https://code.jquery.com/jquery-3.1.1.min.js"></script><!--media=print这个属性可以在打印时有效--><title>音......
  • 小程序扫码登录网页端原理
    目录一、问题引入二、几个难题1.网页端是怎么知道哪个用户扫描的二维码?2.小程序扫码,扫出来的是什么东西?3.小程序扫到二维码以后,做了什么事情,怎么和网页端通讯的......
  • 提高效率工具-开发环境代码自动跳IDE
    在日常开发中,当项目组件特别多或者刚接手一个项目时,可能需要花费一定时间去查找页面元素/组件对应的代码。下面就来分享几个插件,通过这些插件,点击页面元素就可以直接跳转到......
  • pyplot绘图常用代码
    https://zhuanlan.zhihu.com/p/366489354importmatplotlib.pyplotaspltx=[iforiinrange(10)]y=[random.random()for_inrange(10)]y1=[random.random......
  • 博奥智源,老师定位分析仪软件功能开发详解
    1.采用B/S架构设计,支持通用浏览器进行远程访问进行管理;2.采用图像识别定位分析技术,智能识别教学行为,根据预设的跟踪分析逻辑触发跟踪信号,与录播主机进行跟踪数据对接;3.......
  • Python代码打包成可执行文件的常用方法!
    大家都知道,平时我们写的Python程序,其运行主要依赖于Python环境。当我们想要提供给别人使用或者更换电脑时,就需要重新安装Python环境,十分麻烦,因此我们想要将它传给任何人......
  • 设计模式落地实战 | 观察者模式 | 功能性QQ机器人封装思路
     情况简介对接qq机器人,使用.Netsdk,不同群消息不同处理方式,但群消息事件要同时下发执行,各个群之间不分前后 开始封装定义一个群消息事件的数据类,存储要下发的数据p......
  • Python TensorFlow深度学习回归代码:DNNRegressor
      本文介绍基于Python语言中TensorFlow的tf.estimator接口,实现深度学习神经网络回归的具体方法。目录1写在前面2代码分解介绍2.1准备工作2.2参数配置2.3原有模型删......
  • 实战:第十九章:存入Long类型对象,在代码中使用Long类型接收,结果报类型转换错误
    使用雪花算法随机生成的id,使用Long类型存储到redis的时候,反序列化为Object类型,对于数值类型,取出后统一转为Object,导致泛型类型丢失,数值自动转为了Integer类型,rangeofint......
  • 图解华为云代码检查服务CodeArts Check
    华为云代码检查服务CodeArtsCheck为用户提供代码风格、通用质量与代码安全风险等检查能力,并提供问题闭环处理、检查报告等功能,可一站式完成代码检查作业。六大特性守护软件......