JavaWeb——urlPattern配置和XML配置Servlet
创始人
2025-05-30 00:47:27

1.一个Servlet配置多个访问路径 

在WebServlet的配置里面urlPattern的类型是一个String数组 ,因此注解里面的参数设置可以如下

@WebServlet(urlPatterns = {"/demo7","/demo8"})
public class ServletDemo7 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("demo7 get...");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {}
}

 2.urlPattern配置规则​​​​​​​

4种匹配的优先级

精确路径>目录路径>扩展名路径> /* > /

 2.1精确匹配

这种方式必须必须全部都一样

/*** urlPattern:*  * 精确匹配*/@WebServlet(urlPatterns = "/user/select")
public class ServletDemo8 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("demo8 get...");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {}
}

 2.2目录匹配

这个匹配不管user后面写什么都会匹配到这个页面,这个匹配不会和精确上匹配相冲突,

/*** urlPattern:*  * 目录匹配:/user/**/@WebServlet(urlPatterns = "/user/*")
public class ServletDemo9 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("demo9 get...");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {}
}

2.3扩展名匹配

这个如果写成@WebServlet(urlPatterns = "*.do")项目启动就会报错

/*** urlPattern:*  * 扩展名匹配: *.do*/@WebServlet(urlPatterns = "*.do")
public class ServletDemo10 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("demo10 get...");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {}
}

 2.4任意匹配(不要使用这两种)

/*优先级高于/

 使用/会导致静态资源无法访问也就是会覆盖默认servlet 

/*** urlPattern:*  * 任意匹配:/或者/**///@WebServlet(urlPatterns = "/")
//@WebServlet(urlPatterns = "/*")
public class ServletDemo11 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("demo11 get...");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {}
}

XML配置Servlet

这里需要在web.xml配置servlet的全类名和servlet的映射 

 

 

相关内容

热门资讯

在这部纪录片里,一起去海南环岛... 2025年,海南自贸港全岛封关运作步入倒计时,这座被海风与阳光浸润的海岛,正以开放包容的姿态,向世界...
东南亚出游热潮持续升温,宁波直... 潮新闻客户端 通讯员 张家其 陈燕 天气转冷,南下东南亚的出游热潮持续升温,宁波栎社国际机场飞往万象...
“三水环抱”生态城吸引游客打卡 “三水环抱”生态城吸引游客打卡 12月15日,在武汉市长江新区谌家矶片区麓洲生态城,游客乐享冬日...
“700万是里程碑,更是新起点... (来源:中国旅游报) 转自:中国旅游报 □ 本报记者 李 凤 11月22日9时,九寨沟景区迎来年度...
年轻人饮酒洞察报告 增长与热度 Z世代饮酒参与率两年间从66%升至73%,已成酒类消费最大增量来源。社交媒体同步升温:2...