原文地址: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形成的一些未知後果(例如連續刪除) |