




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Netbeans过滤器编程1.什么是过滤器?什么是过滤器?过滤器过滤器的生命周期与web容器相同,当web容器启动时,就会读取应用的web.xml配置文件,如果这里配置了过滤器过滤器,容器就会执行实例化,并调用过滤器过滤器的init方法。之后用户的每一次请求都会执行过滤器过滤器的doFilter方法。当web容器销毁时,就会执行destroy方法,释放资源。过滤器过滤器的执行过程过滤器过滤器看名字就能知道大概的用法,它就像一个筛子,可以筛选特定的数据或请求。执行过程如下图所示 用户在发送请求后,如果该请求满足过滤器过滤器的过滤规则,web容器就会执行过滤器过滤器中的doFilter方法进行特定
2、的操作; 然后通过调用FilterChain.doFilter转交给web容器。web容器执行完成后把资源返回给过滤器过滤器,再展现给用户。简单的过滤器实例:简单的过滤器实例:将将get请求提交的数据重新编码为请求提交的数据重新编码为UTF-8软件:NetBeans IDE8.0.2打开NetBeans IDE8.0.21.首先建立首先建立一个新项目一个新项目2下一步下一步输入项目名称和位置之后点击下一步登录界面 姓名: 复制以下文字到主页index.html里面新建一个success.jsp 复制以下内容到里面登录成功 欢迎!效果如图:我们尝试直接运行 查看效果这是index.html 输入
3、中文之后提交跳转到success.jsp就会出现乱码我们尝试吧get方法改成post方法提交查看一下效果这是index_1.html 输入中文之后提交也出现了乱码可见没有经过过滤器直接提交 ,无论是get还是post方法,即使你所有网页默认都是UTF-8编码,提交的数据只要出现中文,得到的结果还是会乱码我们下面通过新建过滤器来解决这个问题注意:若在新建按钮对应的弹出菜单没看到过滤器,则点击该弹出菜单的“其他”,会出现“过滤器”这一项填写好类名和包名就可以下一步1.点击将过滤器信息添加到web.xml2.点击新建过滤器映射3.我们作用的URL是success.jsp4.我们选择过滤器的分类:RE
4、QUEST代表直接请求FORWARD代表跳转页面这里我们不需要初始化参数 直接完成在EncodingFilter里面增加这句: private String encoding=UTF-8;(UTF-8)代表我们要转换成的格式在dofilter里面增加下面这几句:HttpServletRequest httpReq=(HttpServletRequest) request;if(GET.equalsIgnoreCase(httpReq.getMethod()EncodingHttpServletRequestWrapper wrap=new EncodingHttpServletRequestW
5、rapper(httpReq,encoding);response.setContentType(text/html;charset=+encoding);chain.doFilter(wrap, response);elserequest.setCharacterEncoding(encoding);response.setCharacterEncoding(encoding);chain.doFilter(request, response);代码为:HttpServletRequest httpReq=(HttpServletRequest) request;if(GET.equalsI
6、gnoreCase(httpReq.getMethod()EncodingHttpServletRequestWrapper wrap=new EncodingHttpServletRequestWrapper(httpReq,encoding);response.setContentType(text/html;charset=+encoding);chain.doFilter(wrap, response);elserequest.setCharacterEncoding(encoding);response.setCharacterEncoding(encoding);chain.doF
7、ilter(request, response);该代码的含义为:如果提交的为GET请求(本案例使用的就是GET请求)那么就新建一个EncodingHttpServletRequestWrapper实例把GET默认提交的以ISO8859-1格式编码的数据转换成UTF-8格式编码如果以post方式提交的数据则直接使用:request.setCharacterEncoding(“UTF-8”); response.setCharacterEncoding(“UTF-8”); 就可以把编码转换成UTF-8下面我们介绍一下新建一个EncodingHttpServletRequestWrapper的ja
8、va类来处理GET请求新建一个JAVA类类名为:EncodingHttpServletRequestWrapper复制以下内容到EncodingHttpServletRequestWrapper类里面:package com.filter;import java.io.UnsupportedEncodingException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;public class EncodingHttpServletRequest
9、Wrapper extends HttpServletRequestWrapper private HttpServletRequest request;private String encoding;public EncodingHttpServletRequestWrapper(HttpServletRequest request) super(request);this.request=request; public EncodingHttpServletRequestWrapper(HttpServletRequest request,String encoding) super(re
10、quest);this.request = request;this.encoding = encoding;Overridepublic String getParameter(String name) String value = request.getParameter(name);if (null != value) try / tomcat默认以ISO8859-1处理GET传来的参数。把tomcat上的值用ISO8859-1获取字节流,再转换成UTF-8字符串value = new String(value.getBytes(ISO8859-1), encoding); catch (UnsupportedEncodingException e)e.printStackTrace();return value;如图所示:关键语句为:String value = request.getParameter(name);value = new String(value.getBytes(ISO8859-1), “UTF-8”);这句代表用iso8859-1的编码方式把数据从value取出,然后用utf-8的方式重新编码输出。此时我们可以直接运行index.html查看运行效果输入文字后点击提交(无论get还是post方法效果都是一样的)就会成功把提交信息转成UTF-8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 兴安职业技术学院《西医学基础概论》2023-2024学年第一学期期末试卷
- 2025届安徽省淮南实验中学数学九上期末质量检测试题含解析
- 北京市北京大附属中学2024年数学八上期末学业质量监测试题含解析
- 二零二五版E管材国际知识产权保护合同
- 二零二五年度茶叶研发与技术合作合同
- 二零二五年保健食品区域总经销权转让合同
- 2025版智能穿戴设备购销总合同
- 二零二五年车辆租赁及用户隐私保护合同
- 二零二五年IT行业程序员保密合同样本
- 二零二五年度彩钢装饰装修工程合同范本
- 儒家视角下的文明交流与互鉴探讨
- 2025-2030机器人操作系统行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 农家院租赁合同8篇
- 矿物加工余热发电技术-全面剖析
- 2025时政试题及答案(100题)
- GB/T 45365-2025纺织品保湿效果的测定蒸发热板测微气候法
- 医院人力资源部门年终总结
- 急流救援IRB培训一(水域救援基础理论、艇操、船外机安装)
- 2025年宁波农商发展集团限公司招聘高频重点提升(共500题)附带答案详解
- 2024-2030年中国独立学院行业转型挑战分析发展规划研究报告
- 历年全国普通话考试真题50套
评论
0/150
提交评论