1. 程式人生 > >WEB-INF下的jsp頁面使用者不能直接訪問如何解決?

WEB-INF下的jsp頁面使用者不能直接訪問如何解決?

應用伺服器把WEB-INF指為禁訪目錄,即直接在瀏覽器裡是不能訪問的.
因此,可以讓servlet進行訪問,如web-inf下有a.jsp則可以用request.getrequestdispatcher("/web-inf/a.jsp").forward(request,response);進行派遣訪問.但如果web-inf下有a.htm,則用request.getrequestdispatcher("/web-inf/a.htm").forward(request,response);就不能訪問.

至於原理的話,可以去看看Tomcat的原始碼。

WEB-INF下的jsp直接在連結中是無法請求到的,需要作一個action或者servlet的跳轉,如<a href='index.action'>首頁</a>,web.xml中的servlet可以這樣配置:
<servlet>
    <servlet-name>index</servlet-name>
    <servlet-class>跳轉到首頁的action</servlet-class>
  </servlet>
<servlet-mapping>
    <servlet-name>index</servlet-name>
    <url-pattern>/index.action</url-pattern><!--對映的路徑-->
  </servlet-mapping>
  建議把jsp從WEB-INF中拿出來。