各位老大为什么我从URL中读取的中文参数总是乱码?
每次用http://localhost:9080/Hello/HelloServlet?你好
这个URL调用,你好被打印出来的时候总是:????
郁闷!
那位高手解释一下!
源程序如下:
import java.io.*;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @version 1.0
* @author
*/
public class HelloServlet extends HttpServlet {
/**
* @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("enter doGet");
try{
resp.setContentType("text/html,charset=GB2312");
PrintWriter out=resp.getWriter();
resp.setStatus(HttpServletResponse.SC_OK);
out.println("<html>");
out.println("<head><title>Hello World</title></head>");
out.println("<body>");
out.println("<H1>Hello World!</H1>");
out.println("<H2>这个服务的调用者是:</H2>");
out.println("<dl>");
Enumeration e=req.getHeaderNames();
while (e.hasMoreElements()){
String name=(String)e.nextElement();
out.println("<dt>"+name+"</dt><dd>"+req.getHeader(name)+"</dd>");
}
out.println("<dt>Request method:</dt><dd>"+req.getMethod()+"<dd>");
out.println("<dt>Translate Request path into:</dt><dd>"+req.getPathTranslated()+"<dd>");
out.println("<dt>Request query string:</dt><dd>"+req.getQueryString()+"<dd>");
System.out.println("这是:"+req.getQueryString());
out.println("</dl>");
out.println("</body></head></html>");
}
catch (IOException e){
System.out.println("HelloServlet doPost方法出现异常!");
}
}
/**
* @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
}
/**
* @see javax.servlet.GenericServlet#void ()
*/
public void init() throws ServletException {
System.out.println("HelloServlet 开始初始化!");
File f= new File(System.getProperty("user.dir"));
f=new File(f.getAbsolutePath());
System.out.println("HelloServlet当前的路径是:"+f);
}
}