导航:首页 > 净水问答 > java过滤器解决get乱码

java过滤器解决get乱码

发布时间:2021-01-02 00:42:41

❶ 关于java中 get提交方式的乱码问题。

通常浏览器是用iso-8859-1编码传输信息的。
而也要看你在页面那边是版设置什么编权码的,假如是utf-8。你编码是用utf-8,解码是用iso-8859-1,那么就像你自己写的那个一样,那肯定会乱码的。
第一个是将接收到的数据,用iso8859-1解码,再用utf-8编码,那就解决了乱码问题了

❷ java 字符串中乱码过滤

new String(str.getBytes(),"GBK");
用这方法,把乱码正确显示。当然编码要自己设

❸ Java 乱码问题 怎样写一个过滤器文件来处理乱码问题啊

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;
import javax.servlet.http.HttpServletRequest;public class PageEncodeFilter implements Filter { private FilterConfig fConfig;
private String encode;
public void destroy() {
this.fConfig = null;
this.encode = null;
} public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain fc) throws IOException, ServletException {
HttpServletRequest hsr = (HttpServletRequest)arg0;
hsr.setCharacterEncoding(this.encode);
fc.doFilter(arg0, arg1);
} public void init(FilterConfig fConfig) throws ServletException {
this.fConfig = fConfig;
this.encode = this.fConfig.getInitParameter("encode");
}}然后到web.xml 下配置 <filter>
<filter-name>PageEncodeFilter</filter-name>
<filter-class>com.popedom.util.PageEncodeFilter</filter-class>
<init-param>
<param-name>encode</param-name>
<param-value>gb2312</param-value>
</init-param>
</filter>

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

❹ java get方式请求中文乱码求解决

❺ 关于java过滤器解决中文乱码的

因为你袭遗漏了重要的一步。正确的方法如下:

if(encoding!=null){
//设置request字符编码
request.setCharacterEncoding(encoding);
//设置response字符编码
response.setContentType("text/html;charset="+encoding);
response.setCharacterEncoding(encoding);
}
//传递给下一个过滤器
chain.doFilter(request,response);

❻ 浏览器get请求到java后台的值是乱码

编码问题首先检查编码和解码是否一致。看下你的jsp是否编码设置了utf-8,默认是iso-8859-1,
然后就是解码的时候的编码,在你的servlet或者controller中检查request和response是否设置了编码,一般是request.setCharacterEncoding("utf-8");response.set...
如果都设置了的话,post发送数据应该是不会乱码的。get发送数据乱码,是因为你的jsp中设置的编码utf-8没有生效在get请求下,解决方案两种:1、修改服务器中的默认编码,
在tomcat安装目录下的conf/server.xml中,有如下的配置:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>可以设置端口

这里呢,也可以设置另外一个跟上述编码问题有关的参数信息:URIEncoding,该配置决定了使用get请求通过浏览器地址栏访问tomcat时的编码方式,默认的编码方式使ISO8859-1,这一点我们可以从官网文档(https://tomcat.apache.org/tomcat-7.0-doc/config/http.html) 获悉:
URIEncoding:This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, ISO-8859-1 will be used.
知道了这点,接下来就简单了,我们可以这样配置,则上述代码中,就不需要再从ISO8859-1转为UTF-8了:
URIEncoding="UTF-8"

就是改成这样: <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
即可。

或者使用后台手动进行解码:
String s=new String(str.getbyte("iso-8859-1"),"utf-8");
先解码后编码。
如果嫌每次这样麻烦,可以写过滤器拦截你的get清秀将request中的parameter转换编码

❼ java get方式中文乱码

get方式提交的参数编码,只支持iso8859-1编码。
因此,如果里面有中文。
在后台专就需要转换编码,如下
String zhongwen = request.getParameter("zhongwen");
zhongwen = new String(zhongwen.getBytes("iso8859-1"),"GBK");
前提是属你页面编码就是GBK,如果是utf-8,那上面那句代码后面就改成utf-8

❽ java filter 过滤器中文乱码 怎么解决啊

1、首先编写一个Java类的filter代码。操作步骤:
(1)在myeclipse中新建一个java类,

(2)单击“Add”按钮,在弹出来的对话框中“选择接口”文本框中输入Filter,
并选择匹配好的类型javax.servlet
(3)单击“OK”按钮返回"New Java Class"对话,然后单击“Finish”按钮,就可以看到创建的过滤器框架:
过滤器类:Encoding.java,代码如下:
package com;
import java.io.IOException;
import javax.servlet.*;
public class Encoding implements Filter {
protected String encoding=null;
protected FilterConfig config;
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if(request.getCharacterEncoding()==null){
//得倒指定的编码
String encode=getEncoding();
if(encode!=null){
//设置request的编码
request.setCharacterEncoding(encode);
response.setCharacterEncoding(encode);
}
}
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.config=filterConfig; //得到web.xml中的配置编码
this.encoding=filterConfig.getInitParameter("Encoding");
}
protected String getEncoding(){
return encoding;

}
}
2、在web.xml文件写入以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<filter> <!-- 控制编码 -->
<filter-name>EncodingFilter</filter-name>
<filter-class>com.Encoding</filter-class>
<init-param> <!-- 初始化参数 -->
<param-name>Encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

❾ JSP编码过滤器,但是Servlet输出还是乱码

别懒,网上多的是。下面给你个常用的,关键要理解原理:
关于contentType 和 pageEncoding 的区别以及JSP中文处理内幕
contentType — 指定的是JSP页最终 Browser(客户端)所见到的网页内容的编码.
就是 Mozilla的 Character encoding, 或者是 IE6的 encoding. 例如 JSPtw Forum 用的contentType就是 Big5.
pageEncoding — 指定JSP编写时所用的编码
如果你的是 WIN98, 或 ME 的NOTEPAD记事本编写JSP, 就一定是常用的是Big5 或 gb2312, 如果是用 WIN2k winXP的NOTEPAD时, SAVE时就可以选择不同的编,码, 包括 ANSI(BIG5/GB2312)或 UTF-8 或 UNIONCODE(估是 UCS 16). 因为 JSP要经过 两次的”编码”:
第一阶段会用 pageEncoding, 第二阶段会用 utf-8 至utf-8, 第三阶段就是由TOMCAT出来的网页, 用的是contentType.
阶段一是 JSPC的 JSP至JAVA(.java)原码的”翻译”, 它会跟据 pageEncoding 的设定读取JSP. 结果是 由指定的pageEncoding(utf-8,Big5,gb2312)的JSP 翻译成统一的utf-8 JAVA原码(.java). 如果pageEncoding设定错了, 或没设定(预设 ISO8859-1), 出来的 在这个阶段 就已是中文乱码.
阶段二是由 JAVAC的JAVA原码至JAVA BYTECODE的编译. 不论JSP的编写时是用(utf-8,Big5,gb2312),经过阶段一的结果全都是utf-8的ENCODING的JAVA原码.JAVAC用 utf-8的ENCODING读取AVA原码, 编译成字符串是 utf-8 ENCODING的二进制码(.class). 这是 JAVA VIRTUAL MACNHINE对常数字符串在 二进制码(JAVA BYTECODE)内表逹的规范.
阶段三是TOMCAT(或其的application container)加载和执行阶段二得来的JAVA二进制码, 输出的结果( 也就是BROWSER(客户端))
见到的. 这时一早隐藏在阶段一和二的参数contentType, 就发挥了功效. (见 阶段一的 ).
response.setContentType(”text/html; charset=utf-8″);
出来的可以是 utf-8, Big5, gb2312, 看的就是JSP ? contentType的设定.
<%@ page session=”false” pageEncoding=”big5″ contentType=”text/html; charset=utf-8″ %>
还有, pageEncoding 和contentType的预设都是 ISO8859-1. 而随便设定了其中一个, 另一个就跟着一样了(TOMCAT4.1.27是如此).但这不是绝对, 看的各自JSPC的处理方式. 而pageEncoding不等于contentType, 更有利亚洲区的文字 CJKV系JSP网页的开发和展示,(例pageEncoding=Big5 不等于 contentType=utf-8).一个简单的解决方法是在包含和被包含文件的开始部分都加上:
<%@ page contentType=”text/html;charset=GB2312″ language=”java” %>
---------------------------------------------------------------
ContentType
ContentType属性指定了MIME类型和JSP页面回应时的字符编码方式。MIME类型的默认值是“text/html”; 字符编码方式的默认值是“ISO-8859-1”. MIME类型和字符编码方式由分号隔开

pageEncoding的内容只是用于jsp输出时的编码,不会作为header发出去的。

pageEncoding 是通知web server jsp的编码。
pageEncoding
在JSP标准的语法中,如果pageEncoding属性存在,那么JSP页面的字符编码方式就由pageEncoding决定,否则就由contentType属性中的charset决定,如果charset也不存在,JSP页面的字符编码方式就采用默认的ISO-8859-1。

❿ java web 乱码过滤器 filter 有什么作用

注意问题:在学习用selvert的过滤器filter处理中文乱码时,在filter配置初始化时用了utf-8处理中文乱码,而在提交的jsp页面回中却用了gbk。虽然两种都可以出来中文乱码,但是却造成了处答理乱码的格式不一致。所以编译出错。

阅读全文

与java过滤器解决get乱码相关的资料

热点内容
绿之韵净水器多少钱 浏览:353
莱克空气净化器怎么拆机 浏览:959
蒸馏的实训报告 浏览:703
创碧净水机是哪里生产的 浏览:390
什么软件能复制饮水机水卡 浏览:272
工业废水总镍显色是什么颜色 浏览:527
冷干机过滤器滤芯等级 浏览:533
水性漆废水cod超标是什么意思 浏览:290
广汽三菱空调滤芯在什么位置 浏览:945
外置过滤桶好还是虹吸好 浏览:578
广东污水处理厂排偷 浏览:248
空调滤芯哪里有个插头是干嘛的 浏览:317
净水机上的纯水水管为什么不出水 浏览:247
蒸馏实验冷凝管漏水 浏览:147
减压蒸馏问题与 浏览:611
楼兰换个空调滤芯多少钱 浏览:136
区分蒸馏水和氯化钠 浏览:884
飞利浦咖啡机hd8824除垢灯亮了 浏览:798
一汽大众迈腾的机油滤芯在哪里 浏览:346
污水管水泥管材质 浏览:808