SpringMVC的过滤静态资源问题和中文乱码处理

过滤静态资源文件

在我们写了一个前端页面代码的时候,启动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>

上一篇:>>> Spring MVC概述和配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值