1.1的配置格式:
- 完全路径匹配
以/开始 比如:/ServeltDemo01
- 目录匹配
以/开始,以/*结束 如:/* /aaa/* /aaa/bbb/*
访问方式(以/aaa/*为例):项目名/aaa/任意字符
特殊:/表示匹配所有但不包括.jsp,/*表示匹配所有
- 扩展名匹配
不能以/开始,是以*开始 如:*.action *.do *.jsp
访问方式:项目名/任意字符.扩展名
1.2一个Servlet可以配置多个
想要给一个Servlet配置多个url-pattern,有两种方式,第一种如上图在一个servlet-mapping标签中设置两个url-pattern标签,第二种方式是写两个servlet-mapping标签对同一个servlet进行映射。
1.3多个Servlet不能配置相同的
下图会报错
如果有一个访问路径能被多个Servlet的url-parttern匹配,则按照优先级匹配:
访问优先级:完全路径>目录匹配>扩展名匹配
2.tomcat中配置的Servlet
在tomcat安装路径下的config/web.xml文件中配置了如下两个Servlet
DefaultServlet和JspServlet
DefaultServlet主要用于处理静态资源文件,如HTML,图片,CSS,JS等文件
默认情况下,JspServlet主要负责处理所有的JSP文件请求,如:*.jsp,*.jspx。
default
org.apache.catalina.servlets.DefaultServlet
debug
0
listings
false
1
jsp
org.apache.jasper.servlet.JspServlet
fork
false
xpoweredBy
false
3
default
/
jsp
*.jsp
*.jspx
3.项目中配置的servlet和tomcat中的servlet的冲突问题
tomcat的web.xml文件对该tomcat下的所有项目都有效,项目中的web.xml和tomcat中的web.xml会进行整合。项目下的web.xml优先级更高。
如:如果项目下的web.xml配置了和tomcat的web.xml相同url-pattern的servlet,则项目下的覆盖tomcat下的。
4.静态资源访问失败的问题
当在web.xml中配置了如下图url-pattern为/的servlet时,会和tomcat中的defaultServlet冲突,使得defaultServlet失效,访问静态资源失败。
5.springMVC中使用重定向视图报错
@RequestMapping("/testRedirectView")
public String testRedirectView(){
return "redirect:/a.txt";
}
重定向到工程路径下的a.txt失败,因为配置了DispatcherServlet的url-pattern为/,所以重定向的路径a.txt也会被 DispatcherServlet接受,但是找不到请求映射为a.txt的控制器方法,所以报错。
- 完全路径匹配
以/开始 比如:/ServeltDemo01
- 目录匹配
以/开始,以/*结束 如:/* /aaa/* /aaa/bbb/*
访问方式(以/aaa/*为例):项目名/aaa/任意字符
特殊:/表示匹配所有但不包括.jsp,/*表示匹配所有
- 扩展名匹配
不能以/开始,是以*开始 如:*.action *.do *.jsp
访问方式:项目名/任意字符.扩展名
1.2一个Servlet可以配置多个
想要给一个Servlet配置多个url-pattern,有两种方式,第一种如上图在一个servlet-mapping标签中设置两个url-pattern标签,第二种方式是写两个servlet-mapping标签对同一个servlet进行映射。
1.3多个Servlet不能配置相同的
下图会报错
如果有一个访问路径能被多个Servlet的url-parttern匹配,则按照优先级匹配:
访问优先级:完全路径>目录匹配>扩展名匹配
2.tomcat中配置的Servlet
在tomcat安装路径下的config/web.xml文件中配置了如下两个Servlet
DefaultServlet和JspServlet
DefaultServlet主要用于处理静态资源文件,如HTML,图片,CSS,JS等文件
默认情况下,JspServlet主要负责处理所有的JSP文件请求,如:*.jsp,*.jspx。
default
org.apache.catalina.servlets.DefaultServlet
debug
0
listings
false
1
jsp
org.apache.jasper.servlet.JspServlet
fork
false
xpoweredBy
false
3
default
/
jsp
*.jsp
*.jspx
3.项目中配置的servlet和tomcat中的servlet的冲突问题
tomcat的web.xml文件对该tomcat下的所有项目都有效,项目中的web.xml和tomcat中的web.xml会进行整合。项目下的web.xml优先级更高。
如:如果项目下的web.xml配置了和tomcat的web.xml相同url-pattern的servlet,则项目下的覆盖tomcat下的。
4.静态资源访问失败的问题
当在web.xml中配置了如下图url-pattern为/的servlet时,会和tomcat中的defaultServlet冲突,使得defaultServlet失效,访问静态资源失败。
5.springMVC中使用重定向视图报错
@RequestMapping("/testRedirectView")
public String testRedirectView(){
return "redirect:/a.txt";
}
重定向到工程路径下的a.txt失败,因为配置了DispatcherServlet的url-pattern为/,所以重定向的路径a.txt也会被 DispatcherServlet接受,但是找不到请求映射为a.txt的控制器方法,所以报错。
想要给一个Servlet配置多个url-pattern,有两种方式,第一种如上图在一个servlet-mapping标签中设置两个url-pattern标签,第二种方式是写两个servlet-mapping标签对同一个servlet进行映射。
1.3多个Servlet不能配置相同的下图会报错
如果有一个访问路径能被多个Servlet的url-parttern匹配,则按照优先级匹配:
访问优先级:完全路径>目录匹配>扩展名匹配
2.tomcat中配置的Servlet
在tomcat安装路径下的config/web.xml文件中配置了如下两个Servlet
DefaultServlet和JspServlet
DefaultServlet主要用于处理静态资源文件,如HTML,图片,CSS,JS等文件
默认情况下,JspServlet主要负责处理所有的JSP文件请求,如:*.jsp,*.jspx。
3.项目中配置的servlet和tomcat中的servlet的冲突问题default org.apache.catalina.servlets.DefaultServlet debug 0 listings false 1 jsp org.apache.jasper.servlet.JspServlet fork false xpoweredBy false 3 default / jsp *.jsp *.jspx
tomcat的web.xml文件对该tomcat下的所有项目都有效,项目中的web.xml和tomcat中的web.xml会进行整合。项目下的web.xml优先级更高。
如:如果项目下的web.xml配置了和tomcat的web.xml相同url-pattern的servlet,则项目下的覆盖tomcat下的。
4.静态资源访问失败的问题当在web.xml中配置了如下图url-pattern为/的servlet时,会和tomcat中的defaultServlet冲突,使得defaultServlet失效,访问静态资源失败。
5.springMVC中使用重定向视图报错 @RequestMapping("/testRedirectView")
public String testRedirectView(){
return "redirect:/a.txt";
}
重定向到工程路径下的a.txt失败,因为配置了DispatcherServlet的url-pattern为/,所以重定向的路径a.txt也会被 DispatcherServlet接受,但是找不到请求映射为a.txt的控制器方法,所以报错。



