SpringMvc接收参数编码问题

在做一个全局搜索的时候,遇到一个问题,怎么搜索都搜索不到,最后调试发现是后台接收的参数是乱码,就去百度了一下,发现时tomcat配置文件中的问题,但是这个问题编码问题springmvc也去解决了.

第一种方法

就是不修改tomcat配置,在项目的web.xml文件中去配置一个过滤器,过滤器代码如下(这里我配置的servlet是加上了一个请求地址后缀,只要带有这个后缀的请求全部去请求到springmvc的核心拦截器中的servlet中,为什么设置后缀呢,因为请求访问静态页面的请求不能去拦截,同理访问静态资源的请求不需要经过这个设置编码的过滤器,所以设置了后缀,后缀符合的经过这个过滤器.)

  <servlet>
    <servlet-name>springMvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:SpringMVC.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>springMvc</servlet-name>
    <url-pattern>*.action</url-pattern>
  </servlet-mapping>

  <filter>
  <filter-name>characterEncoding</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>characterEncoding</filter-name>
      <url-pattern>*.action</url-pattern>
  </filter-mapping>

第二种方法

就是去修改tomcat的配置文件,打开tomcat的server.xml文件,找到下面的这行代码

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
然后在这一行代码中的标签中插入一个属性 URIEncoding="UTF-8" ,修改后是下面的形式
<Connector URIEncoding="UTF-8"  connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值