零xml配置Spring MVC过滤器解决中文参数乱码
来源:互联网 发布:head first java 下载 编辑:程序博客网 时间:2024/05/20 09:07
由于JSP默认的字符编码为ISO-8859-1,如果request中有中文的话会出现乱码,因此可以使用过滤器设置request的编码
Spring MVC中提供了一个CharacterEncodingFilter
,顾名思义就是用来做字符编码的过滤器。因此可以自定义一个Filter来继承它。
方式一:
自定义的Filter(注意不要添加@WebFilter(filterName = "MyFilter",urlPatterns = "/*")
注解:
public class MyFilter extends CharacterEncodingFilter{ public MyFilter(String encoding, boolean forceRequestEncoding, boolean forceResponseEncoding) { super(encoding, forceRequestEncoding, forceResponseEncoding); }}
自定义基于Java的初始化器(可定义任意数量)
public class MyInitializer implements WebApplicationInitializer{ @Override public void onStartup(ServletContext servletContext) throws ServletException { //注册Filter FilterRegistration.Dynamic dynamic=servletContext.addFilter("myFilter", new MyFilter("UTF-8",true,true)); dynamic.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*"); //映射Filter }}
Controller
@Controllerpublic class HomeController { @RequestMapping(value = "/viewAll") public ModelAndView viewAll(String name,String password) { ModelAndView mv=new ModelAndView(); System.out.println("name: "+name); System.out.println("password: "+password); mv.setViewName("home"); //返回home.jsp return mv; }}
登录JSP:
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>login</title></head><body><h2>登录界面</h2><%--不加/mvc的话默认是localhost:8080路径 --%><form name="form" action="/mvc/viewAll" method="post"> <input type="text" name="name"> <br> <input type="password" name="password"><br> <input type="submit" name="login"></form></body></html>
其实不用自定义Filter直接用CharacterEncodingFilter
就行了,只是顺便温故一下自定义Filter
方式二:
过滤器的配置一样,不过不是通过初始化器来注册Filter,但这种方式要求Servlet3.0以上
public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{ @Override protected Class<?>[] getRootConfigClasses() { return new Class<?>[]{RootConfig.class}; } @Override protected Class<?>[] getServletConfigClasses() { return new Class<?>[]{WebConfig.class}; } @Override protected String[] getServletMappings() { return new String[]{"/"}; } //重写该方法注册Filter,该方法的所有Filter都会映射到DispatcherServlet上,因此没必要声明映射路径 @Override protected Filter[] getServletFilters() { return new Filter[]{new MyFilter("UTF-8",true,true)}; }}
0 6
- 零xml配置Spring MVC过滤器解决中文参数乱码
- Spring MVC过滤器-字符集过滤器,解决中文乱码问题
- spring mvc解决中文乱码问题需在web.xml文件中添加下面的配置
- Spring mvc解决url传递中文参数乱码问题
- spring MVC中文乱码解决
- spring MVC解决中文乱码
- Spring MVC中文乱码解决
- spring mvc 解决中文乱码
- struts2.2.3 配置中文乱码拦截过滤器 解决接收中文参数乱码问题
- struts2.2.3 配置中文乱码拦截过滤器 解决接收中文参数乱码问题
- struts2.2.3 配置中文乱码拦截过滤器 解决接收中文参数乱码问题
- struts2.2.3 配置中文乱码拦截过滤器 解决接收中文参数乱码问题
- Spring MVC过滤器-字符集过滤器(CharacterEncodingFilter)中文乱码问题
- 【Spring】Spring MVC Controller 参数中文乱码
- 零xml配置Spring MVC文件上传
- Spring MVC提交参数中文乱码
- Spring MVC参数传递中文乱码解决方案
- Spring MVC 接收中文参数乱码问题
- JavaScript语言
- 初识swoole
- Android 插件技术实战总结
- ThreadLocal 学习
- 关于用Class.forName(“com.mysql.jdbc.Driver”)注册数据库驱动
- 零xml配置Spring MVC过滤器解决中文参数乱码
- IO、NIO区别
- Android应用层View绘制流程之DecorView与ViewRootImpl
- LeetCode-86. Partition List (JAVA)分区链表
- angular基础介绍
- git操作教程
- Android SQLite(5)商品展示案例
- Nginx的rewrite规则
- 解决SpringMVC的中文乱码 (5)