初次接触springmvc,在使用过程中对前端控制器有点迷茫,现在记录下来。
- 前端控制器本质上是一个servlet,遵循servlet规则
servlet规则如下:
- servlet只针对WEB-INF/ 文件下的内容进行处理,不处理与WEB-INF/ 同级的目录
- 也就是说WEB-INF/ 才属于servlet
- servlet的拦截顺序如下
<servlet-mapping>
<servlet-name>crm</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
①首先如果访问url不存在对应<url-pattern>
映射时候,返回404
②如果配置了<url-pattern>/</url-pattern>
,则称为缺省servlet;访问url不存在时候,跳转到该url下
③配置路径分为3种:(顺序如下,只匹配最近的一种)
精确匹配<url-pattern>/abc</url-pattern>
最长路径匹配<url-pattern>/abc/*</url-pattern>
扩展名匹配<url-pattern>*.do</url-pattern>
2.而/WebContent下的文件,也就是WEB-INF/之外的文件,前端控制器不进行处理,也就是可以直接访问。
一般index.jsp、静态文件,都存在这。