这是 你的eclipse里面的设置的不对按ALT+Enter 把里面的ResourceText file encoding 有个编码,把编码改成gbk
解决方案 »
- 求助:ORA-22922: 不存在的 LOB 值,这个问题怎么解决!!!
- 求救:android如何客户端访问c#做的webservice方法
- 请问怎么博得面试官德青睐呢?怎么总结自己的项目才有深度呢?
- 我适合做JAVA吗?
- 请问建立soap测试环境,需要安装哪些软件?我现在已经有jdk5,tomcat5.5并且都可以正常运行
- 请给一个TOMCAT的下载地址啊,谢谢!
- log4j
- 乞求帮助,顺便祝愿大家国庆快乐~~~~~~~~~~~
- websphere的安装问题
- jetty服务器报异常:thread number upper limit of normal,跪求大神指导
- My want help
- 我用STRUTS的时候,表单提交以后,URL由http://localhost/*.do 变成了 http://*.do 。请大侠们帮助
如果是参数的话,可以用new String(request.getParameter("test").getBytes("ISO-8859-1"),"GB2312");
2楼的方法不适合传递较多的值啊!
<Connector port="8080" protocol="HTTP/1.1"
maxThreads="150" connectionTimeout="20000"
redirectPort="8443" />里面加个URIEncoding="GBK"
import java.util.Enumeration;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 FilterEncoding implements Filter{
protected String encoding = null;
protected FilterConfig filterConfig = null; //配置信息
protected boolean ignore = true; // 是否编码
/**
* 初始化配置
*/
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig; //配置信息
this.encoding = filterConfig.getInitParameter("encoding");//获的GBK编码
String value = filterConfig.getInitParameter("ignore"); //是否为真
if (value == null) { //等于空 也为真
this.ignore = true;
} else if (value.equalsIgnoreCase("true")) {//等于true 也为真
this.ignore = true;
} else if (value.equalsIgnoreCase("yes")) { //等于YES 也为真
this.ignore = true;
} else {
this.ignore = false; //否则为假
}
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// TODO 自动生成方法存根
// 判断编码为真或者编码为空 为空调用 selectEncoding()方法 返回 GBK编码
if (ignore || (request.getCharacterEncoding() == null)) {
String encoding = selectEncoding(request);
if (encoding != null) { // 否则设置为 GBK编码
response.setCharacterEncoding(encoding);
request.setCharacterEncoding(encoding);
}
}
Enumeration<String> enumeration = ((HttpServletRequest)request).getParameterNames();
if(((HttpServletRequest)request).getMethod().equalsIgnoreCase("get")){
while(enumeration.hasMoreElements()){
String name=enumeration.nextElement().toString();
//获得他的编码方式 改为GBK 默认的编码都为ISO-8859-1
String ok=new String(request.getParameter(name)
.getBytes("iso-8859-1"),"GBK");
System.out.println(name+"-----"+ok);
request.setAttribute(name,ok);
}
}
chain.doFilter(request, response);
}
/**
* @param request 该方法设置 请求的编码为 GBK
* @return 返回编码后 字符 ( GBK )
*/
protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}
public void destroy() {
this.encoding = null; //释放资源
this.filterConfig = null;
}
}
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>opensession</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
这个是过滤器web的配置文件
其实方法很多的