SetCookie、GetCookie
自行设定有效日期: Response.Cookies(CookieName).Expires=#日期# |
页面转发区别:
在Servlet中两种实现: forward方式:request.getRequestDispatcher("/somePage.jsp").forward(request, response); redirect方式:response.sendRedirect("/somePage.jsp");
forward是服务器内部重定向,程序收到请求后重新定向到另一个程序,客户机并不知道;redirect则是服务器收到请求后发送一个状态头给客 户,客户将再请求一次,这里多了两次网络通信的来往。当然forward也有缺点,就是forward的页面的路径如果是相对路径就会有些问题了。
forward 会将 request state , bean 等等信息带往下一个 jsp
|
forward是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址,他是不会改变Request的值,如果你需要在下一个页面中能从中获取新的信息的话,你可以Request.setAttribute()来放置一些标志,这样从下一个页面中获取。
redirect是完全的跳转,浏览器将会得到跳转的地址, 并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,forward更加高效,在forward可以满足需要时,尽量使用Request Dispatcher.forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用HttpServletResponse.sendRequest()方法。 |
forward与include共亨Request范围内的对象,而redirect则不行,即:如果一个javabean被声明为request范围的话,则被forward到的资源也可以访问这个javabean,而redriect则不行。 |
forward 是服务器内部重定向,程序收到请求后重新定向到另一个程序,而客户机并不知晓; forward会将 request state、bean、等信息带到下一个jsp页面; 使用getAttribute()来取得前一个jsp所放的信息 redirect 是服务器收到请求后发送一个状态头给客户,客户将再次请求,就有两次网络通行的来往。 redirect 是送到客户端后再次request,因此上一个jsp的信息不被保留 |
forward方式:request.getRequestDispatcher("/somePage.jsp").forward(request, response); redirect方式:response.sendRedirect("/somePage.jsp"); |
redirect forward的区别1.从地址栏显示来说 假如从a页面 到 b页面 在到c页面 如果用 在a页面中: request.setAttribute("a","aa"); <jsp:forward page="b.jsp"></jsp:forward> 在b页面中: <jsp:forward page="c.jsp"></jsp:forward> 跳转 在c页面用 request.getAttribute("a") 就可以得到a页面的值,或者用 request.getParameter("name") 也可以得到。 但是要用response.sendRedirect("b.jsp"); 跳转的话就得不到a 页面的值和内容。
总结: A.Redirect等于客户端向服务器发出两次request,同时也接受到两次response
|