一、Struts2的执行原理
- 服务器启动加载web.xml 内容,同时创建struts2的过滤器StrutsPrepareAndExecuteFilter,加载一系列的配置
- 当一个http请求访问送到服务器时,比如localhost/struts2/demo.action
这时,struts拿到这个地址,截取到demo.action 路径 - 拿着这个路径到struts.xml 文件中去匹配,dom4j 会解析xml文件中的标签,如果有action 标签中的name属性值与这个 demo 相匹配,那就顺势找到其对应的 class属性
- 得到class的属性值 也就是Action类全路径,通过反射方法拿到字节码对象
Class clazz = Class.forName(“action的全路径”); - 然后得到名称是execute的方法(默认访问的)
Method m = clazz.getMethod(“execute”); - 方法执行,得到返回值
Object obj = m.invoke(); - 根据返回值再到struts.xml文件中 result便签中匹配name属性值,如果一样就跳转到配置的页面中