求JSP通用转码方式 有没有什么办法能够解决JSP Servlet中 doPost 和doGet中的中文编码问题!能够适用这两种请求方式的!使其在页面显示中文时能够正常!!!!谢谢各位老大分享!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最简单的就是在JSP上面写把编码格式设置为pageEncoding="UTF-8"好像在servlet里面也能设置编码格式吧,好像是‘request.setPageEncoding="UTF-8"’???还有方法就是写个过滤器package edu.aptech.accp.filter;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.HttpServlet;import javax.servlet.http.HttpServletRequest;public class EncodingFilter extends HttpServlet implements Filter { /** * 设置编码格式 */ public void doFilter(ServletRequest req, ServletResponse res, FilterChain fc) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest)req; if(request.getMethod().equalsIgnoreCase("post")){ request.setCharacterEncoding("UTF-8"); } fc.doFilter(request, res); } /** * 此方法不用管,初始化用的 */ public void init(FilterConfig filterConfig) throws ServletException { // TODO Auto-generated method stub }}然后再web.xml里面配置一下就可以了<filter> <filter-name>encodingFilter</filter-name> <filter-class>edu.aptech.accp.filter.EncodingFilter</filter-class> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping>推荐最后一种方法 用过滤器就好 具体见楼上ps:不过有时utf-8 中文还是会乱码 建议所有页面编码gb2312 过滤器gb2312 关键是编码要统一,自己做项目的话,一般情况下用UTF-8是没问题的。 我的意思是 从servlet中向jsp页面传入中文 jsp页面中不显示乱码用ISO-8859-1转换成中文doGet 和doPost 其中doPost是无法通过转码将中文传入jsp页面中的!怎么弄? yourString=new String(yourString.getBytes("ISO8859_1"), "gb2312"); jsp到后台用这种,servlet到JSP会出现乱码那就只能是编码问题了 response.setContentType("text/html;charset=gbk"); <%@page contentType="text/html,Charset=gb2312"%>Charset要大写C 用过滤器就好有时utf-8 中文还是会乱码 所有页面编码gbK 过滤器gbK public class EncodingFilter implements Filter { @Override public void destroy() { // TODO Auto-generated method stub } @Override public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chian) throws IOException, ServletException { HttpServletRequest hreq = (HttpServletRequest)req; HttpServletResponse hresp = (HttpServletResponse)resp; hreq.setCharacterEncoding("gbk"); chian.doFilter(req , resp); hresp.setContentType("text/html;charset=gbk"); } @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub }}但是这种方法并不能解决GET提交的编码问题,对于GET提交是与服务器相关的,有的服务器不存在问题,但TOMCAT是有问题的,解决方法是String param = new String(str.getBytes("iso-8859-1"),"gbk"); 有没有办法解决既能过滤doPost和doGet请求的方法呢? 可以改TOMCAT 配置文件server.xml 加上characterEncoding=gbk,具体到网上查一下。 像图中表格在线填写要怎么做出这种表格?求思路 Java Web编程宝典十年典藏版 第7章 jquery中获取不到<html:form>中文本框的值,怎样解决 spring的配置问题 ajax responseText返回的是整个网页的HTML代码 如何让日期字段的空纪录不显示null 着急万分,倾家荡产求解决一个javascrip小问题!在线等!! 关于列表框动态增删的问题``用JSP做的`` 求教个myeclipse的部署问题 关于Bean数据库操作时建立连接的问题(简单)=》 hibernate 3.2支持条件查询的having子句?3.5呢? 抢分了,在配置文件中配置页面兼容ie8
好像在servlet里面也能设置编码格式吧,好像是‘request.setPageEncoding="UTF-8"’???
还有方法就是写个过滤器
package edu.aptech.accp.filter;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.HttpServlet;
import javax.servlet.http.HttpServletRequest;
public class EncodingFilter extends HttpServlet implements Filter { /**
* 设置编码格式
*/ public void doFilter(ServletRequest req, ServletResponse res,
FilterChain fc) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)req;
if(request.getMethod().equalsIgnoreCase("post")){
request.setCharacterEncoding("UTF-8");
}
fc.doFilter(request, res);
}
/**
* 此方法不用管,初始化用的
*/
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
}}然后再web.xml里面配置一下就可以了
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>edu.aptech.accp.filter.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>推荐最后一种方法
ps:不过有时utf-8 中文还是会乱码 建议所有页面编码gb2312 过滤器gb2312
用ISO-8859-1转换成中文
doGet 和doPost 其中doPost是无法通过转码将中文传入jsp页面中的!
怎么弄?
有时utf-8 中文还是会乱码 所有页面编码gbK 过滤器gbK
public void destroy() {
// TODO Auto-generated method stub } @Override
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chian) throws IOException, ServletException {
HttpServletRequest hreq = (HttpServletRequest)req;
HttpServletResponse hresp = (HttpServletResponse)resp;
hreq.setCharacterEncoding("gbk");
chian.doFilter(req , resp);
hresp.setContentType("text/html;charset=gbk");
} @Override
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub }
}但是这种方法并不能解决GET提交的编码问题,对于GET提交是与服务器相关的,有的服务器不存在问题,但TOMCAT是有问题的,解决方法是
String param = new String(str.getBytes("iso-8859-1"),"gbk");