cookie只可以傳到當前目錄以及如下的目錄,不能夠傳到上一目錄。web
1).何時建立HttpSession對象
①.對於JSP:是否瀏覽器訪問服務端的任何一個JSP,服務器都會當即建立一個HttpSession對象呢?不必定。瀏覽器
若當前的JSP是客戶端訪問的當前WEB應用的第一個資源,且JSP的page指定的session屬性值爲false,
則服務器就不會爲JSP建立一個HttpSession對象;若當前JSP不是客戶端訪問的當前WEB應用的第一個資源,且其餘頁面已經建立一個HttpSession對象,
則服務器也不會爲當前JSP頁面建立一個HttpSession對象,而回會把和當前會話關聯的那個HttpSession對象返回給當前的JSP頁面.服務器
②.對於Serlvet:若Serlvet是客戶端訪問的第一個WEB應用的資源,cookie
則只有調用了request.getSession()或request.getSession(true)纔會建立HttpSession對象
當request.getSession(false)的時候若是沒有與當前頁面關聯的HttpSession對象的時候就會返回null,
當request.getSession(true)(request.getSession(boolean create))的時候就會直接返回一個HttpSession對象 同request.getSession()。
總結:當客戶端訪問web第一個資源而且當前JSP或者Servlet沒有禁用當前頁面的默認建立的Session對象或者沒有調用request.getSession(false)方法的時候就會返回一個HttpSession對象。session
2). session="false" 到底表示什麼意思?當前JSP頁面禁用session隱含變量!但可使用其餘的顯式的HttpSession對象函數
瀏覽器把cookie被禁用的時候通常用URL重寫的方法進行sessionID的跟蹤,以便後續的上下文(即統一web中)可使用同一sessionID訪問同一session對象,其中進行URL重寫的方法有兩個:url
encodeRedirectURL(String url)response.sendRedirect(response.encodeRedirect(String url))code
相同點:兩個會在cookie禁用的狀況下對URL進行加上JsessionId的重寫,固然,若是沒有禁用,兩者也不會對URL進行重寫。
不通點:後者會對URL指向的資源進行判斷,若是不是本web應用裏的資源路徑也不會進行SessionID的添加,所以該函數URL參數必須是絕對路徑。