Web开发中的过滤器设计 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 网站建设 >

Web开发中的过滤器设计

发表时间:2007-4-25

发布人:葵宇科技

浏览次数:33

五一快到,办公室天天有人讨论去哪去哪玩的,明天公司又集体组织在岛内玩一天,现在都没什么心思工作了,还好任务不多,老总出差不在,可以放肆一下,呵呵.. 翻了翻以前学习web开发时留下的学习文档,感觉有些拿出来复习复习还是很有用的。下面是一篇有关web.xml中过滤器设计的学习体会,希望对大家有些帮助。 Web开发中的过滤器设计 在web.xml文件中,过滤器的声明如下: Element : filter Content Model : (((description*, display-name*, icon*)), filter-name, filter- class, init-param*) 其中的filter-name在引用该filter时就会用到。 init-param 可以有多个,用来对该过滤器定义的参数(通常是全局变量)进行初始化,初始化是在调用该过滤器时发生的。注意的是要真正让其起作用,还需要在该过滤器的init方法内进行调用: this.param = filterConfig.getInitParameter("param");///得到在web.xml中配置的编码 为了让过滤器工作,只声明是不够的,我们还需要确定该Filter的作用域: Element : filter-mapping Content Model : (filter-name, (url-pattern | servlet-name), dispatcher*) filter-name 对应filter声明的filter-name url-pattern 为url地址映射,任何url字符串含有该url-pattern的定义将被映射(或者说,重定向)到filter-name。 servlet-name 与url-pattern类似,一般的url-pattern定义的是jsp页面的重定向,而servlet-name定义的是对servlet类的引用。注意的是servlet在大多数的应用服务器的web容器内具有一个缺省的url路径: http://host/webAppPrefix/servlet/packageName.ServletName 如果直接在页面调用servlet会暴露servlet的真实地址,并且不利于定制url,也就需要我们对其进行一定的设置。另外,如果使用缺省的url是不能从init(jsp对应于jspinit)方法读取初始化参数的。为避免误用缺省的url造成不能初始化参数的问题,可以使用下面两种方法: 1、 在每个Web应用中重新映射/servlet/模式 也就是重定向servlet 2、 全局关闭激活器servlet 这个在某些应用服务器是不支持的。它需要对服务器的web.xml(不是项目中的web.xml)进行配置。 过滤器对请求分发器( Request Dispatcher)的控制 Servlet 2.4版的Web程序增强了filter和request dispatcher的配合功能,这样过滤器可以根据请求分发器(request dispatcher)所使用的方法有条件地对Web请求进行过滤。 在web.xml中,Dispatcher的有4个值可以选择:REQUEST、FORWARD、INCLUDE、ERROR。缺省或不设置时为REQUEST 要注意的是,Dispatcher可以对传进来的请求(request)起作用,也可以对传递出去的请求(response)进行控制。 设定元素的过滤器   ·只有当request直接来自客户(来自客户端的请求),过滤器才生效,对应为REQUEST条件。   ·只有当request被一个请求分发器使用forward()方法转到一个Web构件时(采用或定义),对应称为FORWARD条件。   ·类似地,只有当request被一个请求分发器使用include()方法转到一个Web构件时(采用或定义),对应称为INCLUDE条件。    ·只有当request被一个请求分发器使用“错误信息页”机制方法转到一个Web构件时,对应称为ERROR条件。

相关案例查看更多