官术网_书友最值得收藏!

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”。

主站蜘蛛池模板: 海宁市| 井研县| 长顺县| 科技| 大渡口区| 北流市| 高密市| 南投县| 阿图什市| 平武县| 新乡县| 武定县| 海盐县| 韶山市| 志丹县| 昆山市| 成都市| 克东县| 榆林市| 武鸣县| 两当县| 绥中县| 商城县| 班玛县| 德兴市| 若尔盖县| 泾阳县| 东辽县| 营口市| 闸北区| 华安县| 湖南省| 昌乐县| 库伦旗| 平武县| 淄博市| 丹江口市| 商城县| 西乌珠穆沁旗| 南安市| 依兰县|