jsp 表单post提交数据乱码 ,继续无限崩溃中。。。 求解。。。

漂亮的石头 2011-08-11 09:59:27
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">
<!-- 字符过滤器-->
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.pro.filter.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>*.act</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>*.html</url-pattern>
</filter-mapping>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>


EncodingFilter.java

package com.pro.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;
public class EncodingFilter implements Filter {
private FilterConfig filterConfig = null;
public void init(FilterConfig fc) throws ServletException {
this.filterConfig = fc;
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {

String encoding = filterConfig.getInitParameter("encoding");
req.setCharacterEncoding(encoding);
res.setCharacterEncoding(encoding);
res.setContentType("text/html;charset=" + encoding);
System.err.println("encoding"+encoding);
System.err.println(req.getCharacterEncoding());
System.err.println(res.getCharacterEncoding());
System.err.println(res.getContentType());
chain.doFilter(req, res);
}
public void destroy() {
this.filterConfig = null;
}
}


index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<form action="test.jsp" method="get">
<input type="text" name="message" />
<input type="submit">
</form>



test.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%=request.getParameter("message") %>

index.jsp 和test.jsp 我 只粘了关键代码。

提交数据中文总是乱码。。。 无限崩溃中。。。Tomcat 5.5 和6.0 都试过了。 配置文件 service.xml 中的配置也更改过。也不行。 myeclispe 版本是8.5 的。 暂未使用struts 或hibernate 又或spring 等框架。 只是简单创建了一个工程 添加了过滤器,修改了web.xml 。写了两个jsp 页面。 乱码无线循环中。。。

http://topic.csdn.net/u/20110810/21/bb4660e1-37ea-47d6-aca7-2b3029ce7681.html 这篇帖子中的回答仍没解决问题。
求解。。。 在线等。。。。 要是闲分少。 可以再开帖。。。

...全文
139 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
llflilongfei 2011-11-03
  • 打赏
  • 举报
回复
我和楼主一样,让我整了一天,String name = new String(request.getParameter("name ").getBytes("iso8859-1"),"gb2312"))
这种方法也试过了还是不行,,我没有使用过滤器,
最后看来这个方法,在Struts配置文件<Struts></Struts>中加入<constant name="struts.i18n.encoding" value="gbk" />,就能正常显示了!
huangbx_ 2011-08-12
  • 打赏
  • 举报
回复
web.xml配置过滤器的问题应该!
五哥 2011-08-11
  • 打赏
  • 举报
回复
<%

String msg = request.getParameter("message") ;
msg = new String(msg.getBytes("ISO-8859-1"),"GBK")

%>

<%=msg %>


yuanyuan0007 2011-08-11
  • 打赏
  • 举报
回复
你把所报的错误帖出来看看呀。
漂亮的石头 2011-08-11
  • 打赏
  • 举报
回复
拜托。 我是找过了。 没解决。。。。
五哥 2011-08-11
  • 打赏
  • 举报
回复
我觉得lz应该google baidu一下 ,jsp 乱码问题 ,印象更深刻 ,如果只是别人回答 ,即使解决,还是稀里糊涂的

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧