使用Filter解决中文乱码问题
2016-04-15 16:15
441 查看
在使用jsp的时候,总会遇到中文乱码问题,几天不会的Filter 解决中文乱码的问题,今天解决了。。。也不知到什么原因,以前的400,错误消失啦,赶紧记录下。。。
1.index.jsp
2.接下来则是,对于提交的到display的表单,添加servlet,新建cn.edu.hpu.servlet包,在包下创建DispalyServlet的Servlet
DispalyServlet.java
到这里,我们就实现了用Filter解决中文乱码问题
1.index.jsp
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h1>用Filter解决中文乱码问题</h1> <hr/> <form action="display" method="post"> 姓名:<input type="text" name="name"/> <input type="submit" value="Submit"/> </form> </body> </html>
2.接下来则是,对于提交的到display的表单,添加servlet,新建cn.edu.hpu.servlet包,在包下创建DispalyServlet的Servlet
DispalyServlet.java
package cn.edu.hpu.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class DispalyServlet */ @WebServlet("/display")<span style="background-color: rgb(204, 0, 0);">//注意这里的url</span> public class DispalyServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public DispalyServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub System.out.println("Message from display servlet."); response.setCharacterEncoding("utf8"); request.getRequestDispatcher("/display.jsp").forward(request, response); } }3.接收页面 display.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> 您输入的姓名是:<%=request.getParameter("name") %> </body> </html>4.这里是最重要的,添加过滤Filter
package cn.hpu.edu.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter; /** * Servlet Filter implementation class FilterServlet */ @WebFilter("/*") public class FilterServlet implements Filter { private FilterConfig config = null; /** * Default constructor. */ public FilterServlet() { // TODO Auto-generated constructor stub } /** * @see Filter#destroy() */ public void destroy() { // TODO Auto-generated method stub } /** * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) */ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub // place your code here // pass the request along the filter chain <span style="background-color: rgb(255, 153, 102);">System.out.println("Message from before encoding filter."); String encoding = config.getInitParameter("encoding"); request.setCharacterEncoding(encoding); response.setCharacterEncoding(encoding); chain.doFilter(request, response); System.out.println("Message after before encoding filter.");</span> } /** * @see Filter#init(FilterConfig) */ public void init(FilterConfig config) throws ServletException { // TODO Auto-generated method stub this.config = config; } }同时要在web.xml中配置Filter的初始化内容
<filter> <filter-name>endodingFilter</filter-name> <filter-class>cn.hpu.edu.filter.FilterServlet</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>endodingFilter</filter-name> <url-pattern>/*</url-pattern> <!-- 我们要过滤所有的文件,解决所有的中文呢乱码问题,所以url设置为/* --> </filter-mapping>
到这里,我们就实现了用Filter解决中文乱码问题
相关文章推荐
- 教你打包Java程序,jar转exe随处可跑
- PHP - 目录、文件操作
- 异步复位,同步释放
- 内核符号导出例子
- 下拉框模糊查询的实现
- Spring Bean的作用域
- 选择器理论篇
- Android studio编译OOM
- hdu 【2612】 Find a way
- Android之SystemUI加载流程和NavigationBar的分析
- CodeForces 660E Different Subsets For All Tuples(动态规划)
- iOS 富文本
- 172. Factorial Trailing Zeroes
- javascript初学——var,alert的使用,meta标签的使用
- CentOS6.5上hive安装过程与常见错误调试
- 数据归一化的方法总结
- U3D手游《苍穹变》性能优化经验谈
- 机房重构下机(职责链+策略+反射+存储过程)
- 嘉定三屠与扬州十屠
- 头像添加边框