`

Struts核心组件和运行过程

    博客分类:
  • java
阅读更多

今天来讲解一下Struts原理:

使用Struts开发的时候,只需要关注两类组件:Action Bean组件和Form Bean组件。这样还不够,还需要了解Struts核心组件和内部原理,才能保证我们在编写Struts应用时轻松解决各种问题。

Struts核心组件和运行过程:

Struts应用中包含3个组件:控制器组件、模型组件个视图组件,控制器组件包括ActionServlet(核心控制器)、自定义Action(代表一个用户操作)。
模型组件包括定义和实现业务逻辑的接口和类。
视图组件包括JSP页面、ActionForm和Struts标签。

下面结合struts的运行过程介绍struts核心组件的职能和作用。

ActionServlet是struts最核心的组件。在Web容器启动的时候,ActionServlet被初始化,加载
struts-config.xml配置文件(这也是为什么当struts配置文件修改的时候需要重新启动Web容器)。Struts处理请求的过程如下:

1、当客户端浏览器发起请求到ActionServlet时,ActionServlet首先对请求进行一系列处理:根据请求的路径和配置信息找到对应的Action Bean 和Form Bean。

2、在确定将要调用Action Bean和对应的Form Bean后,就将请求中包含的值填充到Form Bean中(Action可以不关联任何ActionForm,所以这一步是可选的)。在调用Action的execute方法前,ActionServlet还需要准备好ActionMapping参数,ActionMapping中包含了该Action的配置信息。

3、然后Struts将请求分发至相应的Action Bean处理,ActionMapping参数、ActionForm参数、request和response都作为参数传给处理请求的Action Bean的execute方法。

4、Action调用业务逻辑方法,得到返回值,并返回ActionForward对象。

5、控制权重新回到ActionServlet,AcrionServlet根据Action返回的ActionForm对象转发到相应的JSP页面。

6、处理结果返回给浏览器。

需要注意的三点如下:

1)ActionServlet将控制器转到页面的时候采用的是转发方式(request.getRequestDispatcher(url).forward(request,response);),所以转发到页面的request和Action方法参数中的request是同一个请求,数据可以通过request对象的attribute属性传递。

2)ActionForm根据对象Action的score属性配置不同而生命周期有所不同。

3)当需要采用重定向的方式转到新的页面的时候,可以在Action代码中使用“request.sendRedirect(url);”语句,并返回null;

分享到:
评论

相关推荐

    struts框架ppt文档

    Struts 概述 Struts 架构开发入门 Struts核心组件及运行机制详述 Struts应用进阶 第五章 Struts标记库

    javaWeb_struts2框架实现简单用户注册登录

    2.数据库操作使用c3p0连接池和dbtuils组件,对表的CURD,二者搭配感觉很easy,没有使用hibernate。 3.控制器采用action开发,替代传统的servlet,直接跳转页面返回一个字符串即可,需配置struts.xml对应的jsp。 4....

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    12.6 整合Struts、Spring和Hibernate实现用户管理 12.6.1 Struts、Spring和Hibernate的整合方式 12.6.2 编写用户注册画面regedit.jsp 12.6.3 编写用户登录画面login.jsp 12.6.4 编写注册控制器RegeditAction.java ...

    Struts2_Spring mvc执行原理的面试题

    主要将讲解什么是MVC设计模式?Struts2核心组件解释,Struts2的工作原理,SpringMvc各个组件的解释,Springmvc工作原理

    struts必备jar包

    表现层框架,定义了struts2的可视组件主题(theme) ognl-2.6.11.jar OGNL表达式语言,struts2支持该EL struts2-core-2.0.10.jar struts2的核心库 xwork-2.0.4.jar webwork的核心库,自然需要它的支持

    Struts2的使用-实验报告.docx

    Struts 2 框架的主要特点在于其 MVC(Model-View-Controller)架构,它将应用程序划分为三个核心组件,分别是模型(Model)、视图(View)和控制器(Controller)。这种分层结构有助于代码的组织和维护,同时也促进...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    12.6 整合Struts、Spring和Hibernate实现用户管理 12.6.1 Struts、Spring和Hibernate的整合方式 12.6.2 编写用户注册画面regedit.jsp 12.6.3 编写用户登录画面login.jsp 12.6.4 编写注册控制器RegeditAction.java ...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    12.6 整合Struts、Spring和Hibernate实现用户管理 12.6.1 Struts、Spring和Hibernate的整合方式 12.6.2 编写用户注册画面regedit.jsp 12.6.3 编写用户登录画面login.jsp 12.6.4 编写注册控制器RegeditAction.java ...

    struts2.0.jar

    面向Ajax的Struts 2标签基于Dojo窗口组件。还有用于其他框架的插件。 · 快速启动: 部署配置文件可以重新装入; 因而,可以动态地进行许多变化,用不着重新启动Web容器。 · 状态复选框: Struts 2框架可自动跟踪复选...

    Struts原理、开发及项目实施

    Struts原理、开发及项目实施 Holen 2002-9-12 <br/>1、 摘要 2、 关键词 3、 Framework 4、 Struts的起源 5、 Struts工作原理 6、 Struts安装 7、 一个实例 8、 Struts优缺点...

    struts2框架个人博客

    生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。由于核心逻辑被封装在标识和JavaBeans中,所以Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。

    基于Struts和Hibernate技术的企业管理信息系统研究与开发

    随着互联网和信息技术的迅猛发展,企业信息化...的实际运行,能够满足公司的业务处理要求,提高了业务处理的速度和准确率, 取得了良好的效果。 论文的最后对系统开发中的一些体会与遇到的问题进行了总结和展望。

    strtus整体架构及核心标签库的介绍

    struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。 本章详细讨论struts架构。我们将看到struts是如何清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序过程的。...

    SSH框架详解

    Hibernate工作原理、Hibernate的核心组件、Persistent Object、Hibernate的运行过程、Hibernate缓存的作用、Hibernate缓存分类、Hibernate优点、 Hibernate缺点、spring原理 、AOP(Aspect-Oriented Programming): ...

    宿舍管理系统

    J2EE规范是这样定义J2EE组件的:客户端应用程序和applet是运行在客户端的组件;Java Servlet和Java Server Pages (JSP) 是运行在服务器端的Web组件;Enterprise Java Bean (E JB )组件是运行在服务器端的业务组件。 ...

    健身房管理信息系统设计.doc

    对于基于Struts框架的Web应用程序,当客户端浏览器发出请求时,请求会被控制器 截获,并调用在Web应用启动时就加载并初始化核心控制器组件ActionServlet,然后通 过ActionServlet从Struts- config.xml文件中读取...

    Struts in Action中文版

    2.2.3. Struts控制器组件................................................................................................39 2.2.4. 用 Struts 开发Web 应用...................................................

    J2EE Web程序开发定向班V1.0 Java就业班V2.0 (完整版)

    第01章:Servlet与JSP核心技术课程--1、JBuilder集成WebLogic-JBuilder集成WebLogic1.1.rmvb 第01章:Servlet与JSP核心技术课程--1、JBuilder...第20章:Servlet与JSP核心技术课程--20、Struts程序开发过程0.10.rmvb

Global site tag (gtag.js) - Google Analytics