过滤静态资源文件
在我们写了一个前端页面代码的时候,启动Tomcat时,发现并不能正常访问到页面。
这是应为在web的配置里面的请求映射地址里面
<!--请求映射-->
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
url里有一个< url-pattern >/</ url-pattern >的配置为 / 表示的意思是所有的请求,这就会导致包括前端的代码都会进入DispatcherServlet。所以就不能正常的访问到
我们就可以在这里设置一个过滤静态的资源文件的配置,在Spring MVC的配置文件里加上:
<mvc:default-servlet-handler></mvc:default-servlet-handler>
就能够访问到静态资源了。例如:.html, .js, .css等后缀名的文件。
在配置了过滤静态资源后,就会在Spring MVC的上下文定义到一个
org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler
它就像一个检查员,会对要想进入DispatcherServlet 的url进行删选。如果发现是静态资源的请求文件,就将该请求转由 Web 应用服务器默认的 Servlet 处理。它不是静态资源的请求文件时,才有DispatcherServlet才进行处理。
中文乱码处理
在前后端的处理时,我们就会发现在提交请求的时候,如果输入的是中文的话,处理器的方法获取到之后就会产生乱码。解决它的办法就是加上一个过滤器,为 request 对象设置编码集。
在SpringMVC中已经为我们提供了一个过滤器,只需要在web.xml的web配置文件中配置好就可以了。
直接加上就可以了
<!--post请求中文编码过滤器的设置,放置中文编码乱码的问题-->
<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>