Servlet过滤器处理中文乱码问题
目录
一 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过滤器处理中文乱码问题相关推荐
- java 中文乱码过滤器_JAVA中文乱码过滤器(用java过滤器解决中文乱码)V0422 整理版...
JAVA中文乱码过滤器(用java过滤器解决中文乱码)V0422 整理版 不用再担心java中文乱码问题,一步到位,一次性解决.更方便更快捷. web-xml配置 EncodingFilter com ...
- java 过滤器 中文_java中Filter过滤器解决中文乱码办法
java中Filter过滤器解决中文乱码办法 发布时间:2020-04-07 10:19:09 来源:亿速云 阅读:16 作者:小新 这篇文章主要为大家详细介绍了java中Filter过滤器解决中文乱 ...
- 编码过滤器 | 解决中文乱码问题
中文乱码问题的确令人头疼,接收get/post表单参数,或者从数据库取中文数据,都有可能出现乱码. 因为各个环境下使用的字符编码不同,HTML2.0 - HTML4.01.jsp默认使用ISO-885 ...
- JavaWeb过滤器解决中文乱码问题
文章目录 前言 一.创建过滤器的类 二.实现接口 1.EncodingFilter implements Filter 2.web.xml注册过滤器 3. 重新运行项目即可 前言 Javaweb三大组 ...
- Servlet、MySQL中文乱码
1.Servlet中文乱码: 在doPost或doGet方法里,加上以下两行即可: response.setContentType("text/html;charset=UTF-8" ...
- JSP/ Servlet常见的中文乱码原因
在开发中,我们经常遇到中文乱码的问题,比方: &浏览器中看到的 Jsp/Servlet 页面中的汉字成了 '?' ? &浏览器中看到的 Servlet 页面中的汉字都成了乱码 &a ...
- JSP和Servlet的六种中文乱码处理方法
一.表单提交时出现乱码: 在进行表单提交的时候,经常提交一些中文,自然就避免不了出现中文乱码的情况,对于表单来说有两种提交方式:get和post提交方式.所以请求的时候便有get请求和post请求.每 ...
- Servlet请求转发中文乱码解决
2019独角兽企业重金招聘Python工程师标准>>> 在Servlet的使用过程中,如果在请求转发的同时需要获得输出流并且写出数据的时候,需要设定resp 的编码格式,否则的话,跳 ...
- servlet中response中文乱码
在servlet中,通过response向浏览器写中文,会出现乱码,那么response向浏览器写数据一共有两种方式 1.getOutputStream.write();字节流 2.PrintWrit ...
最新文章
- 你离时间管理大师,就差这副眼镜了
- 在报No suitable driver found for jdbc:mysql情况下,我是如何一步一步实现jmeter成功连接mysql...
- 判断三角形与射线相交的完整代码。。。
- CentOS系统dig和nslookup的安装
- 关于 pip install mysqlclent安装失败 ERROR: No matching distribution found for mysqlclient 的解决方案
- python开发web运维工具_Python web 开发工具箱
- 关于maven依赖中的scopeprovided/scope使用
- 梁鑫:重构 - 在美股行情系统的实践
- 【nodejs原理源码赏析(1)】Express中间件系统的基本实现
- iPhone 14 Pro将采用开孔全面屏:明年iPhone 15全系标配
- Eclipse手动添加dtd文件使xml能自动提示
- py12306 购票助手
- 电子元器件简介——场效应管篇
- java pem 私钥_JAVA:如何使用密码保护将私钥保存在pem文件中
- GitBash和GitGui右键失效解决方法
- cmyk rgb 数值转换_计算机视觉学习笔记2 图像类型转换
- 《项目》 之 ESP8266 心知天气 + 时钟 + WS2812点阵屏 + B站粉丝计数
- arctanx麦克劳林公式推导过程_诱导公式
- 小牛电动Q2财报:国外不乐观,国内狂下沉
- 爬虫逆向 js逆向常用工具简单介绍