路径
在web项目当中分为两种路径,第一个路径叫做类路径,第二个路径叫做WebContent。
修改配置文件位置和名称
init-param标签
这个标签就是为了设置servlet或者filter对象当中已经存在的属性的值。
所以param-name标签里面的内容,就是对象的属性,是不能够改变的。
注意contextConfigLocation,就是DispatcherServlet当中的属性。
我们可以去源码当中寻找。
如图所示,contextConfigLoation就是servlet的属性。
22 - spring中的编码过滤器乱码问题的解释:
springmvc提供了CharacterEncodingFilter的过滤器。
查看CharacterEncodingFilter源码
在web.xml当中配置CharacterEncodingFilter
CharacterEncodingFilter必须配置在web.xml的第一个。
因为缓存的关系,如果先有了其他过滤器,就不会再加载CharacterEncodingFilter了。
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>SpringMVC02</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 设置springmvc配置文件的位置和名称 -->
<init-param>
<!-- contextConfigLocation名字不能改,对应DispatcherServlet的属性 -->
<param-name>contextConfigLocation</param-name>
<!-- classpath这个单词也不能写错,这表示类路径 -->
<param-value>classpath:springMVC.xml</param-value>
</init-param>
<!--
设置servlet的加载时间,默认在第一次请求访问时加载。
若设置此标签,会将servlet加载时间,提前到项目启动时。
此标签中可以写整数(正整数、负整数、0)
但是写0、负整数、不设置是一样的效果。
只有设置正整数,才会将servlet加载时间,提前到项目启动时。
值越小,优先级越高。
多个servlet的load-on-startup不能相同。
-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>