1. 程式人生 > >訪問WEB-INF中jsp的三種方法!

訪問WEB-INF中jsp的三種方法!

方法1:
本來WEB-INF中的jsp就是無法通過位址列訪問的.所以安全.如果說你要訪問這個資料夾中的jsp檔案需要在專案的web.xml檔案中去配置servlet格式差不多的配置就ok了。如下:

[html] view plaincopyprint?
  1. <servlet>
  2. <servlet-name>runtain</servlet-name>
  3. <jsp-file>/WEB-INF/INF.jsp</jsp-file>
  4. </servlet>
  5. <servlet-mapping>
  6. <servlet-name>runtain</
    servlet-name>
  7. <url-pattern>/XXX</url-pattern>
<servlet>
<servlet-name>runtain</servlet-name>
<jsp-file>/WEB-INF/INF.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>runtain</servlet-name>
<url-pattern>/XXX</url-pattern>

訪問地址:http://localhost:8080/runtain/xxx
就可以看見內容了!

方法2:<jsp:forward page ="/WEB-INF/jsp/test/test.jsp" />

方法3:request.getRequestDispatcher("/WEB-INF/a.jsp").forward(request,response);

怎麼樣讓servlet訪問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);就不能訪問.

一開始想不通,覺得怪.後來想想,jsp其實也是servlet,會自動編譯的,於是work目錄下會有/web-inf/a$jsp.class型別,於是有頭緒了,讓應用伺服器能夠編譯.htm,如a$htm.class.抱有這個想法,開始動手

在tomcat下的conf/web,找到jsp的訪問方式,

[html] view plaincopyprint?
  1. <servlet-mapping>
  2. <servlet-name>jsp</servlet-name>
  3. <url-pattern>*.jsp</url-pattern>
  4. </servlet-mapping>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>

於是在下面新增

[html] view plaincopyprint?
  1. <servlet-mapping>
  2. <servlet-name>jsp</servlet-name>
  3. <url-pattern>*.htm</url-pattern>
  4. </servlet-mapping>
  5. <servlet-mapping>
  6. <servlet-name>jsp</servlet-name>
  7. <url-pattern>*.html</url-pattern>
  8. </servlet-mapping>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>

結果:一切OK,訪問a.htm,和a.html在work/web-inf/下者有a$htm.class,a$html.class生成

相關推薦

訪問WEB-INFjsp方法

方法1:本來WEB-INF中的jsp就是無法通過位址列訪問的.所以安全.如果說你要訪問這個資料夾中的jsp檔案需要在專案的web.xml檔案中去配置servlet格式差不多的配置就ok了。如下: [html] view plaincopyprint? <se

springmvc直接不經過controller訪問WEB-INF的頁面

在springDispatcherServlet-servlet.xml中新增如下兩句 <mvc:view-controller path="/success" view-name="s

opencv之訪問影象畫素的 方法

訪問畫素的三種方法 ①指標訪問:最快 ②迭代器iterator:較慢,非常安全,指標訪問可能出現越界問題 ③動態地址計算:更慢,通過at()實現。適用於訪問具體某個第i行,j列的畫素,而不適用遍歷畫素 Mat在記憶體中儲存形式   灰度圖的儲存形式        RGB的儲存形式    一般情況下,M

ASP.NET動態載入Js程式碼到Head標籤方法

方法一程式碼如下: HtmlGenericControl Include2 = new HtmlGenericControl("script"); Include2.Attributes.Add("type", "text/javascript"); Include2.InnerHtml = "alert('

如何放大圖片,教您方法

在日常生活中,我們經常會對一些尺寸不符合的照片進行放大處理,在這裡我們就需要一些特殊的方法,接下來我們介紹三種方法。   最懶的方法:直接拉伸小圖擷取   簡易程度:★★★★★   圖片質量:★   適用人群:只需要圖片尺寸不需要精度的懶人  

啟用pycharm方法(2018-11-25)

方法一:查詢啟用碼(註冊碼) 這樣要浪費很多時間,百度一下你會發現:很多啟用碼要麼過期了要麼被官方遮蔽了; 谷歌一下就知道啟用找不到這樣一大串啟用碼。 放棄這種愚蠢的方法,儘管我之前就是這種方法的!   方法二:申請官方學生使用授權 這種方法的前提是得有EDU

jsp值傳到後臺Struts2的action方法

login orm end 通過 實例化 eth log 名稱 選擇 Action接收表單傳遞過來的參數有3種方法: 如,登陸表單login.jsp: 1 <form action="login" method="post" name="form1"> 用戶名

opencv對影象畫素點訪問方法利用程式進行解讀

程式碼放到自己的工程中,執行就可以的 #include <opencv2\opencv.hpp> #include <opencv2\core\core.hpp> #include <opencv2\highgui\highgui.hpp> #includ

獲取class對象的方法以及通過Class對象獲取某個類變量,方法,訪問成員

student 多種方法 多個 編譯錯誤 oid 單個 dex flex 調用 public class ReflexAndClass { public static void main(String[] args) throws Exception {

Java小專案WEB-INFjsp頁面如何訪問

                                       Java小專案中WEB-INF下jsp頁面如何訪問 一:一般為啥要把jsp頁面放在WEB-INF吶?      這樣主要是為了網站的安全的角度來說的,WEB-INF是安全目錄Tomcat 預設的

javaweb訪問WEB-INF下面的jsp

   在專案的首頁中,一般會有這麼一段跳轉程式碼,  jsp頁面中訪問WEB-INF目錄下的jsp寫法: <jsp:forward page="/WEB-INF/page/index.jsp" />      在servlet中訪問WEB-I

雙系統從Windows訪問Linux分割槽 ext2 ext3 的方法

http://apps.hi.baidu.com/share/detail/4003885 XP 下如何檢視linux : 如果你有一個Windows/Linux雙重啟動的系統,你可能會知道這個問題:你可以在Linux裡訪問Windows裡的檔案,但是相反的路卻行不通。本

Struts2Action訪問Servlet API的方法

Struts2的Action並未直接與任何Servlet API耦合,這是Struts2的一個改良之處,因為Action類不再與Servlet API耦合,從而能更輕鬆的測試該Action。但對於Web應用的控制器而言,不訪問Servlet API幾乎是不可能的,例如跟蹤HT

js oop繼承方法

custom 屬性方法 三種 調用方法 定義 this指向 兩個類 fun color JS OOP 中的三種繼承方法: 很多讀者關於js opp的繼承比較模糊,本文總結了oop中的三種繼承方法,以助於讀者進行區分。 <繼承使用一個子類繼承另一個父類,子類可以自

Java從鍵盤輸入的方法

readline 鍵盤 輸入 exception nbsp stack clas system reader import java.io.BufferedReader; import java.io.IOException; import java.io.Input

JavaSE7基礎 類 調用靜態成員方法方法

string jdk com 博文 深入 pre log ava 深入淺出 版本參數:jdk-7u72-windows-i586註意事項:博文內容僅供參考,不可用於其他用途。 代碼 class Test{ //靜態成員方法 public static vo

java創建線程的方法以及區別

sta tar ati 定義 callable main ring 我們 () Java使用Thread類代表線程,所有的線程對象都必須是Thread類或其子類的實例。Java可以用三種方式來創建線程,如下所示: 1)繼承Thread類創建線程 2)實現Runnable接口

頁面插入CSS樣式的方法

text 總結 聲明 特殊 優勢 color 應該 -c -- 頁面中插入css樣式的三種方法總結 1、 外部樣式 當樣式需要應用於很多頁面時,外部樣式表將是理想的選擇。在使用外部樣式表的情況下,你可以通過改變一個文件來改變整個站點的外觀。每個頁面使用<link>

Python替換的方法

nbsp 分享 分別是 images 空白 圖片 png 除開 str strip() replace() re.sub() 1.replace()是python的內置函數,字符類型.replace(old,new) s1="你好2017" s1.rep

js設置元素class的方法小結

utf-8 nbsp brush firefox body charset utf 代碼 title 一、el.setAttribute(‘class‘,‘abc‘); 復制代碼 代碼如下: <!DOCTYPE HTML> <HTML>