Java学习笔记-Struts2工作机制

1.Servlet Filter(过滤器)技术:Servlet过滤器是在Java Servlet规范中定义的,它能够对过滤器关联的URL请求和相应进行检查和修改。
过滤器的用处:
(1)权限控制。通过过滤器实现访问的控制,当用户访问某个链接或者某个目录的时候,可利用过滤器判断用户是否有访问权限。
(2)字符集处理。可以在过滤器中处理request和response的字符集,而不用在每个Servlet和JSP中进行单独处理。
(3)其他一些场合。如计数器,数据加密,访问触发器,日志用户访问分析。
所有过滤器都必须实现java.Servlet.Filter接口,它含有三个必须实现的方法:
(1)init(FilterConfig):过滤器的初始化方法,Servlet容器创建过滤器实例后将调用这个方法。这个方法可以通过FilterConfig参数读取web.xml文件中过滤器的初始化参数。
(2)doFilter(ServletRequest,ServletResponse,
FilterChain):这个方法完成实际的过滤操作,当用户请求与过滤器关联的URL时,Servlet容器将先调用过滤器的doFilter方法,在返回响应之前也会调用此方法。FilterChain参数用于访问过滤器链上的下一个过滤器。
过滤器必须与指定的URL关联才能发挥作用,关联的方式有三种:与一个URL关联(xxx.jsp),与一个URL目录下的所有资源关联(/*),与一个Servlet关联(Servlet名称)。
(3)destroy():Servlet容器在销毁过滤器实例前调用此方法,释放过滤器占有的资源。
2.struts2的设计思想: 用Servlet Filter 技术将Servlet API 隐藏于框架之内,一个请求在struts2框架内被处理,大致分为以下几个步骤,如下图所示
(1)客户端初始化一个指向Servlet的容器(如tomcat)的请求。
(2)这个请求经过一系列的过滤器(Filter)。
(3)接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请求是否需要调用某个Action。
(4)如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求交给ActionProxy。
(5)ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类。
(6)ActionProxy创建一个ActionInvocation的实例。
(7)ActionInnovation实例使用命名模式来调用,在调用Action的过程前后,涉及相关拦截器的调用。
(8)一旦Action执行完毕,ActionInnovation负责根据struts.xml中的配置找到对应的返回结果。
Struts2内部工作机制
图 Struts2内部工作机制

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值