liling88111
2011-04-11 14:20 浏览 248
已采纳

Servlet接收表单传过来的中文值,再转发时,出现乱码的问题

 

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%  String message = "Hello World!";
    String msg = (String)request.getAttribute("msg");
    if(msg != null && !msg.equals(""))
    {
        message = msg;
    }
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'helloworld.jsp' starting page</title>
  </head>
  
  <body>
    <%=message %>
    <form action="servlet/HelloServlet" method="post">
        <input type="text" name="name"/>
        <input type="submit" value="提交"/> 
    </form>
  </body>
</html>

 

package lee;


import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet {
  public void service(HttpServletRequest request,
            HttpServletResponse response)
            throws IOException{
        String msg = null;
        String name = request.getParameter("name");
        request.setCharacterEncoding("GBK");
        if(name != null && !name.equals(""))
        {
            msg = "Hello " + name;
        }
        request.setAttribute("msg", msg);
        RequestDispatcher rd = request.getRequestDispatcher("/Hello/helloworld.jsp");
        rd.forward(request, response);
        
    }
    
}

小弟是Java web的初学者,今天学习时,写了一个简单的应用来测试servlet的页面转发功能,问题是: 当输入中文时,会出现乱码,不是编码的问题,这个我试过了,请问各位高手这是什么原因呢,怎么改呢?请指点指点,让大家见笑了。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

7条回答 默认 最新

  • 已采纳
    wenchenyang wenchenyang 2011-04-13 08:55

    再试试这个,你看看我的博客把myeclipse的编码方式改下看看行不,如果不行的话那你要不加个过滤器吧,那样还能重用了。

    点赞 评论 复制链接分享
  • ethenjean ethenjean 2011-04-11 14:29

    http://ethen.iteye.com/admin/blogs/797775
    你参考下这个吧,希望对你有帮助!

    点赞 评论 复制链接分享
  • linvar linvar 2011-04-11 15:23

    如果是用tomcat服务器的话,试试修改
    在server.xml的
    或者全部页面,服务器的编码都使用UTF-8,

    点赞 评论 复制链接分享
  • wenchenyang wenchenyang 2011-04-11 15:29

    <%@ page language="java" pageEncoding="UTF-8"%>你把html页面换成jsp页面,jsp页面的顶部有个我上面写的东东,那个是编码方式,utf-8包容所有的类型。

    点赞 评论 复制链接分享
  • wenchenyang wenchenyang 2011-04-11 15:32

    最好用jsp页面因为他上面有编码方式,另外所有页面的pageEncoding必须都是一致的,例如要是utf-8就都是utf-8,要为其他的就都为其他的。

    点赞 评论 复制链接分享
  • wenchenyang wenchenyang 2011-04-11 15:41

    或者你不想吧html页面改成jsp页面,那就在servlet中加上这个也管事,request.setContentType("text/html;charset=utf-8")

    点赞 评论 复制链接分享
  • wenchenyang wenchenyang 2011-04-13 13:08

    解决了吧

    点赞 评论 复制链接分享

相关推荐