菜鳥從零學編程——Servlet的基本配置

來源:互聯網
上載者:User

學習JavaWeb的人沒有不知道Servlet的吧,而要用Servlet就需要在web.xml中進行配置。相信有很多初學者跟我當初一樣,對於一些配置參數不是很理解,今天就說說Servlet最基本的配置資訊。


下面是一個最基本的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是對應的,兩個servlet-name一定要一致,否則會找不到對應的Servlet。

url-pattern是截獲請求的規則,當表單提交的時候,會根據特定的規則調用相應的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. 以”/’開頭和以”/*”結尾的是用來做路徑映射的。 

2. 以首碼”*.”開頭的是用來做擴充映射的。 

3. “/” 是用來定義default
servlet映射的。 

4.
剩下的都是用來定義詳細映射的。比如: /aa/bb/cc.action 

容器尋找規則:

1,容器會首先尋找完全符合,如果找不到,再尋找目錄匹配,如果也找不到,就尋找副檔名匹配。
2,如果一個請求匹配多個“目錄匹配”,容器會選擇最長的匹配。

例如:servletA的url-pattern為/test/*,而servletB的url-pattern為/test/b/*,此 時訪問http://localhost/test/b時,容器會選擇路徑最長的servlet來匹配,也就是這裡的servletB。


注意:”/*.action”這樣一個看起來很正常的匹配會錯。因為這個匹配即屬於路徑映射,也屬於擴充映射,會導致容器無法判斷。


上面講解的只是Servlet最基本的一個配置,還有很多其他的參數,有興趣可自行研究,這裡就不一一贅述了。歡迎交流探討。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.