当前位置: 首页 > news >正文

php网站开发实例教程实验报告wordpress快讯模块

php网站开发实例教程实验报告,wordpress快讯模块,互联网营销有哪些,怎么学做淘宝电商网站一个、总结 简单的说#xff0c;Filter的作用就是拦截(Tomcat的)service#xff08;Request#xff0c;Response#xff09;方法。拿到Request、Response对象进行处理。然后释放控制。继续自己主动流转。其运用的还是“分层”的思想。至于为什么要增加这一层#xff0c;为… 一个、总结   简单的说Filter的作用就是拦截(Tomcat的)serviceRequestResponse方法。拿到Request、Response对象进行处理。然后释放控制。继续自己主动流转。其运用的还是“分层”的思想。   至于为什么要增加这一层为什么要对Request、Response对象进行拦截。个人感觉根本原因是为了对多个server资源Servlet、JSP等的请求、对应进行一些公共的设置。这里强调的是“多个”。假设是一个资源就没有设置Filter的必要由于仅仅须要在这个资源须要的地方之前设置Request、Response就可以。也就是“设置”放到哪里都能够由于非常多请求、响应有非常多共同的设置所以将共同之处抽出来作为一层。就是所谓的Filter。作用例如以下图   传统调用       加上Filter       二、FilterChain   当几个Servlet有一些同样的设置过滤而另几个Servlet有其他同样的设置……这样一个Filter是不能完毕全部的过滤所以就须要多个Filter协作来共同完毕这项任务。于是著名的FilterChain就出来了。那么这个FilterChain中的多个Filter是怎样协作的呢   每一个Filter的职能不同当一个Servlet的请求到达后这个请求就会沿着这条Filter链一个一个走过走到它须要的Filter时。这个Filter就会进行对它的Request、Response进行操作。完成后自己主动向下流转。这就是所谓的职责链模式。   每一个Filter有3个方法   Ø  init(FilterConfig filterConfig)   Ø  doFilter(ServletRequest request, ServletResponse response, FilterChain chain)   Ø  destroy()   三个方法以下进行具体介绍依次运行一个Filter链中的多个Filter的运行顺序例如以下图        即运行第一个过滤器的chain.doFilter()之前的代码----第二个过滤器的chain.doFilter()之前的代码----……----第n个过滤器的chain.doFilter()之前的代码----所请求servlet的service()方法中的代码——所请求servlet的doGet()或doPost()方法中的代码----第n个过滤器的chain.doFilter()之后的代码----……----第二个过滤器的chain.doFilter()之后的代码----第一个过滤器的chain.doFilter()之后的代码。   三、主要接口与方法   首先Servlet过滤器API包括了3个接口它们都在javax.servlet包中各自是Filter接口、FilterChain接口和FilterConfig接口。使用   Ø  全部的过滤器都必须实现Filter接口。该接口定义了init(),doFilter()destory()三个方法。   Ø  FilterChain接口作为了doFilter0方法的參数:  doFilter(ServletRequest request, ServletResponse response,FilterChain chain)   Ø  FilterConfig接口作为了init()方法的參数: init(FilterConfig filterConfig)   也就是过滤器类将实现Filter接口然后使用这个过滤器类中的FilterChain和FilterConfig接口。该过滤器类的—个引用将传递给FilterChain对象以同意过滤器把控制权传递给链中的下一个资源。FilterConfig对象将由容器提供给过滤器以同意訪问该过滤器的初始化数据。以下对3个接口与所包括的方法进行简要介绍   Filter接口   1)       public void init (FilterConfig filterConfig) throws  ServletException   当開始使用servlet过滤器服务时。Web容器调用此方法一次。为服务准备过滤器即通过FilterConfig对象拿到过滤器的初始化參数。即配置文件里配置的信息。然后在须要使用过滤器的时候调用doFilter()。并传递配置信息。   2)       public voiddoFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException   每一个过滤器都接受当前的请求和响应且FilterChain过滤器链中的过滤器应该都是符合条件的都会被运行。doFilter方法中过滤器能够对请求和响应做它想做的一切通过调用他们的方法收集数据或者给对象加入新的行为。   过滤器通过传送至此方法的FilterChain參数调用chain.doFilter()将控制权传送给下一个过滤器。当这个调用返回后过滤器能够在它的 Filter方法的最后对响应做些其他的工作。假设过滤器想要终止请求的处理或得到对响应的全然控制则能够不调用下一个过滤器。而将其重定向至其他一些页面。当链中的最后一个过滤器调用chain.doFilter()方法时。将执行最初请求的Servlet。   3)       public voiddestroy()   假设doFilter()法里的全部线程退出或已超时容器调用此方法。server调用destory()以指出过滤器已结束服务。用于释 放过滤器占用的资源。   FilterChain接口   1)     public voiddoFilter(ServletRequest requestServletResponse response)   throws java.io.IOExceptionServletException   此方法是由Servlet容器提供给开发人员的用于对资源请求过滤链的依次调用通过FilterChain调用过滤链中的下一个过滤   器假设是最后一个过滤器则下一个就调用目标资源。   FilterConfig接口    FilterConfig接口检索过滤器名、初始化參数以及活动的Servlet上下文。   1)       public java.lang.String getFilterName()   2)       public  ServletContext  getServletContex()   3)       public java.lang.String  getlnitParameter(java.lang.String name)   4)       public java.util.Enumeration getlnitParameterNames()   四、配置使用   过滤器通过Web应用程序中的配置描写叙述符web.xml文件里的明。包含部分filter、filter-mapping filter。主要包含   1)       filter-name和fflter-class两个必须的子元素   2)       icon、init-param,display-name,description这4个可选的子元素。   filter-name子元素定义了—个过滤器的名字filter-class指定了由容器加载的实际类init-param子元素为过滤器提供初始化參数。 filter-mapping主要由   1)       filter-name,servlet-name和url-pattem子元素组成。 servlet-name将过滤器映射到一个或多个Servlet上url-pattem将过滤器映射到—个或多个随意特征的URL的JSP页面。   url-pattem的4种配置方式  filterfilter-nameCharsetEncodingFilter/filter-namefilter-classcom.bjpowernode.drp.util.filter.CharsetEncodingFilter/filter-classinit-paramparam-nameencoding/param-nameparam-valueGBK/param-value/init-param/filter!--精确匹配不採用不论什么修饰符 --filter-mappingfilter-nameCharsetEncodingFilter/filter-nameurl-pattern/servlet/TestServlet/url-pattern/filter-mapping!--扩展匹配由*号和扩展名组成 --filter-mappingfilter-nameCharsetEncodingFilter/filter-nameurl-pattern*.jsp/url-pattern/filter-mapping!--路径前缀匹配。包括一个文件夹和一个/* --filter-mappingfilter-nameCharsetEncodingFilter/filter-nameurl-pattern/servlet/*/url-pattern/filter-mapping!--全匹配。使用/* --filter-mappingfilter-nameCharsetEncodingFilter/filter-nameurl-pattern/*/url-pattern/filter-mapping 五、代码演示样例 Filter类 package com.bjpowernode.drp.util.filter;import java.io.IOException;import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse;import org.omg.CORBA.Request; /*** 採用Filter允许处理字符集* author v-wangzhip*/ public class CharsetEncodingFilter implements Filter {private String encoding;Overridepublic void destroy() {// TODO Auto-generated method stub}Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {//System.out.println(CharsetEncodingFilter----begin);//设置字符集request.setCharacterEncoding(encoding);//继续向下运行chain.doFilter(request, response);//System.out.println(CharsetEncodingFilter----end);}Overridepublic void init(FilterConfig filterConfig) throws ServletException {this.encodingfilterConfig.getInitParameter(encoding);System.out.println(encoding---- encoding);} }Web.xml配置 filterfilter-nameCharsetEncodingFilter/filter-namefilter-classcom.bjpowernode.drp.util.filter.CharsetEncodingFilter/filter-classinit-paramparam-nameencoding/param-nameparam-valueGBK/param-value/init-param/filterfilter-mappingfilter-nameCharsetEncodingFilter/filter-nameurl-pattern*.jsp/url-pattern/filter-mappingfilter-mappingfilter-nameCharsetEncodingFilter/filter-nameurl-pattern/servlet/*/url-pattern/filter-mapping   六、总结   个人感觉Filter是将多个请求-响应中公共的须要设置的东西提出来插入到请求-响应之间的一个中间层。多个Filter组成一个FilterChain。每一个Filter有自己的职能。能依照一定规则来处理到达的请求和响应体现了职责链模式。Filter仅仅对post请求起作用它提供了一种声明式服务。具有可插拔能力即能够任意开启和关闭。   版权声明本文博客原创文章博客未经同意不得转载。
http://www.sadfv.cn/news/386119/

相关文章:

  • 网站的建设与预算ftp 上传 wordpress
  • 网站搭建的流程是什么推广关键词
  • 济南网站建设服务哪家好上海最有名的设计公司有哪些
  • 网站要怎么做的吗网站本科
  • 简单详细搭建网站教程视频教程成都网站建设前50强
  • 锦州网站制作公司应该如何做营销型网站
  • 网站创意文案怎么做wordpress调用分类目录代码
  • 手机销售网站的建设西安seo网站公司
  • 外链 网站权重公司展厅装修效果图
  • 网站参数修改互联网推广开户
  • 深圳市住建局造价站镇江关键字优化公司
  • 深圳华企网站建设公司建设网站的步骤
  • 十堰优化网站排名公司响应式网站 价格
  • 手机网站建设流程 知乎网站开发外包项目网站
  • 网站程序的构成网站的运营维护
  • 网站可以放多少视频瀑布流网站源码
  • 浙江省建设监理协会管网站爱企查企业服务平台
  • 做网站创业需要注册公司吗cocos2d-js可以做网站吗
  • 如何选择坪山网站建设网站源码下载教程
  • 龙岩网站建设公司网站用户体验
  • 兰州专业做网站的公司哪家好建立企业网站公司
  • 静态网页模板 网站模板承德网站建设方案
  • 大连p2p网站建设企业网站的技术维护内容主要包括
  • html做网站经验技巧青岛李沧建设局网站
  • 郑州市多商家网站制作公司网站建设费如何做账
  • 个人域名备案有什么风险外贸网站seo公司排名
  • flash相册网站源码广州seo建站
  • 宜昌网站设计为什么wordpress后台写文章不一样
  • 网站页面设计与实现哈尔滨一恒建设
  • 响应式模板网站模板网站优化公司收费