页面转发的时候获取不到参数
在转发的方法中获取一下值即可
request.getSession().setAttribute("name", userName);
在jsp页面中可以写成<jsp:forward> 请求转发(重定向)
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//获取表单数据
String userName = request.getParameter("userName");
String pwd = request.getParameter("pwd");
//处理业务逻辑
if("tom".equals(userName)&&"123".equals(pwd)){
request.getSession().setAttribute("name", userName);
request.getRequestDispatcher("/success.jsp").forward(request, response);
//response.sendRedirect(request.getContextPath()+"/success.jsp");
}else{
//response.sendRedirect(request.getContextPath()+"/login.jsp");
request.setAttribute("msg", "用户名或密码不正确!");
request.getRequestDispatcher("/login.jsp").forward(request, response);
}
//分发转向
}
转发和跳转的区别
1、转发使用的是getRequestDispatcher()方法;重定向使用的是sendRedirect();
2、转发:浏览器URL的地址栏不变。重定向:浏览器URL的地址栏改变;
3、转发是服务器行为,重定向是客户端行为;
4、转发是浏览器只做了一次访问请求。重定向是浏览器做了至少两次的访问请求的;
5、转发2次跳转之间传输的信息不会丢失,重定向2次跳转之间传输的信息会丢失(request范围)。
request能取到重定向作用域的值,不能取到转发域的值