xml规则,必须有且只有一个根节点,大小写敏感,标签不嵌套,必须配对。
默认创建的动态web工程在WEB-INF文件夹下面都有一个web.xml文件。
1.欢迎页面
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
2.命名与定制url
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>com.zte.mvc.controller.ActionServlet</servlet-class>
<!--启动时加载 -->
<!-- <load-on-startup>0</load-on-startup> -->
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
url-pattern 浏览器输入
精确匹配 /servlet http://localhost:8080/day10/servlet
模糊匹配 /* http://localhost:8080/20170323/任意路径
/lm/* http://localhost:8080/20170323/lm/任意路径
*.后缀名 http://localhost:8080/20170323/任意路径.do
*.do
*.action
*.html(伪静态)
注意:
1)url-pattern要么以 / 开头,要么以*开头。 绝对不能漏掉斜杠!!!!!!!!!
2)不能同时使用两种模糊匹配,例如 /lm/*.do是非法路径
3)当有输入的URL有多个servlet同时被匹配的情况下:
3.1 精确匹配优先。(长的最像优先被匹配)
3.2 以后缀名结尾的模糊匹配先级最低!!!
3.设置过滤器
比如设置一个编码过滤器,过滤所有资源
<!-- 字符编码过滤器 -->
<filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>com.zte.sms.filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>