博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts2_03_控制器(过滤器/拦截器/Action)
阅读量:5922 次
发布时间:2019-06-19

本文共 2270 字,大约阅读时间需要 7 分钟。

一、过滤器

过滤器是Struts2控制器的最前端控制器,请求对象首先被过滤器过滤。Struts2的过滤器有三层次,参考工作原理图中与过滤器有关的部分,不再赘述。

 

二、拦截器

  1.简单了解什么是拦截器?

  • 拦截器是Struts2中第二个层次的控制器,他会在Action执行前后运行一些Action类需要的通用功能;
  • 拦截器是使用AOP思想设计;
  • API中提供了大量的拦截器类;当然,我们也可以自定义拦截功能,也就是自定义拦截器。

 

  2.如何使用拦截器?

  ①定义拦截器

使用拦截器前,必须先在struts.xml文件中定义拦截器,使用标记<interceptor>定义。

  ②使用拦截器

定义拦截器之后就可以再Action中引用,通过标记<interceptor_ref>指定要使用的拦截器。

  
  
  
  
    
    
         
     
    
    
    
    
/index.jsp
    
/success.jsp
   
  

 

  3.拦截器栈的定义与使用

往往我们需要对多个拦截器一起使用,那么就可以定义一个拦截器栈,将需要使用的拦截器捆绑在一起,方便使用,也就是说拦截器栈是多个拦截器的集合。

先看下面的代码:

  
  
    
      
      
      
      
      
      
             
                 
                 
             
         
         
      
      
      
/index.jsp
      
/success.jsp
      
  

上述定义了4个拦截器,还定义了一个拦截器栈,拦截器栈中引用了两个拦截器,如果下次需要同时访问这两个拦截器,就可以直接访问拦截器栈即可以了。

 

  4.默认拦截器或拦截器栈的定义与使用

在一个项目的某个包中,我们可以定义默认的拦截器或拦截器栈,那么,该包下的Action在<interceptor-ref>没有指定情况下,都会被默认拦截器或拦截器栈拦截。但是,如果包中的某个Action指定了<interceptor-ref>,则默认的拦截器或拦截器栈失效,必须再次指定方可使用。

  
  
  
  
       
      
/index.jsp
      
/success.jsp
      
  
  
  
  
  
       
    
    
    
    
      
/index.jsp
      
/success.jsp
    
  

 

  5.struts-default.xml中定义的拦截器栈

struts.xml中的Action都继承了struts-default.xml中的struts-default包,因此都默认继承struts-default包的默认拦截器栈。

 

三、Action

  • Action是Struts2的第三层的控制器,需要自行开发;
  • Action是Struts2应用中使用数量最多的控制器;
  • Action实现的功能与Servlet非常类似,然而,Action不是Servlet,仅仅是一个普通的java类;
  • Action的主要作用就是:封装请求参数调用业务逻辑,执行业务操作,根据执行结果返回结果视图实现页面导航,被称为"业务控制器"

转载于:https://www.cnblogs.com/slliang/archive/2012/08/25/2655900.html

你可能感兴趣的文章
java debugger
查看>>
JDBCTemplate简化JDBC的操作(一)
查看>>
1、Bracket使用
查看>>
rpx
查看>>
dubbo 实战1
查看>>
【Tomcat】tomcat热部署和热加载(转载)
查看>>
Linux 安装及配置 Nginx + ftp 服务器
查看>>
Oracle创建Database Link
查看>>
【C#系列】你应该知道的委托和事件
查看>>
Python 面向对象
查看>>
json-lib maven依赖出错的问题
查看>>
最小生成树-并查集-Kruskal-zoj-2048-special judge
查看>>
ubuntu17.10 安装ssh
查看>>
ASP.NET Core 2.0 : 四. _Layout与_ViewStart
查看>>
计算机科学基础知识(一)The Memory Hierarchy
查看>>
Openstack架构概念图-简单汇总
查看>>
Windows内存管理和linux内存管理
查看>>
000 二维数组中查找数字(维度上有序递增的二维数组)
查看>>
numpy、scipy、matplotlib、OpenCV安装及问题解决
查看>>
程序猿爱上了经济学《经济学原理》
查看>>