当输入中文用户名是,无法验证通过,获取username值,打印出来是????,求高手解析!!!我已经在tomcat5.0中设置了URIEncoding="GBK"。。网上的说法!!
<Connector
port="8080"
maxThreads="150"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
redirectPort="8443"
acceptCount="100"
debug="0"
connectionTimeout="20000"
disableUploadTimeout="true"
URIEncoding="GBK"
/>
验证代码如下:
public void doGet(HttpServletRequest req,HttpServletResponse res){
try {
res.setContentType("text/html;charset=UTF-8");
req.setCharacterEncoding("UTF-8");
PrintWriter pw=res.getWriter();
String u=req.getParameter("username");
System.out.println (u);
String p=req.getParameter("passwd");
UBC ubc=new UBC();
if(ubc.check(u,p)){
String keep=req.getParameter("keep");
if(keep!=null){
Cookie name=new Cookie("name",u);
Cookie pass=new Cookie("pass",p);
name.setMaxAge(3600*24*14);
pass.setMaxAge(3600*24*14);
res.addCookie(name);
res.addCookie(pass);
System.out.println (name);
}
HttpSession hs=req.getSession(true);
hs.setMaxInactiveInterval(60);
hs.setAttribute("pass",u);
String kk=this.getServletContext().getAttribute("times").toString();
this.getServletContext().setAttribute("times",(Integer.parseInt(kk)+1)+"");
res.sendRedirect("MAIN");
}
else{
res.sendRedirect("LG");
}
}
catch (Exception ex) {
ex.printStackTrace();
}
}其中System.out.println (u);后台打印出来是???
求解决此中文输入验证的方法!!!!
。在线等!!!!!
1.检查页面的编码2.为web应用增加一个filter,这个filter主要是转码的工作,从iso-8859-1转到跟你的页面的编码一样。具体的代码可以上google搜索3.设置response的输出编码(如果要输出到页面的话)