表单将中文用户名”小刘“(页面编码已经是utf-8),提交到action里,判断是否存在该用户。
即:public String login() throws Exception {
System.out.println(username);//该处输出到console的也不是乱码
this.context = ActionContext.getContext();
//this.request = (Map)this.context.get("request");
this.session = this.context.getSession();
username = username.trim();
password = password.trim();
//username = new String(username.trim().getBytes("ISO-8859-1"),"utf-8");
//password = new String(password.trim().getBytes("ISO-8859-1"),"utf-8");
if("小刘".equals(username) && "123".equals(password)) {//感觉是这边的问题???
//request.put(username, "admin");
//request.put(password, "123");
session.put("username", "小刘");
session.put("password", "123");
return SUCCESS;
}
return LOGIN;
}若改为英文的用户,执行时正确的。请大家帮忙解决一下
即:public String login() throws Exception {
System.out.println(username);//该处输出到console的也不是乱码
this.context = ActionContext.getContext();
//this.request = (Map)this.context.get("request");
this.session = this.context.getSession();
username = username.trim();
password = password.trim();
//username = new String(username.trim().getBytes("ISO-8859-1"),"utf-8");
//password = new String(password.trim().getBytes("ISO-8859-1"),"utf-8");
if("小刘".equals(username) && "123".equals(password)) {//感觉是这边的问题???
//request.put(username, "admin");
//request.put(password, "123");
session.put("username", "小刘");
session.put("password", "123");
return SUCCESS;
}
return LOGIN;
}若改为英文的用户,执行时正确的。请大家帮忙解决一下
HttpServletRequest req = (HttpServletRequest) request;
req.setCharacterEncoding("UTF-8");//应根据你使用的编码替换UTF-8
filterchain.doFilter(request, response);
}
debug调试看看是哪的问题
response.setCharacterEncoding("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
connectionTimeout="20000"
redirectPort="8443"/> 修改为: <Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="GBK"/>,保证搞定