问题描述
<%@ 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的页面转发功能,问题是: 当输入中文时,会出现乱码,不是编码的问题,这个我试过了,请问各位高手这是什么原因呢,怎么改呢?请指点指点,让大家见笑了。 问题补充:我是用的JSP页面,且设置了编码,你说的第二种方法request.setContentType("text/html;charset=utf-8")也行不通,因为这个是servlet接收了前端的中文字符后,再转发回原页面出现的乱码是一种新情况。<div class="quote_title">wenchenyangailiuyan 写道</div><div class="quote_div"><%@ page language="java" pageEncoding="UTF-8"%>你把html页面换成jsp页面,jsp页面的顶部有个我上面写的东东,那个是编码方式,utf-8包容所有的类型。<br /></div><br />
解决方案
再试试这个,你看看我的博客把myeclipse的编码方式改下看看行不,如果不行的话那你要不加个过滤器吧,那样还能重用了。
解决方案二:
解决了吧
解决方案三:
或者你不想吧html页面改成jsp页面,那就在servlet中加上这个也管事,request.setContentType("text/html;charset=utf-8")
解决方案四:
最好用jsp页面因为他上面有编码方式,另外所有页面的pageEncoding必须都是一致的,例如要是utf-8就都是utf-8,要为其他的就都为其他的。
解决方案五:
<%@ page language="java" pageEncoding="UTF-8"%>你把html页面换成jsp页面,jsp页面的顶部有个我上面写的东东,那个是编码方式,utf-8包容所有的类型。
解决方案六:
如果是用tomcat服务器的话,试试修改在server.xml的<Connector port="8080" URIEncoding="GBK" ....> 或者全部页面,服务器的编码都使用UTF-8,
解决方案七:
http://ethen.iteye.com/admin/blogs/797775你参考下这个吧,希望对你有帮助!