原文地址:http://blog.csdn.net/tenor/article/details/4077079php
SetCookie、GetCookiehtml
自行设定有效日期:java Response.Cookies(CookieName).Expires=#日期#express |
页面转发区别:浏览器
在Servlet中两种实现: 服务器 forward方式:request.getRequestDispatcher("/somePage.jsp").forward(request, response);网络 redirect方式:response.sendRedirect("/somePage.jsp");jsp forward是服务器内部重定向,程序收到请求后从新定向到另外一个程序,客户机并不知道;redirect则是服务器收到请求后发送一个状态头给客户,客户将再请求一次,这里多了两次网络通讯的来往。固然forward也有缺点,就是forward的页面的路径若是是相对路径就会有些问题了。性能 forward 会将 request state , bean 等等信息带往下一个 jsp。redirect 是送到 client 端后再一次 request , 因此资料不被保留。使用 forward 你就能够用 getAttribute() 来取的前一个 jsp 所放入的 bean 等等资料。网站
|
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 页面的值和内容。 redirect:不能共享数据.
譬 如:client 经过XXX/index.jsp?name=gauss&pwd=123访问index.jsp,而index.jsp中有< jsp:forward page="login.jsp"/>,则在login.jsp中能够经过request.getParameter()获得name和pwd, 而<%response.sendRedirect("login.jsp");%>得不到。 总结: A.Redirect等于客户端向服务器发出两次request,同时也接受到两次response。Forward却只是一次request一次response。相比之下,Forward性能更高。 B.Forward可以存储request Scope的Attribute而Redirect却不行。 C.Forward的同时URL并不会变。 D.Forward须要在Servlet中须要经过一个Dispatcher来实现。 E.Redirect可以防止某些状况下客户端Refresh形成的一些未知后果(例如连续删除) |