SSH中常用的乱码解决方案
1.继承ActionServlet类
public class MyActionServlet extends ActionServlet {
@Override
protected void process(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {
request.setCharacterEncoding("gbk");
response.setCharacterEncoding("gbk");
super.process(request, response);
}
}
web.xml中配置
<servlet-class>com.sugang.web.MyActionServlet</servlet-class>
2.过滤器
实现javax.servlet.Filter接口
如下:
public class EncodingFilter implements Filter {
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("gbk");
response.setCharacterEncoding("gbk");
chain.doFilter(request, response);
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
web.xml中配置
<!-- EncodingFilter -->
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.sugang.web.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3.struts中配置controller
新建类:
import org.apache.struts.action.RequestProcessor
public class EncodingController extends RequestProcessor {
@Override
public void process(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
request.setCharacterEncoding("gbk");
response.setCharacterEncoding("gbk");
super.process(request, response);
}
}
在struts_config.xml中加入
<controller processorClass="包名.类名" />
(此种方法有局限,因为struts配置文件中只能有一个<controller/>配置)