meng_taiqian 2012-07-14 16:44
浏览 251
已采纳

关于JSP 、 Servlet中文乱码问题, 方法差不多试完了 还是不行- -!

JSP页面1:

list=(List)request.getAttribute("operatorlist"); %>
用户名 密码 等级 操作
修改用户   删除用户
添加用户

xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxxxxxxx xxxxxxxxxxxxx
GetOneUserServlet:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
//response.setCharacterEncoding("utf-8");
OperatorService operatorService=new OperatorService();
System.out.println(request.getParameter("name"));
Operator operator=operatorService.findOne(request.getParameter("name"));
//request.getSession().putValue("updateoperator", operator);
//request.getSession().setAttribute("updateoperator", operator);
if (operator==null) {
System.out.println("operator==null");
}else {
System.out.println("XXXXXXXXXXXXXXXXXXXXXXXXXXX");
}
request.setAttribute("updateoperator", operator);
request.getRequestDispatcher("updateOperator.jsp").forward(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

doGet(request, response);

}如果修改的是JSP页面1中name为中文的记录在这里面的到的是乱码
xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxx
JSP页面2:

用  户名:
密    码:
取消

xxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
这个页面有时也会出现乱码- -!

  • 写回答

9条回答 默认 最新

  • witcheryne 2012-07-15 18:11
    关注
    1. JSP 页面需要包含编码只定:
      <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
      如果是html页面, 需要添加metadate:

    2. 确保文件保存的格式是UTF-8 编码:
      Eclipse 右键属性能看到

    下来时GET和POST提交:
    1. GET 提交需要配置tomcat/config/server.xml中的connector:
    connectionTimeout="20000"
    redirectPort="8443" URIEncoding="UTF-8"/>

    1. POST 提交: 需要添加一个Encoding的Filter: [code="java"]

    public class EncodingFilter implements Filter {

    protected String encoding = "UTF-8";
    
    
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {        
    
        request.setCharacterEncoding(encoding);
        response.setCharacterEncoding(encoding);
    
        chain.doFilter(request, response);    
    }
    
    public void init(FilterConfig filterConfig) throws ServletException {       
        this.encoding = filterConfig.getInitParameter("encoding");   
    }
    
    public void destroy() {
        encoding = null;
    }
    

    }
    [/code]

    Web.xml配置:

    [code="xml"]

    SetCharacterEncoding
    cn.com.dayang.common.web.EncodingFilter

    encoding
    UTF-8



    SetCharacterEncoding
    *

    [/code]

    关于Eclipse输出乱码:
    Win系统可能存在这个问题, 检查一下eclipse的console输出是不是采用的GBK编码.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?

悬赏问题

  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办