为什么MVC有dispatchservlet但仍须web.xml仍需配置servlet处理请求?
因为需要将所有请求都转交给dispatchservlet,故需要在web.xml中配置
默认的web.xml配置方式:
此配置必须将springMVC的配置文件放在WEB-INF下且文件名必须为springMVC-servlet.xml。但项目一般将配置文件放在resource文件夹下,故需要使用拓展配置方式
为什么要注册:因为浏览器不能访问到一个类
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
处理所有请求,但不包含.jsp请求路径
因为.jsp本质为一个servlet,由特定的servlet控制器处理
<url-pattern>/</url-pattern>
</servlet-mapping>
扩展配置方式
通过init-param标签设置配置文件的路径及文件名,通过load-on-startup配置springMVC的dispatcherServlet的初始化时间。
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
设置springMVC配置文件位置
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springMVC.xml</param-value>
classpath代表类路径,即main目录下的Java、resources
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>