- Java Web基礎與實例教程
- 孔祥盛 趙芳主編
- 504字
- 2025-03-19 16:21:03
2.1.7 Eclipse中Servlet的URL Mappings和Servlet的urlPatterns
使用Eclipse創建Servlet程序的過程中,URL Mappings描述了URL路徑和Servlet物理文件之間的映射關系。例如前文創建的ABCServlet.java程序,其中的@WebServlet("/ABCServlet")是一個Java注解,其功能是將瀏覽器地址欄URL路徑中的“/ABCServlet”映射為ABCServlet.java物理文件。在瀏覽器地址欄中輸入URL路徑http://localhost:8080/get/ABCServlet,瀏覽器就會向Tomcat服務器發送GET請求,Tomcat服務器接收到該請求,就會將該請求指向get項目的ABCServlet.java,并實例化ABCServlet類的對象,觸發ABCServlet的doGet()方法執行。
URL Mappings之所以是復數形式,是因為一個Servlet程序可以映射多個URL Mapping。例如注解@WebServlet(urlPatterns={"/helloServlet","/ABCServlet"}),定義了兩個URL Mapping,它們都指向了同一個Servlet程序。
準確地講,注解@WebServlet的urlPatterns參數配置了URL路徑與Servlet程序之間的映射關系(只不過在Eclipse中使用了URL Mappings)。
還可以給Servlet的urlPatterns分配目錄。對于剛剛創建的ABCServlet程序,如果將注解@WebServlet修改為@WebServlet("/test/ABCServlet"),瀏覽器地址欄中輸入URL路徑http://localhost:8080/get/test/ABCServlet,才會觸發ABCServlet的deGet()方法執行。
上述urlPatterns都屬于精確匹配,urlPatterns還支持“*”通配符模糊匹配,模糊匹配有如下兩種用法。
用法1:*.擴展名(不以斜杠開頭)。例如“*.do”表示任何擴展名是“do”的URL路徑都可以映射到該Servlet程序。
用法2:/*(以斜杠開頭),例如“/*”“/get/*”。其中“/*”表示任何URL路徑都可以映射到該Servlet程序。
說明1:urlPatterns如果以斜杠開頭,斜杠表示Web項目的虛擬路徑。
說明2:urlPatterns的典型錯誤用法是“/*.do”。
- Learning ROS for Robotics Programming(Second Edition)
- Python數據分析入門與實戰
- ASP.NET Core 5.0開發入門與實戰
- Vue.js 3.x從入門到精通(視頻教學版)
- Scratch 3.0少兒編程與邏輯思維訓練
- 21天學通C++(第6版)
- Getting Started with NativeScript
- Java實戰(第2版)
- PHP+MySQL+Dreamweaver動態網站開發從入門到精通(第3版)
- UI設計基礎培訓教程(全彩版)
- R的極客理想:量化投資篇
- Node.js實戰:分布式系統中的后端服務開發
- Clojure Web Development Essentials
- React and React Native
- Ubuntu Server Cookbook