目录

一 Filter开发步骤

二 实战

三 测试结果


一 Filter开发步骤

1 导包

2 编写过滤器

二 实战

1 编写Servlet,用于测试

package com.cakin.servlet;import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;/**
* @ClassName: ShowSevlet
* @Description: 测试乱码Servlet
* @Date: 2020/6/14
* @Author: cakin
*/
public class ShowServlet extends HttpServlet {/*** 功能描述:构造乱码** @author cakin* @date 2020/6/14* @param req 请求* @param resp 响应* @throws IOException 异常*/@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {resp.getWriter().write("解决过滤器乱码问题");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {doGet(req, resp);}
}

2 编写过滤器,防止产生中文乱码

package com.cakin.filter;import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;
import java.io.IOException;/**
* @ClassName: CharacterEncodingFilter
* @Description: 解决中文乱码问题
* @Date: 2020/6/14
* @Author: cakin
*/
public class CharacterEncodingFilter implements Filter {/*** 功能描述:初始化** @author cakin* @date 2020/6/14* @param filterConfig 过滤器配置* @throws ServletException ServletException* @description: web启动就会初始化,同Tomcat一起启动*/public void init(FilterConfig filterConfig) throws ServletException {System.out.println("CharacterEncodingFilter 初始化");}/*** 功能描述:过滤器核心方法** @param request  请求* @param response 响应* @param chain    过滤器链* @throws IOException      IOException* @throws ServletException IOException* @author cakin* @date 2020/6/14* @description: 关键点* 1 针对特定的请求,过滤器会执行,这个特定的请求是在web.xml中配置过滤器* 2 为了让程序继续往下走,必须执行 chain.doFilter(request, response);*/public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {// 处理乱码问题request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=UTF-8");System.out.println("执行前");// 让我们的程序继续往下走,否则程序就在这里停止了chain.doFilter(request, response);System.out.println("执行后");}/*** 功能描述:过滤器销毁** @author cakin* @date 2020/6/14* @description: web服务器停止时,会执行这个函数*/public void destroy() {System.out.println("CharacterEncodingFilter 销毁");}
}

3 编写web.xml,配置Servlet和Filter

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><servlet><servlet-name>ShowServlet</servlet-name><servlet-class>com.cakin.servlet.ShowServlet</servlet-class></servlet><servlet-mapping><servlet-name>ShowServlet</servlet-name><!--这个路径会走到下面配置的过滤器--><url-pattern>/servlet/show</url-pattern></servlet-mapping><servlet-mapping><servlet-name>ShowServlet</servlet-name><url-pattern>/show</url-pattern><!--这个路径不会走到下面配置的不会走过滤器--></servlet-mapping><filter><filter-name>EncodingFilter</filter-name><filter-class>com.cakin.filter.CharacterEncodingFilter</filter-class></filter><filter-mapping><filter-name>EncodingFilter</filter-name><!-- /servlet请求都会走这个过滤器--><url-pattern>/servlet/*</url-pattern></filter-mapping>
</web-app>

三 测试结果

1 当访问 http://localhost:8080/servlet/show

2 当访问 http://localhost:8080/show

Servlet过滤器处理中文乱码问题相关推荐

  1. java 中文乱码过滤器_JAVA中文乱码过滤器(用java过滤器解决中文乱码)V0422 整理版...

    JAVA中文乱码过滤器(用java过滤器解决中文乱码)V0422 整理版 不用再担心java中文乱码问题,一步到位,一次性解决.更方便更快捷. web-xml配置 EncodingFilter com ...

  2. java 过滤器 中文_java中Filter过滤器解决中文乱码办法

    java中Filter过滤器解决中文乱码办法 发布时间:2020-04-07 10:19:09 来源:亿速云 阅读:16 作者:小新 这篇文章主要为大家详细介绍了java中Filter过滤器解决中文乱 ...

  3. 编码过滤器 | 解决中文乱码问题

    中文乱码问题的确令人头疼,接收get/post表单参数,或者从数据库取中文数据,都有可能出现乱码. 因为各个环境下使用的字符编码不同,HTML2.0 - HTML4.01.jsp默认使用ISO-885 ...

  4. JavaWeb过滤器解决中文乱码问题

    文章目录 前言 一.创建过滤器的类 二.实现接口 1.EncodingFilter implements Filter 2.web.xml注册过滤器 3. 重新运行项目即可 前言 Javaweb三大组 ...

  5. Servlet、MySQL中文乱码

    1.Servlet中文乱码: 在doPost或doGet方法里,加上以下两行即可: response.setContentType("text/html;charset=UTF-8" ...

  6. JSP/ Servlet常见的中文乱码原因

    在开发中,我们经常遇到中文乱码的问题,比方: &浏览器中看到的 Jsp/Servlet 页面中的汉字成了 '?' ?  &浏览器中看到的 Servlet 页面中的汉字都成了乱码  &a ...

  7. JSP和Servlet的六种中文乱码处理方法

    一.表单提交时出现乱码: 在进行表单提交的时候,经常提交一些中文,自然就避免不了出现中文乱码的情况,对于表单来说有两种提交方式:get和post提交方式.所以请求的时候便有get请求和post请求.每 ...

  8. Servlet请求转发中文乱码解决

    2019独角兽企业重金招聘Python工程师标准>>> 在Servlet的使用过程中,如果在请求转发的同时需要获得输出流并且写出数据的时候,需要设定resp 的编码格式,否则的话,跳 ...

  9. servlet中response中文乱码

    在servlet中,通过response向浏览器写中文,会出现乱码,那么response向浏览器写数据一共有两种方式 1.getOutputStream.write();字节流 2.PrintWrit ...

最新文章

  1. 你离时间管理大师,就差这副眼镜了
  2. 在报No suitable driver found for jdbc:mysql情况下,我是如何一步一步实现jmeter成功连接mysql...
  3. 判断三角形与射线相交的完整代码。。。
  4. CentOS系统dig和nslookup的安装
  5. 关于 pip install mysqlclent安装失败 ERROR: No matching distribution found for mysqlclient 的解决方案
  6. python开发web运维工具_Python web 开发工具箱
  7. 关于maven依赖中的scopeprovided/scope使用
  8. 梁鑫:重构 - 在美股行情系统的实践
  9. 【nodejs原理源码赏析(1)】Express中间件系统的基本实现
  10. iPhone 14 Pro将采用开孔全面屏:明年iPhone 15全系标配
  11. Eclipse手动添加dtd文件使xml能自动提示
  12. py12306 购票助手
  13. 电子元器件简介——场效应管篇
  14. java pem 私钥_JAVA:如何使用密码保护将私钥保存在pem文件中
  15. GitBash和GitGui右键失效解决方法
  16. cmyk rgb 数值转换_计算机视觉学习笔记2 图像类型转换
  17. 《项目》 之 ESP8266 心知天气 + 时钟 + WS2812点阵屏 + B站粉丝计数
  18. arctanx麦克劳林公式推导过程_诱导公式
  19. 小牛电动Q2财报:国外不乐观,国内狂下沉
  20. 爬虫逆向 js逆向常用工具简单介绍

热门文章

  1. 数学基础差真的没救了吗?
  2. HTTP状态码200和304
  3. Windows使用命令行快速批量删除大量文件
  4. ALEVEL数学、物理、化学、生物与国内考试的区别
  5. 悬镜安全:用开源的方式做开源风险治理
  6. Linux常见命令行
  7. 虚拟机(win11)和云服务器的WarmServer配置缺少MSVCR110.dll
  8. 华为手机上应用icon显示错误问题
  9. 如何接受上级指令_上级应该如何向下属下命令---如何领导你的下属
  10. php判断平板,能够判断手机或者平板的PHP代码