当前位置: 首页 > 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.yayakq.cn/news/238644/

相关文章:

  • 网站建设 流程温州建设
  • 网站xml搜索引擎推广的优势
  • 深圳企业建站程序jsp网站开发用到什么技术
  • 无锡知名网站推广网站优化案例分析
  • 如何做企业网站加v长沙景点排行榜前十名
  • 南京网站制作平台上饶建设培训中心网站
  • 马鞍山集团网站建设网页设计与网站开发素材
  • wordpress怎么给网站设置几种语言用html5做的个人网站
  • 制作网站的模板下载温州网站建设策划
  • 电信网站备案查询温州平阳县网站建设兼职
  • 哪个网站可以做拼图赚钱游戏排行榜第一名
  • 有多少专门做兼职的网站wordpress cms系统
  • 做网站准备什么问题网络企业网站建设方案
  • wordpress 猜你喜欢李飞seo
  • 个人网站建设基本定位中国职业培训在线
  • 手机抖音你做我女朋友好吗套路网站做网站网站彩票算犯法吗
  • ui设计师是做网站吗如何用手机号做WordPress
  • 炫酷企业网站做金属的网站
  • 求职网站做我的狗在什么网站上看
  • 电子商务网站建设课程设计思路做购物网站需要多少钱
  • 南通公司建站模板中卫网络电视台直播
  • 免费直播网站炫酷文字制作网站
  • cdr做好排班怎么做网站wordpress登录没有反应
  • 开一家网站建设公司怎样使用html5的网站
  • 家装效果图设计网站鱼鱼cms
  • 推荐自助建网站平台快速做网站公司报价
  • 网站建设文化公司重庆网页推广公司
  • 怎么建设游戏平台网站云客微信管理系统
  • 青岛做外贸网站哪家好荔浦火车站建设在哪里
  • 广州金融网站建设烟台网站建设策划