netbeans过滤器编程过程题库.pptVIP

  • 3
  • 0
  • 约4.26千字
  • 约 39页
  • 2017-07-21 发布于湖北
  • 举报
可见没有经过过滤器直接提交 ,无论是get还是post方法,即使你所有网页默认都是UTF-8编码,提交的数据只要出现中文,得到的结果还是会乱码 我们下面通过新建 过滤器来解决这个问题 注意:若在新建按钮对应的弹出菜单没看到过滤器,则点击该弹出菜单的“其他”,会出现“过滤器”这一项 填写好类名和包名就可以下一步 1.点击将过滤器信息添加到web.xml 2.点击新建过滤器映射 3.我们作用的URL是success.jsp 4.我们选择过滤器的分类: REQUEST代表直接请求 FORWARD代表跳转页面 这里我们不需要初始化参数 直接完成 在EncodingFilter里面增加这句: private String encoding=UTF-8; (UTF-8)代表我们要转换成的格式 在dofilter里面增加下面这几句: HttpServletRequest httpReq=(HttpServletRequest) request; if(GET.equalsIgnoreCase(httpReq.getMethod())){ EncodingHttpServletRequestWrapper wrap=new EncodingHttpServletRequestWrapper(httpReq,encoding); response.setContentType(text/html;charset=+encoding); chain.doFilter(wrap, response); }else{ request.setCharacterEncoding(encoding); response.setCharacterEncoding(encoding); chain.doFilter(request, response); } 代码为: HttpServletRequest httpReq=(HttpServletRequest) request; if(GET.equalsIgnoreCase(httpReq.getMethod())){ EncodingHttpServletRequestWrapper wrap=new EncodingHttpServletRequestWrapper(httpReq,encoding); response.setContentType(text/html;charset=+encoding); chain.doFilter(wrap, response); }else{ request.setCharacterEncoding(encoding); response.setCharacterEncoding(encoding); chain.doFilter(request, response); } 该代码的含义为: ①如果提交的为GET请求(本案例使用的就是GET请求) 那么就新建一个EncodingHttpServletRequestWrapper实例 把GET默认提交的以ISO8859-1格式编码的数据转换成UTF-8格式编码 ②如果以post方式提交的数据 则直接使用:request.setCharacterEncoding(“UTF-8”); response.setCharacterEncoding(“UTF-8”); 就可以把编码转换成UTF-8 下面我们介绍一下新建一个EncodingHttpServletRequestWrapper的java类来处理GET请求 新建一个JAVA类 类名为:EncodingHttpServletRequestWrapper 复制以下内容到EncodingHttpServletRequestWrapper类里面: package com.filter; import java.io.UnsupportedEncodingException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; public class EncodingHttpServletRequestWrapper extends HttpServletRequestWrapper { private HttpServletRequest request; private String encoding; public EncodingHttpServletReques

文档评论(0)

1亿VIP精品文档

相关文档