struts2 开发流程以及配置文件
Mybatis完成了对JDBC的封装,而Struts2完成了对jsp,servlet的封装。首先,三层架构
Struts2的原理图:
开发流程: 1.导入jar包。
2.建立名为“struts.xml”的配置文件 注:该文件必须放在src的目录下
表头:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 4 "http://struts.apache.org/dtds/struts-2.3.dtd"> 5
<struts> <!-- package:为了将逻辑相关的控制器进行封装(业务上不相关的控制进行隔离) name:你自己给该包起的名字,(名字完成包和包之间的继承) namespace:应用控制器,请求路径的构成部分(前缀) extends:继承其他包中定义的功能,通过包名字继承
action:给某个应用javabean,注册一个请求路径 name:应用javabean的请求路径 class:应用控制器的完全限定名 method:指定本次请求,所调用的应用控制器javabean中的方法名 result:指定该Action执行的结果类型(跳转另外一个action,还可以跳转某个视图view(jsp)) name:指定跳转的路径对应的逻辑名称 --> <package name="" namespace="/" extends="struts-default"> <action name="" class="" method=""> <result name="" type="">/index.jsp</result> <!-- result:指定该Action执行的结果类型(跳转另外一个action,还可以跳转某个视图view(jsp)) name:指定跳转的路径对应的逻辑名称 type:指定不同action之间,action和jsp之间的的跳转方式 dispatcher(默认值,通过请求转发的方式,跳转某个jsp页面) redirect:通过重定向的方式,跳转某个jsp页面 [zhongdian] chain: 通过请求转发的方式跳转到某个action(组成Action链) redirectAction:通过重定向的方式,跳转某个action页面 plainText:将视图的源文件响应给客户端 stream:完成由服务器向客户端写入数据 --> <result name="" type=""> <param name="actionName"></param> <param name="namespace">/</param> <param name="methodName"></param> </result> </action> </package> </struts>
3.建立用来接收数据的javaBean的action类(应用控制器)。
public String execute(){ //execute是struts默认的方法名称
return "";//返回的字符串是structs.XML中action标签中的result的name属性名称
}
Struts2的执行顺序
1 发送 test/numAction.action 请求
2 进入到struts2的核心控制器(strutsPrepareAndExecuteFilter)
3 核心控制器,在内存中根据请求的url,查找对应的应用控制器(javabean)
4 对javabean进行实例化,调用相应的处理方法(默认execute()方法)
5 更具execute方法的返回值,struts2的核心控制器根据返回值(结果类型的逻辑名称)对应的路径完成跳转