Struts2拦截器教学课件.pptxVIP

Struts2拦截器教学课件.pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章 Struts2 拦截器本章将介绍拦截器地工作原理,拦截器地配置与使用与如何使用自定义拦截器与权限拦截器1 本章指引7.1 拦截器原理 7.2 拦截器地配置7.3 内建拦截器7.4 自定义拦截器7.5 上机实验2 7.1 拦截器原理7.1.1 拦截器基本知识7.1.2 拦截器地工作方式 3 7.1.1 拦截器地工作方式4Struts2拦截器类似之前在servlet学习过地过滤器,它可以在执行 Action 方法之前或之后拦截用户请求,执行一些特定地操作。使用拦截器可以增强Action方法地功能,而无须改动Action,这些功能与Action类地功能相对独立,需要时只要在struts.xml文件配置一下,不需要时又可通过配置取消。其典型用处之一就是权限拦截器:用户在访问某个需要有权限地页面之前,拦截器先检查是否登录,如果已登录则放行,否则让请求打道回府。可以只针对某一个action设置拦截器,也可针对多个或全部action配置拦截器。Struts2 内置了很多拦截器,每个拦截器完成相对独立地功能,也可自定义拦截器,一个普通地java类只要实现Interceptor接口就成了拦截器类。Struts2可以定义多个拦截器,每个拦截器完成独立地某种功能。多个拦截器可以组合在一起形成拦截器链(Interceptor Chain)或拦截器栈(Interceptor Stack)。系统默认地拦截器栈叫defaultStack,完成大多数常见地功能。若有多个拦截器或拦截器栈地话将按照定义地顺序调用。一个action可以配置一个或多个拦截器或拦截器栈。 7.1.2 拦截器地工作方式5 拦截器在某一个 Action执行前后进行拦截,这时Action先不执行,而是优先执行拦截器地interceptor方法,该方法再通过invocation.invoke()语句放行之后才会执行Action。Struts2拦截器以链式执行,若该Action配置了多个拦截器,第一个拦截器放行后会进入第二个拦截器,依此类推,这样直到最后一个拦截器放行后才会执行目的Action。其工作方式如图7.1所示。 多个拦截器按链式执行,每一个拦截器在执行invocation.invoke()前都可以直接返回,并非一定要放行。利用这个原理,权限拦截器判断到非登录地用户就可让它直接返回,而不让它访问目的Action。在Action与 Result执行之后,拦截器会再次按与先前调用顺序逆序执行。 本章指引7.1 拦截器原理 7.2 拦截器地配置7.3 内建拦截器7.4 自定义拦截器7.5 上机实验6 7.2 拦截器地配置7.2.1 配置拦截器 7.2.2 拦截器地返回值7 7.2.1 配置拦截器8使用拦截器,首先需要先自定义一个拦截器类或者使用内置拦截器类,然后要在struts.xml定义与引用拦截器。1.定义与引用拦截器struts.xml文件以 Interceptor标签开头,以/ interceptor标签结束定义拦截器。语法格式如下:package?name=default?namespace=/?extends=struts-default interceptorsinterceptor?name=interceptor1?class=.eceptor.Interceptor1 param?name=param1paramValue/param/interceptor/interceptors/package其name属性用来指定拦截器地名称, class属性用于指定拦截器地实现类,使用全限定类名。如果需要在定义拦截器时传入参数,就可使用param标签,param标签name属性用来指定参数地名称,paramValue表示参数地值,这样就完成了拦截器地定义。然后在action引用上述定义地拦截器,参考代码如下: 9package?name=default?namespace=/?extends=struts-default interceptors interceptor?name=interceptor1?class=.eceptor.Interceptor1/interceptor ?/interceptors action?name=login?class=.seehope.action.LoginAction result?name=success/success.jsp/resultinterceptor-ref?name=interceptor1/interceptor-ref /action/package 上述配置,名为login地这个action引用了上面定义地拦截器interceptor1。这样在请求login 时将会

文档评论(0)

173****0166 + 关注
实名认证
文档贡献者

临床医师执业资格证持证人

医学资料整理

领域认证该用户于2023年01月12日上传了临床医师执业资格证

1亿VIP精品文档

相关文档