Struts工作原理和流程简介
MVC简介:
Model—模型:负责系统的状态和业务逻辑
View—视图:负责系统的视图呈现
Controller—控制: 负责系统的逻辑控制
核心的原则:
Jsp页面不出现java代码,servlet不出现html的东西。
传统的MVC架构:
JSPèVIEW
ServletèController
JavaBeanèModel
传统的流程图:
客户端的Request请求到达servlet,获取用户输入,set到model中,model负责取值也业务逻辑,然后由view层get数据更新view,发送到client。
Struts架构:
Jsp+struts标签库 è View
ActionBean
ActionFormBean Model
ActionServlet
AactionMapping Controller
Struts流程图:
Controller作为接受所有客户端请求的入口点,由ActionServlet来决定需要那个动作类来执行相应的操作,同时通知ActionFormBean来封装用户的表单输入,同时提交给ActionBean执行相应的业务逻辑,通过ActionMapping来决定需要反馈给Client什么。
注意的事情:
Struts的模型主要有Action Bean 和 ActionForm Bean ,Action中封装了简单的逻辑操作。
较为复杂的逻辑放在JavaBean或者EJB中来完成,然后在Action中调用,因此Action是解决“做什么”,由其他的组件如(JavaBean)来解决“怎么做”的问题。
ActionForm封装了用户的表单输入,因此Action不用和表单交互,直接和ActionForm交互就可以了!
Struts标签和ActionForm的元素之间一一映射。
Struts的工作流程:
浏览器:Client |
Struts-config.xml |
控制器:ActionServlet |
模型:Model |
视图:View—jsp |
Taglib |
ApplicationResourses. properties |
Action |
ActionForm |
启动Tomcat |
初始化ActionServlet,读取s-c,将action存于AM |
ActionMapping |
返回ActionForward,返回给客户端 |
ActionForm |
是否要验证,根据s-c |
Action,调用execute() |
<action-mappings >
<action
attribute="helloForm" //
input="/form/hello.jsp" // 失败后要跳转的页面
name="helloForm" // 要传给Action的ActionForm
path="/hello" //指定了访问Action的路径
scope="request" // 这个actionform的有效范围
validate = "false" // 是否验证
type="com.hicc.struts.action.HelloAction" />
</action-mappings>
Struts 框架会自动把表单中的数据封装导ActionForm中,其属性和表单中的属性一一对应起来。Actionform提供了reset() 和validate() 的方法。
Action只需重载execute()方法,在这个方法中实现所有的数据校验和业务逻辑。
由于csdn不是很支持word的格式
我又懒得老是切图啦。
就直接整了个大图!大家看!