request,session,监听器

img

img

img


我选择下拉框内容的时候页面跳转了,但是新页面下拉框数据消失了,该怎么办

新页面的下拉框,你重新加载过嘛? 你打开了新的页面,也要像上个页面一样初始化一下下拉框

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/736074
  • 除此之外, 这篇博客: 通过session进行验证码验证中的 页面样式如下 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在这里插入图片描述
    其次我们要生成验证码并且获取验证码生成的随机字符进行比对(这里的生成验证码的代码我就省略不写了,可以看一下我的生成验证码那篇文章,把下面三句加进去就可以了)

    ......
    static String checkCode_session; 	//创建一个成员变量
    ......
    checkCode_session = caption.toString();	//在方法中获得验证码随机字符
    ......
    req.getSession().setAttribute("checkCode_session",checkCode_session); 	//将验证码随机字符保存到Request对象中
    ......
    

    接下来我们编写一个login

    @WebServlet("/login")
    public class LoginController extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {
            this.doPost(req,response);
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            req.setCharacterEncoding("utf-8");	//这里要和你的html页面的编码方式一模一样
            String checkCode=req.getParameter("validCode");		//这里我们将用户输入的验证码提取出来
            HttpSession session = req.getSession();		
            String checkCode_session = (String) session.getAttribute("checkCode_session");		//提取出服务器生成的验证码字符串
            if(checkCode_session != null && checkCode_session.equalsIgnoreCase(checkCode)){	//进行比对
                req.setAttribute("check_result","验证码匹配");
            }
            else{
                req.setAttribute("check_result","验证码不匹配");
            }
            req.getRequestDispatcher("/login.jsp").forward(req,resp);	//转发,可以查看我们是否验证成功了
        }
    }
    

    在这里插入图片描述
    在这里插入图片描述