JavaWeb編程 Servlet的基本配置
學(xué)習(xí)JavaWeb的人沒有不知道Servlet的吧,而要用Servlet就需要在web.xml中進(jìn)行配置。相信有很多初學(xué)者跟我當(dāng)初一樣,對于一些配置參數(shù)不是很理解。
下面是一個最基本的Servlet配置:
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.Servlet.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/Servlet</url-pattern>
</servlet-mapping>
Servlet的配置包括兩部分:
1、<servlet>配置Servlet的名字和完整類路徑:
servlet-name是自定義的,就是給Servlet取個名字。
servlet-class是Servlet完整的類,就是從一開始的包一直“.”到該Servlet。
2、<servlet-mapping>是用來截獲請求的,包括servlet-name和url-pattern。
servlet-name跟<servlet>中的servlet-name是對應(yīng)的,兩個servlet-name一定要一致,否則會找不到對應(yīng)的Servlet。
url-pattern是截獲請求的規(guī)則,當(dāng)表單提交的時候,會根據(jù)特定的規(guī)則調(diào)用相應(yīng)的Servlet。下面會具體闡述。
url-pattern大致分為以下幾種方式:
1、完全匹配
如:<url-pattern>/servlet/MyServlet.do</url-pattern>
2、目錄匹配
如:<url-pattern>/servlet/*</url-pattern>
3、擴展名匹配
如:<url-pattern>*.do</url-pattern>
在web.xml文件中,以下語法用于定義映射:
l. 以”/'開頭和以”/*”結(jié)尾的是用來做路徑映射的。
2. 以前綴”*.”開頭的是用來做擴展映射的。
3. “/” 是用來定義default servlet映射的。
4. 剩下的都是用來定義詳細(xì)映射的。比如: /aa/bb/cc.action
容器查找規(guī)則:
1、容器會首先查找完全匹配,如果找不到,再查找目錄匹配,如果也找不到,就查找擴展名匹配。
2、如果一個請求匹配多個“目錄匹配”,容器會選擇最長的匹配。
例如:servletA的url-pattern為/test/*,而servletB的url-pattern為/test/b/*,此 時訪問http://localhost/test/b時,容器會選擇路徑最長的servlet來匹配,也就是這里的servletB。
注意:”/*.action”這樣一個看起來很正常的匹配會錯。因為這個匹配即屬于路徑映射,也屬于擴展映射,會導(dǎo)致容器無法判斷。
上面講解的只是Servlet最基本的一個配置,還有很多其他的參數(shù),有興趣可自行研究,這里就不一一贅述了。
相關(guān)文章
詳解SpringBoot實現(xiàn)JPA的save方法不更新null屬性
直接調(diào)用原生Save方法會導(dǎo)致null屬性覆蓋到數(shù)據(jù)庫,使用起來十分不方便。本文詳細(xì)的介紹了如何解決這個問題,非常具有實用價值,需要的朋友可以參考下2018-12-12
Spring指定bean在哪個應(yīng)用加載(示例詳解)
本文通過實例代碼介紹了Spring指定bean在哪個應(yīng)用加載,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-08-08
談?wù)劄镴AXB和response設(shè)置編碼,解決wechat4j中文亂碼的問題
中文亂碼是每個程序員都會遇到的問題,本篇文章主要介紹了談?wù)劄镴AXB和response設(shè)置編碼,解決wechat4j中文亂碼的問題,具有一定的參考價值,有興趣的可以了解一下。2016-12-12
SpringBoot中使用Cookie實現(xiàn)記住登錄的示例代碼
這篇文章主要介紹了SpringBoot中使用Cookie實現(xiàn)記住登錄的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07

