我在写servlet小程序的时候,遇到一个问题。比方说
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 6189969869246489166L;
public void doPost(HttpServletRequest aHSRequest, HttpServletResponse aHSResponse)
throws ServletException, IOException {
aHSResponse.setContentType("text/html;charset=utf-8");
PrintWriter pW = aHSResponse.getWriter();
pW
.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
pW.println("<HTML>");
pW.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
pW.println(" <BODY>");
aHSRequest.setCharacterEncoding("utf-8");
pW.print(" <h1 align='center'> 注册成功 </h1> ");
pW.println(" <hr color='#3300FF' size='3'> ");
pW.print("您的用户名为:" + aHSRequest.getParameter("UserName")+"<br>");
pW.print("您的密码为:" + aHSRequest.getParameter("Password"));
pW.println(" </BODY>");
pW.println("</HTML>");
pW.flush();
pW.close();
}
}
结果还是出现了乱码。但是把utf-8改成gbk就好了。哪位仁兄来解释下。
我用的是myeclipse。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">
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/servlet/LoginServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>