需要分别实现对应的接口:RequestAware, SessionAware, ApplicationAware
首先,当浏览器拿着地址去访问服务器时,服务器解析出地址的后缀并传给web.xml配置好的前端控制器,这个时候struts2的前端控制器拿到这个字符串后,就会开始判断它是否跟配置文件里的某个Action对象匹配上。
匹配上之后,前端控制器就会放行,执行相应Action。由于Action代替原有的Servlet做控制,但问题是它本身并不是Servlet类,并没有request这些属于Servlet的对象,那么这些对象就需要前端控制器传给Action。那么问题就来了,它怎么传给我的Action啊,一般来说调用我提供给它的set方法就ok了,问题又来了,它怎么知道我写的方法叫什么名字啊,所以它才提供了接口出来,这样名字是它定的,自然就懂得调用那个方法将属于servlet的一些对象传给我的Action了。