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

Web应用解决中文乱码的两种方式


(1)第一种:常用的是我们自定义的过滤器

 
package com . lc . filter ;
//ctrl+shift+o 导入各种包 即可
/**
* 过滤器的使用方法
* 在创建类的时候 要用到接口Filter
* 要自己在web.xml文件中配置过滤器
* @author xuliugen
*
*/
public class MyFilter extends HttpServlet implements Filter {
private String encoding = null ;
public void doFilter ( ServletRequest arg0 , ServletResponse arg1 ,
FilterChain arg2 ) throws IOException , ServletException {
//一下两段代码如果可以理解就好 不可以理解的话 到时候用的时候直接拿来用就好了
arg0 . setCharacterEncoding ( encoding );
arg2 . doFilter ( arg0 , arg1 );
}
public void init ( FilterConfig arg0 ) throws ServletException {
// TODO Auto-generated method stub
encoding = arg0 . getInitParameter ( "encoding" ); //获得配置文件中的encoding
}
}

然后在web.xml文件中配置过滤器:

<filter>
		<filter-name>MyFilter</filter-name>
		<filter-class>com.lc.web.filter.MyFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>MyFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping> 



(2)第二种思路是,如果使用Spring框架的话,我们可以使用框架自带的过滤器,只需在web.xml文件中配置下边就可以了

<!-- 使用 spring框架自己提供的过滤器解决乱码 -->
	<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>





相关文章:

  • Linux平台下线程同步,实现“生产者消费者问题”
  • aaaa
  • Hibernate懒加载策略
  • [redis] Jedis 与 ShardedJedis 设计
  • Ubuntu中使用GCC编译器出现:没有那个文件或目录
  • 使用 nvm 管理不同版本的 node 与 npm
  • 数据库连接失败Communications link failure due to underlying exception!
  • js遍历 子节点 子元素
  • Hinernate进行mysql数据库的逆向工程无法生成主外键关系
  • lintcode 中等题:find the missing number 寻找缺失的数
  • Myeclipse使用DB Browser连接数据库错误:OPTION SQL_SELECT_LIMIT=DEFAULT
  • C语言如何清除scanf()缓存
  • 通过XmlDocument读写Xml文档参考地址
  • Myeclipse使用hibernate的逆向工程
  • brew 更新
  • 03Go 类型总结
  • 07.Android之多媒体问题
  • C++11: atomic 头文件
  • ECMAScript6(0):ES6简明参考手册
  • ECMAScript入门(七)--Module语法
  • HashMap剖析之内部结构
  • HomeBrew常规使用教程
  • JS题目及答案整理
  • laravel5.5 视图共享数据
  • mac修复ab及siege安装
  • Promise面试题,控制异步流程
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • SpiderData 2019年2月25日 DApp数据排行榜
  • zookeeper系列(七)实战分布式命名服务
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 力扣(LeetCode)357
  • 力扣(LeetCode)965
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 物联网链路协议
  • 主流的CSS水平和垂直居中技术大全
  • #QT(串口助手-界面)
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (二)WCF的Binding模型
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (循环依赖问题)学习spring的第九天
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .Net IOC框架入门之一 Unity
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .net与java建立WebService再互相调用
  • .skip() 和 .only() 的使用
  • @EnableConfigurationProperties注解使用
  • []FET-430SIM508 研究日志 11.3.31
  • [AIGC] SQL中的数据添加和操作:数据类型介绍
  • [Android] Android ActivityManager
  • [Android] Upload package to device fails #2720