当前位置: 首页 > news >正文

在线直播系统开发太原优化排名推广

在线直播系统开发,太原优化排名推广,二手车网站建设,外贸公司网站建设需要注意处理SpringMVC中乱码问题 处理原生Servlet中请求和响应的乱码问题,参考文章 Servlet中的过滤器的实现及其原理,参考文章 配置CharacterEncodingFilter 在Servlet规范中要求request和response对象设置编码之前不能有获取请求参数和响应数据的操作,否则后续设置的编码都将不起…

处理SpringMVC中乱码问题

处理原生Servlet中请求和响应的乱码问题,参考文章

Servlet中的过滤器的实现及其原理,参考文章

配置CharacterEncodingFilter

在Servlet规范中要求request和response对象设置编码之前不能有获取请求参数和响应数据的操作,否则后续设置的编码都将不起作用

  • 但是DispatcherServlet给控制器方法注入request时一定是已经获取了所有的请求参数,否则我们不能直接在控制器方法上声明形参获取请求参数的值

在web.xml中注册SpringMVC提供的编码过滤器CharacterEncodingFilter, 要想在DispatcherServlet获取参数前设置编码必须在其他过滤器之前配置它否则无效

  • 使用init-param初始化参数标签设置encoding属性的值指定POST请求的编码格式,如UTF-8
  • 使用init-param初始化参数标签设置forceEncoding属性的值指定响应的编码格式,true表示响应和请求的编码格式一致,fasle表示默认编码格式
<!--配置一个字符编码的Filter,一定注意字符编码filter一般都在其他Filter之前-->
<filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><!--设置encoding属性的值解决POST请求乱码--><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><!--设置forceEncoding属性的值解决响应乱码--><param-name>forceEncoding</param-name>	<param-value>true</param-value></init-param>
</filter>
<filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern>
</filter-mapping>

CharacterEncodingFilter继承的OncePerRuquestFilter重写了doFilter(request,response,filter)并调用doFilterInternal(request,response,filter)方法执行过滤

// CharacterEncodingFilter的构造方法
public CharacterEncodingFilter(String encoding, boolean forceEncoding) {// encoding属性的值是我们在配置文件中设置的编码格式// forceEncoding属性的值就是我们在配置文件中设置的布尔值truethis(encoding,forceEncoding,forceEncoding);
}public CharacterEncodingFilter(string encoding, boolean forceRequestEncoding, boolean forceResponseEncoding){Assert.hasLength(encoding,"Encoding must not be empty");this.encoding = encoding;this.forceRequestEncoding = forceRequestEncoding;this.forceResponseEncoding = forceResponseEncoding;
}// OncePerRuquestFilter重写了doFilter(request,response,filter)
@override
public final void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)throws servletException, IOException {//.............// 满足条件放行filterChain.doFilter(request,response);// 不满足条件执行过滤规则doFilterInternal(httprequest,httpresponse,filterChain);
}// CharacterEncodingFilter重写的doFilterInternal方法
protected void doFilterInternal(HttpservletRequest request, HttpservletResponse response, FilterChain filtel)throws ServletExceptionIOException {string encoding = getEncoding(); // 判断我们在是否在web.xml文件中设置了编码格式if (encoding != null) {// 如果设置了编码格式,并且forceRequestEncoding的属性值为true或request对象之前没有设置过编码(确实没有设置过),此时就可以设置请求的编码if (isForceRequestEncoding() || request.getcharacterEncoding() == null){// 设置请求的编码request.setCharacterEncoding(encoding);}// 如果设置了编码格式,并且forceResponseEncoding属性值为true,此时就可以设置响应的编码if (isForceResponseEncoding()){response.setcharacterEncoding(encoding);}}// 放行filterchain.dofilter(reauest. response);
}
http://www.mmbaike.com/news/40272.html

相关文章:

  • 保定网站建设多少钱哪家好长沙seo就选智优营家
  • 网站公安备案有必要吗黑龙江seo关键词优化工具
  • 个人网站建设教学视频百度刷排名seo软件
  • drupal网站建设数据库电脑系统优化工具
  • 网站建设类公深圳百度推广竞价托管
  • 彩票网站 在哪里做培训班有哪些课程
  • 二级建造师挂靠免费seo教程资源
  • 疫情北京最新消息网络营销优化推广公司
  • 鹰潭市城乡建设局老网站品牌推广软文案例
  • 海西州建设局网站百度旗下所有app列表
  • 装修网站应该怎么做网站建设方案书
  • 铜仁北京网站建设百度seo排名培训 优化
  • 上海市政府网站建设与对策分析什么是口碑营销
  • 抖音代运营推广网站搜索排名优化价格
  • 西安响应式网站建设公司发布平台
  • 桂市做网站的朋友东莞网站建设seo
  • 建设工业网站seo推广技巧
  • 怎样注册网站免费的网络营销电子版教材
  • 网站建设怎么付费肇庆seo排名
  • 北京网站手机站建设公司电话搜索引擎优化关键字
  • 怎么做导购网站seo规范培训
  • 9e做网站seo网络优化
  • 南京网站开发联系南京乐识宁波正规优化seo价格
  • 北京软件开发学校哪个好济南做seo排名
  • 用什么工具建设网站山西网站seo
  • 如何用word做网站地图济南百度开户电话
  • 网站检索功能怎么做企业建站要多少钱
  • 电子书推送网站怎么做疫情最新数据
  • 网站推广建站设计外包网站
  • 一分钟做网站拼多多关键词优化步骤