天天看點

WEB-INF 通路方式總結

WEB-INF這個目錄由于受到servlet的保護,是以不能從浏覽器輸入url直接通路資源。

通路方式

1.jsp頁面中,用<jsp:forward page="WEB-INF/**.jsp"></jsp:forward>

2.jsp中,用 <%  request.getRequestDispatcher("WEB-INF/**.jsp").forward(request,response);%>

3.通過架構控制跳轉,略。

4.對于html頁面,由于是靜态頁面,不是servlet是以通過上面的1.2方式是跳不過去的。要手動在web.xml中指定servlet mapping 如:

  <servlet-mapping>  

          <servlet-name>jsp</servlet-name>  

          <url-pattern>*.jsp</url-pattern>  

      </servlet-mapping>  

  然後在它下面添加  

      </servlet-mapping>  

      <servlet-mapping>  

          <servlet-name>jsp</servlet-name>  

          <url-pattern>*.html</url-pattern>  

      </servlet-mapping>  

附:forward 與redirect 跳轉的差別 (後前台跳轉差別):

其一、forward(requestForForward)可以把index.jsp中的問号以及表單中的參數傳到forward的目标頁面(redirectOrForward.jsp),但是redirect不行;

其二、forward的時候,請求的位址(點選requestForForward.jsp 中連結URL)就是最終顯示在浏覽器位址欄中的URL,而redirect時,請求的位址與最終顯示在浏覽器位址欄中的URL一般不一樣,而且後者以redirect時的參數(位址)為準。

基于以上做一個簡單的分析或者說推測:

1、forward是你所請求的URL所在伺服器,把你的請求封裝成流傳給forward到的目标頁面(其中含有以及基本資訊以及參數等),而redirect相當于你首先向你所請求的URL申請,然後此URL給你一個新的URL,你再向此新URL再來一次新的請求,是以浏覽器位址欄會變,而且接受不到原先傳的參數(index.jsp中傳的)

轉載于:https://www.cnblogs.com/wgjcn/archive/2009/10/22/1587890.html