乱码问题


乱码问题

新建控制类 EncodingController

注意请求地址设置

@Controller
public class EncodingController {
    @PostMapping("/e/t")
    public String test(String name, Model model){
        model.addAttribute("msg",name);
        return "test";
    }
}

在web目录下新建 form.jsp

注意 action 和 method

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>


<form action="/e/t" method="post">
    <input type="text" name="name"/>
    <input type="submit"/>
</form>


</body>
</html>

web/WEB-INF/jsp/test.jsp

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

解决乱码

方式一:自己编写过滤器类

1.编写过滤器类 EncodingFilter

package com.allen.filter;

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

public class EncodingFilter 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() {

    }
}

2.在 web/WEB-INF/web.xml 目录下 注册过滤器类

注意:/* 中的 / * 表示匹配所有,包括jsp页面

<filter>
    <filter-name>encoding</filter-name>
    <filter-class>com.allen.filter.EncodingFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>encoding</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

方式二:web.xml中配置 SpringMVC 的过滤器类

注意:/* 中的 / * 表示匹配所有,包括jsp页面

    <!--配置SpringMVC的过滤器类-->
    <filter>
        <filter-name>encoding2</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>encoding2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

文章作者: Hailong Gao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Hailong Gao !
评论
  目录