Struts2两个重要组成部分

15 篇文章 0 订阅

 

struts2核心就是核心控制器和业务控制器。

核心控制器StrutsPrepareAndExecuteFilter

<span style="color:#000000"><code>StrutsPrepareAndExecuteFilter作为一个filter运行在web应用中,负责拦截所有用户请求,该filter 会过滤用户请求,然 

后将请求都交给struts2框架处理。拦截器会默认拦截扩展名为.action的请求,什么后缀名都不写也可以。例如  

hello.action或者hello都会进行拦截。xxx.jsp就不会进行拦截,直接放行。 
</code></span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(1)启动Tomcat,tomcat加载web.xml文件。同时加载和初始化核心过滤器,查看struts2源码,发现核心过滤器的初始化方法中会加载struts.xml等struts2配置文件。

(2)当用户请求到达时,核心过滤器拦截用户请求,将请求交给struts2框架来处理,即去匹配struts.xml的内容。 
struts2框架获取用户请求后,根据请求的名字来决定调用哪个业务逻辑组件,实例化相应的类。例如,对于login请求,调用名为login的Action处理。

(3)struts2的所有Action都被定义在struts.xml文件中,Action有name和class属性,name决定了该Action处理哪个用户请求,class决定了该Action的实现类。

(4)Struts2用户处理用户请求的Action实例,并不是用户实现的业务控制器,而是Action代理,他会回调用户的处理方法,因为用户实现的业务控制器没有与Servlet API有任何关系,所以根本没办法进行获取参数等请求处理,而struts2定义了一系列拦截器,会对请求参数解析,传入到Action中,回调execute方法。

我们每次请求都会实例化相应的类,所以不会出现线程不安全的情况。而Servlet为单例,会出现线程不安全。

业务控制器:

<span style="color:#000000"><code>业务控制器就是用户实现的Action类,Action类中通常包含一个execute方法,该方法返回一个字符串,字符串与struts.xml中的result的name相对应,跳转到不同页面。  
</code></span>
  • 1
  • 2

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值