jsp form post 提交乱码
整个项目采用的UTF-8编码form用get提交正常post提交到tomcate时就是乱码了jsp页面保存为UTF-8<%@pagelanguage="java"cont...
整个项目采用的UTF-8编码 form用get提交正常 post提交到tomcate时就是乱码了
jsp 页面保存为UTF-8
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<form name="recAddrForm" action="cosmos.slet?" method="post">..又带有中文的输入...</form>无插件
tomcat
<Connector port="8080"...URIEncoding="UTF-8"/>
<Connector port="8009" ... URIEncoding="UTF-8"/>
web.xml
filter 设置编码为UTF-8
<filter>
<filter-name>encoding</filter-name>
<filter-class>com.microbrain.cosmos.web.filters.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
顺便问下这与apache有关系么 展开
jsp 页面保存为UTF-8
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<form name="recAddrForm" action="cosmos.slet?" method="post">..又带有中文的输入...</form>无插件
tomcat
<Connector port="8080"...URIEncoding="UTF-8"/>
<Connector port="8009" ... URIEncoding="UTF-8"/>
web.xml
filter 设置编码为UTF-8
<filter>
<filter-name>encoding</filter-name>
<filter-class>com.microbrain.cosmos.web.filters.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
顺便问下这与apache有关系么 展开
展开全部
wjjcml1982 - 助理 二级说的对 照他那样改 还有一个办法
就是像 kalier - 见习魔法师 三级 写个过滤器
package com.common.web;
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;
/**
* 过滤器 处理乱码
* 杨悦 2009.01.20
* @author yy
*
*/
public class CharFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("gbk");
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
}
}
然后在web.xml加下配置:
<!--
在这里声明一个过滤器 为他指定名字为charFilter 指定的类是
com.common.web.CharFilter
-->
<filter>
<filter-name>charFilter</filter-name>
<filter-class>com.common.web.CharFilter</filter-class>
</filter>
<!--
在这里设置上面声明的过滤器的过滤的范围
filter-name 过滤器的名字 就是声明的那个
url-pattern 范围 /*是所有
-->
<filter-mapping>
<filter-name>charFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这样就不怕了
另外 过滤器还可以查看当前用户登陆状况 Session 是否存在等 具体的可以在过滤器那个类中改 如果不符合条件自动跳转到指定页 希望对你有帮助
就是像 kalier - 见习魔法师 三级 写个过滤器
package com.common.web;
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;
/**
* 过滤器 处理乱码
* 杨悦 2009.01.20
* @author yy
*
*/
public class CharFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("gbk");
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
}
}
然后在web.xml加下配置:
<!--
在这里声明一个过滤器 为他指定名字为charFilter 指定的类是
com.common.web.CharFilter
-->
<filter>
<filter-name>charFilter</filter-name>
<filter-class>com.common.web.CharFilter</filter-class>
</filter>
<!--
在这里设置上面声明的过滤器的过滤的范围
filter-name 过滤器的名字 就是声明的那个
url-pattern 范围 /*是所有
-->
<filter-mapping>
<filter-name>charFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这样就不怕了
另外 过滤器还可以查看当前用户登陆状况 Session 是否存在等 具体的可以在过滤器那个类中改 如果不符合条件自动跳转到指定页 希望对你有帮助
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-12-16 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
转码可以在页面中或是sevlet以及过滤都可以解决的,下面以页面和servlet为例:
方法一:设置 request 和 response 的编码 [ 页面编码必须为 u8 ]
request.setCharacterEncoding("UTF-8");//传值编码
response.setContentType("text/html;charset=UTF-8");//设置传输编码
方法二:
String str1=传来的数据。
String ss=new String(str1.getBytes("ISO-8859-1"),"utf-8"); //转码UTF8
方法一:设置 request 和 response 的编码 [ 页面编码必须为 u8 ]
request.setCharacterEncoding("UTF-8");//传值编码
response.setContentType("text/html;charset=UTF-8");//设置传输编码
方法二:
String str1=传来的数据。
String ss=new String(str1.getBytes("ISO-8859-1"),"utf-8"); //转码UTF8
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1) 更改 D:\Tomcat\conf\server.xml,指定浏览器的编码格式为“简体中文”:
方法是找到 server.xml 中的
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='GBK' />
标记,粗体字是我添加的。
可以这样验证你的更改是否成功:在更改前,在你出现乱码的页面的IE浏览器,点击菜单“查看|编码”,会发现“西欧(ISO)”处于选中状态。而更改后,点击菜单“查看|编码”,会发现“简体中文(GB2312)”处于选中状态。
b)更该 Java 程序,我的程序是这样的:
public class ThreeParams extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html; charset=GBK");
...
}
}
方法是找到 server.xml 中的
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='GBK' />
标记,粗体字是我添加的。
可以这样验证你的更改是否成功:在更改前,在你出现乱码的页面的IE浏览器,点击菜单“查看|编码”,会发现“西欧(ISO)”处于选中状态。而更改后,点击菜单“查看|编码”,会发现“简体中文(GB2312)”处于选中状态。
b)更该 Java 程序,我的程序是这样的:
public class ThreeParams extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html; charset=GBK");
...
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般get出问题的较多,你却相反,首先乱码的出现根本原因就是发送和接收时使用的编码不一致,你仔细检查一下,页面的编码,和接收用的编码。TOMCAT也可以设置编码的,不过那个主要是用来解决GET请求乱码的,一般POST很少出现乱码的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
写一个fitter来统一编码。 我是手机手打的 希望对您有帮助,有疑问的话我们保持联系。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询