溯白
2019-09-29 15:06
请求重定向
客户端行为,response.sendRedirect(),从本质上讲等同于两次请求,前一次的请求对象不会保存,地址栏的URL地址会改变。
请求转发
服务器行为,request.getRequestDispatcher().forward(req,resp);是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变。
if("admin".equals(username) && "admin".equals(password)){ session.setAttribute("loginuser", username); //request.getRequestDispatcher("login_succes.jsp").forward(request, response); response.sendRedirect("login_succes.jsp"); }else{ response.sendRedirect("login_failure.jsp"); }
我把请求转发注释掉,改成请求重定向,发现url的确变了,但是用户名admin还有,按照定义,重定向不应该会把对象数据消除么?
因为session.setAttribute("loginuser",username);获取了对象属性值
你设置了session
JAVA遇见HTML——JSP篇
248278 学习 · 3071 问题
相似问题