請求的轉發和重定向:web
本質區別:請求的轉發只發出了一次請求,而重定向則發出了兩次請求。瀏覽器
何時用轉發?何時重定向?jsp
若目標的響應頁面不須要從request中獲取任何數據,則能夠使用請求的重定向(能夠防止表單重複提交,後面再詳細討論),反之只能使用請求的轉發。spa
具體:code
①、請求的轉發地址欄是初次發出請求的地址;而重定向地址欄再也不是初次發出的請求地址,地址欄爲最後響應的那個地址。xml
②、請求的轉發在最終的servlet中,request對象和中轉的那個request是同一個對象;請求的重定向在最終的Servlet中,request對象和中轉的那個request不是同一個對象。對象
③、請求的轉發,只能轉發給當前WEB應用的資源;重定向能夠重定向到任何資源。資源
④、請求的轉發」/「表明的是當前WEB應用的根目錄;對於重定向表明的是當前WEB站點的根目錄。
servlet
如何使客戶不能直接訪問某一個頁面?io
一、對於Tomcat來講,WEB-INF下的文件是不能經過瀏覽器輸入Url直接訪問的,但經過請求的轉發是能夠的,能夠把error.jsp放在WEB-INF下,而後再errorPage=」/WEB-INF/error.page「,原理是請求的轉發。
二、在web.xml中配置error-page,<error-page>
<error-code>500</error-code>
<location>/WEB-INF/error.jsp</location>
</error-page>
這樣就不用在頁面指定errorPage,能夠用於每一個jsp頁面。
<%@ page isELIgnored="true"%>:指定頁面是否能夠使用EL表達式,默認爲true。