IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 对于Servlet中文问题 在Filter中的中文处理 -> 正文阅读

[游戏开发]对于Servlet中文问题 在Filter中的中文处理

之前的博客在Servlet学习中提到过中文问题的处理;但是那种处理方法过于复杂 且不好用

最主要的就是以下的语句:

request.setCharacterEncoding("UTF-8");

正确获取UTF-8编码的中文,如果有很多servlet都需要获取中文,那么就必须在每个Servlet中增加这段代码。才能在每个web页面显示时不会导致中文乱码。

这样造成在写每一个模块的servlet时,都得记着加上request.setCharacterEncoding(“UTF-8”);这一语句

在Filter中进行中文处理会更简便——通过Filter过滤器进行中文处理 ,那么所有的Servlet都不需要单独处理了。

示例:
常见的处理就是 Servlet的CRUD内容 多个控制器(servlet)里再进行操作时 数据会进行更改比如属性名。
大致分为 增删改查四个 servlet

  protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
//        request.setCharacterEncoding("UTF-8");
        
    }
}

基本这四个 servlet为了不中文乱码 都在第一行加入了—— request.setCharacterEncoding(“UTF-8”);

为了操作简便 引入filter则——
创建 Filter类,直接一劳永逸

import javax.servlet.*;//filter 以及servletException 这些都存在于这个包中 直接引用全部
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
            throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) res;

        request.setCharacterEncoding("UTF-8");

        chain.doFilter(request, response);
    }

注意 doFilter方法要设置三个参数 其中FilterChain 更为重要,Filter FilterChain 等等都是抽象接口类型

doFilter方法的第一个参数req,是ServletRequest 类型的,不支持setCharacterEncoding,所以要先强制转换为HttpServletRequest

配置web.xml:

<filter>
        <filter-name>EncodingFilter</filter-name>
        <filter-class>Filters.EncodingFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>EncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
<url-pattern>/*</url-pattern>

表示为所有的访问都使用该Filter ,都得经过该过滤器

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:54:10  更:2022-03-24 00:56:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:49:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码