黑马程序员技术交流社区
标题:
求教关于filter过滤器解决中文乱码问题
[打印本页]
作者:
归☆夜↑『
时间:
2013-5-28 19:12
标题:
求教关于filter过滤器解决中文乱码问题
话说filter可以对工程下所有的资源进行过滤,对数据做些预处理,如编码,可是最近在做strtuts2框架的一个小实验的时候发现filter“罢工”不起作用了,中文乱码不预期地跑出来了,!!这是何解啊??求教各位~~下面贴出有关代码
下面是我提交数据的JSP页面的主要代码
<h2>用户登陆</h2>
<struts:form action="login" method="post">
<struts:textfield name="userName" label="账号"/>
<struts:password name="userPsw" label="密码"/>
<struts:submit value="登陆"/>
</struts:form>
</center>
</body>
</html>
复制代码
下面是我的过滤器filter的代码
package filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class EncodingFilter implements Filter {
public EncodingFilter() {
System.out.println("struts2.0EncodingFilter实例化……");
}
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
System.out.println("struts2.0EncodingFilter过滤动作……");
request.setCharacterEncoding("gb2312");
chain.doFilter(request, response);
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
System.out.println("struts2.0EncodingFilter初始化……");
}
}
复制代码
下面是处理数据的action
package action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private String userName;
private String userPsw;
public String getUserName() {
return this.userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPsw() {
return this.userPsw;
}
public void setUserPsw(String userPsw) {
this.userPsw = userPsw;
}
public String execute() throws Exception {
if(getUserPsw().equals("123")) {//只要密码是123就可以登录成功
return SUCCESS;
}
else return ERROR;
}
}
复制代码
下面是登录陆成功success.jsp页面主要代码
<body>
<center>
<h2>欢迎登陆</h2>
当前用户:<struts:property value="userName"/>
</center>
</body>
复制代码
下面是struts2的配置文件的主要代码
<package name="test" extends="struts-default">
<action name="register" class="action.RegisterAction">
<action name="login" class="action.LoginAction">
<result name="success">/success.jsp</result>
</action>
</package>
复制代码
下面是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">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>filter.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
</web-app>
复制代码
随便输入几个中文字符,密码123
登录成功页面就给我这个了:
欢迎登陆
当前用户:???
我的filter有什么问题呢!!!!!!!!!!!!!?请各位指点!!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2