大家都知道表单数据通过post 方式提交时,只要在页面的前面设置
<%
request.setCharacterEncoding("GBK");
%>就可以了
但是如果用get提交的话,在提交到目标页面中通过取得参数之后,还需要用一个专门转换字符编码的方法处理
如changeTOGBK()之类的方法处理才行,如何写一个过滤器,使他通过对request和response的请求数据进行自动字符编码的转换呢?
<%
request.setCharacterEncoding("GBK");
%>就可以了
但是如果用get提交的话,在提交到目标页面中通过取得参数之后,还需要用一个专门转换字符编码的方法处理
如changeTOGBK()之类的方法处理才行,如何写一个过滤器,使他通过对request和response的请求数据进行自动字符编码的转换呢?
楼主【renwangxing】截止到2008-07-10 16:03:22的历史汇总数据(不包括此帖):
发帖的总数量:56 发帖的总分数:2900 每贴平均分数:51
回帖的总数量:64 得分贴总数量:4 回帖的得分率:6%
结贴的总数量:35 结贴的总分数:2480
无满意结贴数:0 无满意结贴分:0
未结的帖子数:21 未结的总分数:420
结贴的百分比:62.50 % 结分的百分比:85.52 %
无满意结贴率:0.00 % 无满意结分率:0.00 %
楼主加油
xml 代码 1. <filter>
2. <filter-name>Filter User</filter-name>
3. <filter-class>cn.lingqi.filter.LogonFilter</filter-class>
4. <init-param>
5. <param-name>encoding</param-name>
6. <param-value>gb2312</param-value>
7. </init-param>
8. </filter>
9. <!-- filter-mapping>
10. <filter-name>Set Character Encoding</filter-name>
11. <url-pattern>/servlet/*</url-pattern>
12. </filter-mapping-->
13. <filter-mapping>
14. <filter-name>Filter User</filter-name>
15. <url-pattern>/cggl/list_vender.jsp</url-pattern>
16. </filter-mapping> 二。filter类使用举例
java 代码 1. package cn.lingqi.filter;
2.
3. import java.io.IOException;
4. import java.io.PrintWriter;
5.
6. import javax.servlet.Filter;
7. import javax.servlet.FilterChain;
8. import javax.servlet.FilterConfig;
9. import javax.servlet.ServletException;
10. import javax.servlet.ServletRequest;
11. import javax.servlet.ServletResponse;
12. //用户登陆筛选器
13. public class LogonFilter implements Filter{
14. protected FilterConfig filterConfig = null;
15. protected String encoding = null;
16. public void destroy() {
17. // TODO Auto-generated method stub
18.
19. }
20.
21. public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
22. response.setContentType("text/html;charset=gb2312");
23. PrintWriter out = response.getWriter();
24. if ((request.getCharacterEncoding() == null)) {
25. String encoding = selectEncoding(request);
26. if (encoding != null)
27. request.setCharacterEncoding(encoding);
28. }
29. out.println("<script>alert('test filter');</script>");
30. chain.doFilter(request, response);
31.
32. }
33.
34. public void init(FilterConfig filterConfig) throws ServletException {
35. this.filterConfig = filterConfig;
36. this.encoding = filterConfig.getInitParameter("encoding");
37. }
38.
39. protected String selectEncoding(ServletRequest request) {
40.
41. return (this.encoding);
42.
43. }
44. }
45.