大家好,如果您还对中文乱码卡一卡二卡新区无限观看不太了解,没有关系,今天就由本站为大家分享中文乱码卡一卡二卡新区无限观看的知识,包括一招教你如何解决中文乱码的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
#头条创作挑战赛#
前言在开发JavaWeb项目时,由于不同的浏览器和服务器对请求和响应处理的编码格式不同,从而导致了中文乱码的现象出现。同时许多的编码方式对中文的处理并不是特别好,所以一般我们需要对请求和响应做出统一的配置,即设置编码集为UTF-8。这篇文章将会告诉你出现乱码到底是怎样解决的。
方法一:直接在Servlet中配置处理乱码时最直接的方式就是在Servlet中对请求和响应进行配置。具体配置如下:
//设置请求编码格式nrequest.setCharacterEncoding("utf-8");n//设置响应的编码格式nresponse.serCharacterEncoding("utf-8");nresponse.setContentType("text/html;charset=utf-8");
这种方式是最简单直接的方法,但是它也存在一个很大的问题。当业务量多起来时,需要为每个Servlet都加上这几行代码,造成了代码冗余。所以需要想办法把这几行代码抽离出来
方法二:使用过滤器处理乱码在介绍这种方法之前先来了解一下什么是过滤器
1、什么是过滤器?
过滤器是介于浏览器和web资源之间的,它的作用是将浏览器发来的请求进行“过滤”后再发送给web资源,然后再把web资源返回的响应“过滤”后再返回给浏览器。它的用处也有很多,处理乱码只是其众多功能之一。
上一张图具体描述一下这个流程吧
2、如何利用过滤器处理乱码
使用过滤器处理乱码,首先得有一个过滤器的类
packagecom.demo.filter;nnimportjavax.servlet.*;nimportjavax.servlet.annotation.WebFilter;nimportjava.io.IOException;nnpublicclassMyFilterimplementsFilter{n@Overridenpublicvoidinit(FilterConfigfilterConfig)throwsServletException{nn}nn@OverridenpublicvoiddoFilter(ServletRequestservletRequest,ServletResponseservletResponse,FilterChainfilterChain)throwsIOException,ServletException{n//统一处理请求和响应的乱码nservletRequest.setCharacterEncoding("utf-8");nservletResponse.setCharacterEncoding("utf-8");nservletResponse.setContentType("text/html;charset=utf-8");n//处理过后放行nfilterChain.doFilter(servletRequest,servletResponse);n}nn@Overridenpublicvoiddestroy(){nn}n}
写好过滤器后有两种方式可以使过滤器发挥其功效,分别是在web.xml中配置标签和使用注解的方式
在web.xml中配置<filter>n<!--ntttttttfilter-class标签用来配置过滤器的位置,格式为包名+类名nfilter-name标签相当于给过滤器起个别名n-->n<filter-name>myFilter</filter-name>n<filter-class>com.demo.filter.MyFilter</filter-class>n</filter>n<filter-mapping>n<!--nfilter-name标签内容要与上边配置的名字相同nurl-pattern标签要拦截的请求名/*表示拦截所有请求n-->n<filter-name>myFilter</filter-name>n<url-pattern>/*</url-pattern>n</filter-mapping>使用注解配置
可以使用注解的方式来配置过滤器,不过如果使用了注解就不要再使用web.xml的配置,二者选一种就好,具体方法为:
//在过滤器类上方加上注解@WebFilter,然后依然通过/*表示拦截所有请求n@WebFilter("/*")npublicclassMyFilterimplementsFilter{nt.....n}
关于中文乱码卡一卡二卡新区无限观看,一招教你如何解决中文乱码的介绍到此结束,希望对大家有所帮助。
还没有评论,来说两句吧...