1.redirect(重定向)和forword(转发)的区别
request.redirect() | request.getRequestDispatcher().forward(request,response) |
浏览器发请求到服务器,服务器将重定向url返回给浏览器,(http状态302),浏览器再发请求到重定向url。浏览器发了两个请求 | 浏览器发请求到服务器,forword访问应用到内部地址,得到response再返回给浏览器,浏览器发了一个请求 |
redirect之后,会清掉request,例如servlet-->redirect-->jsp,在jsp页面要想获取request参数是不可行到,因为request是null,但是可以用session | 由于在整个定向的过程中用的是同一个request,因此forward会将request的信息带到被重定向的jsp或者servlet中使用 |
浏览器中地址栏url发生变化 | 浏览器中地址栏url不变 |
2.session
session是可以跨页面的,看看在redirect(重定向)上可用就知道了
3.HttpServletRequest的常用方法
request.getParameter(String name), request.getSession(),request.setAttribute(String name, Object value)等等
4.HttpServletResponse的常用方法
response.redirect(String url),response.getWriter()等等