博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
04_过滤器Filter_02_Filter解决中文乱码问题
阅读量:5011 次
发布时间:2019-06-12

本文共 3312 字,大约阅读时间需要 11 分钟。

 【过滤器解决中文乱码问题实例】

【工程截图】

 

 【web.xml】

FilterDemo01
index.jsp
FilterTest01
com.Higgin.web.filter.FilterTest01
FilterTest01
/*

【servletTest01.java】

package com.Higgin.web.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 ServletTest01 */@WebServlet("/ServletTest01")public class ServletTest01 extends HttpServlet {    private static final long serialVersionUID = 1L;           public ServletTest01() {        super();    }    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        response.getWriter().write("中国 加油!China Come on!");   //将"中国 加油!China Come on!"显示在客户端界面上    }    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        doGet(request,response);    }}

 

 

【情况一:未添加中文乱码过滤

【FilterTest01.java】

package com.Higgin.web.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;public class FilterTest01 implements Filter{    @Override    public void doFilter(ServletRequest request, ServletResponse response,            FilterChain chain) throws IOException, ServletException {                System.out.println("I'm Filter!!!!");        //直接放行        chain.doFilter(request, response);//让目标资源执行,即:放行    }    @Override    public void init(FilterConfig arg0) throws ServletException {            }        @Override    public void destroy() {            }}

【运行结果】

浏览器端

控制台

 

【情况二:在Filter的都doFilter()方法中添加中文乱码过滤处理

【FilterTest01.java】

package com.Higgin.web.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;public class FilterTest01 implements Filter{    @Override    public void doFilter(ServletRequest request, ServletResponse response,            FilterChain chain) throws IOException, ServletException {                System.out.println("I'm Filter!!!!");                //对request和response进行一些预处理        request.setCharacterEncoding("utf-8");        response.setCharacterEncoding("utf-8");        response.setContentType("text/html;character=UTF-8");                chain.doFilter(request, response);//让目标资源执行,即:放行    }    @Override    public void init(FilterConfig arg0) throws ServletException {            }        @Override    public void destroy() {            }}

 

 【运行结果】

浏览器端

控制台

 

 

 

【三种典型应用概述】

1.可以在Filter中根据条件决定是否调用chain.doFilter(request,response)方法,即是否放行让目标资源执行。

2.在目标资源执行之前,可以对request/response做预处理,再让目标资源执行。(如:为request和reponse设置编码为utf-8,以解决中文乱码问题)

3.让目标资源执行之后,可以捕获目标资源的执行结果,从而实现一些特殊的功能。

 

转载于:https://www.cnblogs.com/HigginCui/p/5772188.html

你可能感兴趣的文章
QT自定义消息
查看>>
Save (Not Permitted) Dialog Box
查看>>
装饰模式(Decorator)
查看>>
任务13:在Core Mvc中使用Options
查看>>
利用Excel 2010数据透视图实现数字的可视化的图形直观展示
查看>>
Sort Colors
查看>>
iview树的修改某个节点,树刷新后自动展开你刚才展开的所有节点
查看>>
oracle服务起不来以及无法监听问题解决
查看>>
Mvc--Html.ActionLink()的用法
查看>>
delphi 基础书籍推荐
查看>>
《面向对象程序设计》2018年春学期寒假及博客作业总结
查看>>
iOS开发UI之KVC(取值/赋值) - KVO (观察某个对象的某个属性的改变)
查看>>
1.7 将一个MxN矩阵所有为0的元素所在行和列全部置0
查看>>
删除U盘时提示无法停止‘通用卷’设备的解决方法!!不要每次都硬拔了,对电脑有不小的损害!!!...
查看>>
Java中接口与接口和类之间的关系
查看>>
芯片TPS70925
查看>>
linux shell 发送email 附件
查看>>
人群密度估计 CrowdCount
查看>>
JSON.parse()和JSON.stringify()
查看>>
.net 常用正则表达式
查看>>