Struts2框架学习(第二讲)

来源:互联网 发布:mac在韩国多少钱一支 编辑:程序博客网 时间:2024/05/17 18:13

在上一篇文章中也提到了,struts2不需要依赖Servelet API,也不用像struts1一样需要继承HttpServlet,因此耦合度低,这也是我们在平时项目中之所以使用框架的原因。

今天要讲的action的流程:
1,流程
1)拦截器拦截请求,创建代理Action对象,执行方法,返回结果,界面跳转。
2)拦截器解析请求路径,获取Action的名称,到配置文件中查找action的完整类名,利用反射创建对象。

2、方法特点
public类型,无入参,返回值类型String 。

3、Action类和ActionProxy,ActionInvocation类的关系
这里写图片描述

ActionProxy是Action的代理类,通过解析配置文件获取Action类中名称和完整路径,利用反射机制创建的。

ActionInvocation是Action类的调用者,反射创建的ActionProxy类就存在ActionInvocaiton类中。

4、流程解析

1)http://127.0.0.1:8080/SSHDemo/list.action 客户端发出请求,struts2的过滤器拦截请求。并且创建action代理,然后根据配置文件mapper去匹配到对应的空间对应的action类中。
2)struts2配置文件对应的空间中该action映射的action类。action中没有指定执行方法默认为execute方法。

<action name="list" class="listAction"><result name="success" >/WEB-INF/jsp/list.jsp</result></action>

3) action类中默认的执行方法,返回String类型的结果字符串。

public String execute() {Map request = (Map) ActionContext.getContext().get("request");request.put("list",service.selectList());return "success";}
0 0
原创粉丝点击