乱码问题

1. 使用原生filter解决

1. 前端jsp

<%--
Created by IntelliJ IDEA.
User: Wang
Date: 2020/9/9
Time: 9:30
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body> <form action="/e/t1" method="post">
<input type="text" name="name">
<input type="submit">
</form> </body>
</html>

2. 编写controller

package com.wang.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping; @Controller
public class EncodingController { //过滤器解决乱码
@PostMapping("/e/t1")
public String test(String name, Model model) { System.out.println(name);
model.addAttribute("msg", name); //返回的地址为转发的地址
return "test";
}
}

3. 编写过滤器

package com.wang.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() { }
}

4. 注册过滤器

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

注意, 此处url-pattern要写为/*, 这是由于要拦截所有的东西

spring配置中则写/, 这是由于如果拦截了.jsp, 会继续将jsp中的跳转的url继续拦截, 当找不到controller时会报404错误!

2. 使用SpringMVC提供的过滤器实现

在web.xml中配置

<!--配置SpringMVC的乱码过滤-->
<filter>
<filter-name>encoding</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>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

注意, 此处url-pattern要写为/*, 这是由于要拦截所有的东西

SpringMVC-乱码问题的更多相关文章

  1. springmvc乱码配置

    web.xml配置 <!-- springmvc乱码 --> <filter> <filter-name>encodingFilter</filter-nam ...

  2. 关于SpringMVC乱码问题

    关于SpringMVC运行Tomcat控制台出现乱码的情况(在网上找到一种方法亲测有效) 找到tomcat文件夹中的conf包下的logging.properties中找到 java.util.log ...

  3. springMVC乱码问题-转

    彻底解决Spring MVC 中文乱码 问题     1:表单提交controller获得中文参数后乱码解决方案 注意:  jsp页面编码设置为UTF-8 form表单提交方式为必须为post,get ...

  4. springmvc乱码问题

    在web.xml中加入 <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter ...

  5. SSM&SSH项目中 springmvc 乱码问题解决

    需要在web.xml文件中配置过滤器: <!-- 过滤器 过滤乱码 --> <filter> <filter-name>characterEncodingFilte ...

  6. 解决springmvc 乱码的方法

    post乱码: 在web.xml添加post乱码filter: <filter> <filter-name>CharacterEncodingFilter</filter ...

  7. SpringMVC乱码解决

    解决需要四个步骤:1.jsp页面编码   2.tomcat server.xml编码  3.使用filter对编码进行过滤  4.数据库编码设置 说明:四个地方的编码需要一致:本文使用gbk 1.js ...

  8. SpringMVC数据传递及乱码问题

    基础环境搭建请参考SringMVC入门程序 一.SpringMVC数据处理 1:resful 路径传值 http://localhost/get/1/2 /* http://localhost/get ...

  9. SpringMVC 获取请求参数

    1.获取Request response对象 在SpringMVC的注解开发中,可以选择性的接收Request和Response对象来使用 2.获取request对象请求参数 a.通过request对 ...

  10. java web 学习十(HttpServletRequest对象1)

    一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...

随机推荐

  1. C#设计模式之21-策略模式

    策略模式(Stragety Pattern) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/427 访问. 策略模式属于 ...

  2. C#LeetCode刷题之#453-最小移动次数使数组元素相等(Minimum Moves to Equal Array Elements)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3877 访问. 给定一个长度为 n 的非空整数数组,找到让数组所有 ...

  3. Springboot调用Oracle存储过程的几种方式

    因工作需要将公司SSH项目改为Spingboot项目,将项目中部分需要调用存储过程的部分用entityManagerFactory.unwrap(SessionFactory.class).openS ...

  4. vue+vant 上传图片需要注意的事项

    <van-uploader v-model="fileList" multiple :after-read="afterRead" :max-count= ...

  5. 谈谈BUG严重级别(severity)管理

    在软件工程理论中,BUG严重级别(severity)是用于指示软件质量问题导致的负面影响的程度.但在大部分实际的软件开发组织中,对BUG严重级别(severity)的定义和使用常常充斥着大量的争议和分 ...

  6. OpenStack虚拟机virtaulinterfance 网络设备在libvirt的代码梳理

    nova创建虚机网卡实际设备的代码调用流程为 _create_domain_and_network---->plug_vifs-->LibvirtGenericVIFDriver.plug ...

  7. wsgi的environ变量

    The environ dictionary is required to contain these CGI environment variables, as defined by the Com ...

  8. Spring Security拦截器加载流程分析--练气中期

    写在前面 上回我们讲了spring security整合spring springmvc的流程,并且知道了spring security是通过过滤器链来进行认证授权操作的.今天我们来分析一下sprin ...

  9. 怎么创建一个良好的Git提交信息

    译   原文:https://dev.to/chrissiemhrk/git-commit-message-5e21 提交信息是对提交之前添加和更改的文件所做的更改的简短描述. 良好的提交信息不仅对你 ...

  10. IA-32/centos7开机流程

    开机后系统首先在实地址模式下工作(只有1MB的寻址空间) 开机过程中,需要先准备在实模式下的中断向量表和中断服务程序.通常,由固化在主板上一块ROM芯片中的BIOS程序完成 加载BIOS的硬件信息,B ...