web.xml中dispatcher標籤詳解
一、概念(RequestDispatcher)
RequestDispatcher提供兩個方法forward和include區別
都表示要跳轉到其他資源,不同的是,如果使用forward跳轉則後面的response輸出則不會執行,而用include來跳轉,則include的servlet執行完後,再返回到原來的servlet執行response的輸出(如果有)。
如: servlet A RequestDispatcher disp = request.getRequestDispatcher("B"); disp.forward(request, response); System.out.println("servlet A completed"); PrintWriter pw = response.getWriter(); pw.println("servlet A"); servlet B PrintWriter pw = response.getWriter(); pw.println("servlet B"); 輸出結果: 控制檯:servlet A completed 頁面:servlet B 如果將forward換成include的話,則結果為: 控制檯:servlet A completed 頁面:servlet B servlet A PS:如果在servlet B裡吧pw給close掉了的話,那servlet A 這裡就無法輸出了,則結果就和第一個一樣。
二、<dispatcher>元素
2.4版本的servlet規範在部屬描述符中新增加了一個<dispatcher>元素,這個元素有四個可能的值:即REQUEST,FORWARD,INCLUDE和ERROR,可以在一個<filter-mapping>元素中加入任意數目的<dispatcher>,使得filter將會作用於直接從客戶端過來的request,通過forward過來的request,通過include過來的request和通過<error-page>過來的request。如果沒有指定任何< dispatcher >元素,預設值是REQUEST。
可以通過下面幾個例子來輔助理解。
例1:
Xml程式碼
<filter-mapping> <filter-name>Logging Filter</filter-name> <url-pattern>/products/*</url-pattern> </filter-mapping>
這種情況下,過濾器將會作用於直接從客戶端發過來的以/products/…開始的請求。因為這裡沒有制定任何的< dispatcher >元素,預設值是REQUEST。
例2:
Xml程式碼
<filter-mapping> <filter-name>Logging Filter</filter-name> <servlet-name>ProductServlet</servlet-name> <dispatcher>INCLUDE</dispatcher> </filter-mapping>
這種情況下,如果請求是通過request dispatcher的include方法傳遞過來的對ProductServlet的請求,則要經過這個過濾器的過濾。其它的諸如從客戶端直接過來的對ProductServlet的請求等都不需要經過這個過濾器。
指定filter的匹配方式有兩種方法:直接指定url-pattern和指定servlet,後者相當於把指定的servlet對應的url-pattern作為filter的匹配模式
filter的路徑匹配和servlet是一樣的,都遵循servlet規範中《SRV.11.2 Specification of Mappings》一節的說明
例3:
Xml程式碼
<filter-mapping> <filter-name>Logging Filter</filter-name> <url-pattern>/products/*</url-pattern> <dispatcher>FORWARD</dispatcher> <dispatcher>REQUEST</dispatcher> </filter-mapping>
在這種情況下,如果請求是以/products/…開頭的,並且是通過request dispatcher的forward方法傳遞過來或者直接從客戶端傳遞過來的,則必須經過這個過濾器。
相關推薦
web.xml中dispatcher標籤詳解
一、概念(RequestDispatcher)RequestDispatcher提供兩個方法forward和include區別都表示要跳轉到其他資源,不同的是,如果使用forward跳轉則後面的response輸出則不會執行,而用include來跳轉,則include的ser
Mybatis mapper.xml中常用標籤詳解
一、SQL語句標籤: <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "
面試題:J2EE中web.xml配置文件詳解
ppi targe nor tag 2.4 -type exti tab 標簽 一、web.xml是什麽 web.xml學名叫部署描述符文件,是在Servlet規範中定義的,是Web應用的配置文件,是Web應用的基礎。 二、web.xml加載流程 總的來說:Servle
mybatis之mybatis-config.xml 配置中的標籤詳解
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-con
Mybatis的mapper檔案中trim標籤詳解
0、背景 parameterType引數型別student是別名,裡面的欄位有id,name,age,sex被封裝成bean物件,跟資料庫中student表中欄位一一對應,以下案例只為一個SQL語句。(初入SSM坑,請多多指教) update student set name='
maven中scope標籤詳解
scope的分類 compile(編譯範圍) 預設就是compile,什麼都不配置也就是意味著compile。compile表示被依賴專案需要參與當前專案的編譯,當然後續的測試, 執行週期也參與其中,是一個比較強的依賴。打包的時候通常需要包含進去。 test(測試範圍
jsp頁面中jstl標籤詳解 包括< c:choose>
JSLT標籤庫,是日常開發經常使用的,也是眾多標籤中效能最好的。把常用的內容,放在這裡備份一份,隨用隨查。儘量做到不用查,就可以隨手就可以寫出來。這算是Java程式設計師的基本功吧,一定要紮實。JSTL全名為JavaServer Pages Standard Tag Library,目前最新的版本為1.1版。
log4j2.x配置檔案中各標籤詳解
log4j2.0以後我們通常在log4j2.xml中配置相關引數,在配置的時候我們需要理解這些引數的具體含義,下面列出了這些引數的解釋。 1、Logger 完成日誌資訊的處理 <logger name="com.srd.ljzd" level="I
WEB應用中的classpath詳解
WEB應用中的classpath指向哪裡 JavaEE中classpath與系統環境變數中的classpath不一樣,WEB應用中的classpath專指專案WEB-INF/class和WEB-INF/lib,web容器在啟動時會對這兩個目錄下的class檔案,配置檔案以及jar檔案進
Java jsp頁面中jstl標籤詳解
JSLT標籤庫,是日常開發經常使用的,也是眾多標籤中效能最好的。把常用的內容,放在這裡備份一份,隨用隨查。儘量做到不用查,就可以隨手就可以寫出來。這算是Java程式設計師的基本功吧,一定要紮實。 JSTL全名為JavaServer Pages Standard Tag Library,目前最新的版本為1.
Tomcat web.xml配置參數詳解
.html diff fig .org 參數 www net ati gui Apache Tomcat Configuration Reference - The Context Containerhttps://tomcat.apache.org/tomcat-5.5-
在web.xml中,標籤的作用
1.啟動一個WEB專案的時候,容器(如:Tomcat)會去讀它的配置檔案web.xml.讀兩個節點: <listener></listener> 和 <context-param></context-param> 2.緊接著,容器建立一個ServletCont
史上最全web.xml配置檔案元素詳解
一、web.xml配置檔案常用元素及其意義預覽 1 <web-app> 2 3 <!--定義了WEB應用的名字--> 4 <display-name></display-name>
史上最全web.xml配置檔案元素詳解(轉載防丟)
web.xml配置檔案常用元素及其意義預覽 1 <web-app> 2 3 <!--定義了WEB應用的名字--> 4 <display-name></display-name> 5
---Filter ( 三 ) web.xml中dispatcher節點的作用
Filter的作用 Filter的目的就是在請求和響應之間攔截檢查請求相應的內容。主要是對請求和相應的處理。 指定 Filter攔截型別 web.xml配置: <filter> <filter-name>
web.xml中taglib標籤報錯問題解決方案
<taglib>標籤在web.xml檔案中報錯解決方法配置web.xml檔案時,taglib標籤報錯,但不會影響程式的執行,web.xml 如下:< xml version="1.0" encoding="UTF-8" ><web-app id
Web開發中基礎常識詳解-Js,JSP,tomcat,Servlet,web是幹什麼的?
關於Servlet開發的詳解 http://blog.csdn.net/hejingyuan6/article/details/30273879http://www.cnblogs.com/xdp-gacl/p/3760336.html一、Js 是 javascript 的
web應用的入口:web.xml核心配置檔案詳解
前言:如果要了解web專案的底層實現,web.xml配置檔案,是必須要掌握的。web.xml配置檔案,是web專案的核心,web專案的啟動,從這裡開始。 為了方便大家理解,我們從最常見的配置開始著手來說明。一,contextConfigLocation contextCo
mybatis配置檔案conf.xml中的environment詳解
在這篇文章中,我們接著前文繼續往下看其他的配置元素,今天的主角就是我們的<environments>元素,該元素用於對我們需要訪問的資料庫配置進行設定,我們先來看一下配置: <environments default="development"
Spring XML配置Bean標籤詳解
前段時間回顧Spring的一些技術和資訊,自己去試著配置框架進行練習,這裡就分享一下Spring bean配置的各種標籤方便自己去配置資訊, beans: 整個配置檔案的根節點,包含一個或多個Bean元素。在該標記中可配置名稱空間與schema的裝載路徑,還可以通過