案例:登录中输入验证码(Session及JSP技术应用)

本文通过一个案例介绍如何在JavaWeb登录过程中使用Session和验证码技术,确保用户安全登录。讲解了login.jsp、success.jsp、LoginServlet以及CheckCodeServlet各自的角色和功能。
摘要由CSDN通过智能技术生成

案例:登录中输入验证码(会话技术)

1.案例需求:
    1.访问带有验证码的登录页面login.jsp
    2.用户输入用户名,密码以及验证码
        如果用户和密码输入有误,跳转登录页面。提示:用户或密码错误
        如果验证码输入有误,跳转登录页面,提示:验证码有误
        如果全部输入正确,跳转到success.jsp页面,显示:用户名,欢迎您
2.案例分析:
    1.设置request的编码
    2.获取请求参数
    3.获取session中的验证码
        此处会出现验证码反复重用的可能
            因为图片资源会被浏览器缓存,所以不会再次向服务器请求生成新验证码
                所以当用户再次输入相同的验证码,直接会拿session中的对比
            解决方案:获取到session中的程序生成的验证码后,立即删除
    4.封装表单中的请求数据到Bean
    5.判断程序生成的验证码和用户输入的是否一致
    	一致:
    		判断用户名密码是否一致
    			一致:
    				存储User数据到session
    				重定向到sucess.jsp

    			不一致:
    				1.给提示信息
    				2.转发到登录页面
    	不一致:
    		1.给用户提示信息
    		2.转发到登录页面

案例分析图解:
在这里插入图片描述

3.涉及的知识点:
	 checkCode验证码生成案例相关知识
    StringBuilder对象及其
        append(char c):添加字符数据 -->该方法有多种重载
    HttpSession对象及其
        getSession():获取对象方法
        setAttribute(String s, Object obj):设置共享数据
        getAttribute(String s):获取共享的数据
        removeAttribute(String s):删除共享的数据
    Request对象及其
        setCharacterEncoding():设置请求数据的字符集
        请求参数通用方法:如 getParameter() getParameterMap()
        getContextPath():获取项目的虚拟目录
        setAttribute():设置request域的共享数据
        getRequestDispatcher():转发
    Response对象及其
        sendRedirect():重定向方法
    注意:session数据共享可以用于一次会话中的多次请求之间,所以可用在重定向中
         request数据共享只可以用于一次请求中,所以可以用于转发中

login.jsp(登录时的动态资源):

<%&#
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值