微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SpringMvc请求中文乱码问题

乱码演示

解决方案

方式1:自己写过滤器

方式2:使用SpringMvc的过滤器


 

乱码演示

表单

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>Spring乱码</title>
  </head>
  <body>
    <form action="${pageContext.request.contextpath}/student/students" method="post">
      <input type="text" name="name">
      <input type="submit">
    </form>
  </body>
</html>

 

控制层

package com.lingaolu.controller;

import com.lingaolu.bean.Student;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;


@Controller
@RequestMapping("/student")
public class StudentController {


    @PostMapping(value="/students")
    public String test(String name,Model model){
        System.out.println("传过来的name"+name);
        model.addAttribute("msg",name);
        return "hello";
    }

}

 

返回的视图

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>Spring乱码</title>
  </head>
  <body>
  ${msg}
  </body>
</html>

 

启动测试

 

解决方

方式1:自己写过滤器

过滤器 

package com.lingaolu.filter;

import javax.servlet.*;
import java.io.IOException;

public class MyEncondingFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws servletexception {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, servletexception {
        servletRequest.setCharacterEncoding("utf-8");
        servletResponse.setCharacterEncoding("utf-8");
        filterChain.doFilter(servletRequest,servletResponse);

    }

    @Override
    public void destroy() {

    }
}

 

web.xml中注册filter 

<filter>
    <filter-name>myEncodingFilter</filter-name>
    <filter-class>com.lingaolu.filter.MyEncondingFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>myEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

 

重启测试,解决

方式2:使用SpringMvc的过滤器

直接在web.xml中注册SpringMvc的处理乱码的过滤器

<filter>
    <filter-name>encodingFilter</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>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

 

重启测试,解决

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐