`
jaenson
  • 浏览: 188255 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

struts 运行机制------Struts中的控制层功能

阅读更多
Struts中的控制层功能:

1、  接受客户端请求

2、  调用M层模型组件执行相应的业务逻辑。

3、  获取M层业务逻辑的处理结果

4、  根据处理结果选择合适的视图呈现给客户端。

Contrler层核心控制组件是:ActionServlet,它是org.apache.struts.action.ActionServlet类型的Servlet。

他继承javax.Servlet.Http.HttpServlet,并实现了init(),doGet()/doPost(),destroy()等Servlet生命周期所用到的方法。还添加了一个process(),它本身不复杂,但它会调用其他的复杂方法。ActionServlet接收到来自Servlet容器的客户请求时,他的处理步骤:

1、  根据浏览器是post还是get请求调用doPost()、doGet()方法,在其中调用ActionServlet的process()方法。

2、  Process()获取RequestProcessor对象,调用RequestProcessor对象的process()方法

3、  Process()读取struts-config.xml,在其中查找<action>子元素,查找的条件是:用户请求的URI与action元素的path属性值一样,找到后确定name属性,根据name找到<form-bean>元素,再根据action元素的name匹配值找到相应的ActionForm bean。

4、  调用ActionForm bean的setter方法填充FormBean的属性,然后调用FormBean的validate()方法,对表单数据的有效性进行验证。

5、  RequestProcessor的process()方法根据3中找到的<action>中的type属性寻找Action bean对象(有则使用,无则创建),然后将FormBean对象,封装的请求对象等信息发给找到的Action对象,Action bean调用自己的execute()方法处理。

6、  Action bean的execute()方法执行完璧后,返回一个ActionForward对象,又回到RequestProcessor对象的process()方法,process方法将根据ActionForward请求重新定向到指定的页面。

流程:

1、客户请求req.do

ActionServlet—>process()—>RequestProcessor.process()—>struts-config.xml—>
<action>—>path=”/req”

<action>—>name—><form-bean>—>setXXX()

<action>—>type—>获得Action—>execute()—>execute()返回ActionForward()
         

RequstProcessor类是struts控制器的真正的请求处理者。它定义了多个processXXX()方法完成具体的处理工作。如果要扩展ActionServlet类,可以从RequstProcessor继承,实现自己的控制逻辑。其中,它提供一个processPreprocess()方法用于在子类中被重写,加入定制的预处理功能。


转载自:http://hendryxu.iteye.com/blog/147138
分享到:
评论

相关推荐

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

    5.1.2 Eclipse的运行机制 5.2 建立Eclipse的开发环境 5.2.1 下载Eclipse 5.2.2 配置Eclipse 5.3 整合Eclipse和Tomcat 5.3.1 下载Eclipse的Tomcat插件 5.3.2 为Eclipse配置Tomcat插件 5.4 使用Eclipse建立Web开发项目...

    用Java反射机制简化Struts框架逻辑控制.pdf

    Struts框架可提高J2EE平台上应用系统的可扩展性和可重用性。但其较为复杂的控制层过多地分散...java反射机制提供了在程序运行时加载和调用类的功能,利用它可简化Struts框架下的逻辑控制。本文在分析了Struts框架工作...

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

    5.1.2 Eclipse的运行机制 5.2 建立Eclipse的开发环境 5.2.1 下载Eclipse 5.2.2 配置Eclipse 5.3 整合Eclipse和Tomcat 5.3.1 下载Eclipse的Tomcat插件 5.3.2 为Eclipse配置Tomcat插件 5.4 使用Eclipse建立Web开发项目...

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

    5.1.2 Eclipse的运行机制 5.2 建立Eclipse的开发环境 5.2.1 下载Eclipse 5.2.2 配置Eclipse 5.3 整合Eclipse和Tomcat 5.3.1 下载Eclipse的Tomcat插件 5.3.2 为Eclipse配置Tomcat插件 5.4 使用Eclipse建立Web开发项目...

    Struts原理、开发及项目实施

    Struts原理、开发及项目实施 Holen 2002-9-12 &lt;br/&gt;1... Servlet的演变:在常规的 JSP,Servlet,JavaBean三层结构中,JSP实现View的功能,Servlet实现Controller的功能,JavaBean实现Model的实现...

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

    虽然 Struts 解决了视图层、业务层和控制层的分离,但是并没有为数据持 久层提供灵活的框架支持。而 Hibernate 框架就是目前 Java 环境下基于 ORM 思 想的应用最为广泛的持久层框架技术。通过 Hibernate 使开发人员...

    低清版 大型门户网站是这样炼成的.pdf

    10.4.2 控制层struts 2实现 662 10.4.3 持久层hibernate3实现 672 10.4.4 spring 2接管业务逻辑层 675 10.5 小结 677 第11章 温故知新—打造购物车与订单管理系统 679 11.1 购物车与订单管理系统需求分析 679 ...

    Eclipse开发入门与项目实践 源代码

    7.3 SWT/JFace中的事件处理机制 251 案例7-2 借助SWT/JFace实现录入信息有效性检查 253 7.4 SWT/JFace中的常用组件 258 案例7-3 借助SWT/JFace中实现文件阅读器 259 7.5 SWT/JFace中的线程 264 案例7-4 ...

    JAVA程序开发大全---上半部分

    19.1 MyEclipse中的插件机制 327 19.2 MyEclipse使用PDE开发插件 328 19.2.1 简单的插件开发 328 19.2.2 创建一个空白的插件项目 331 19.3 RCP应用程序的开发 333 19.3.1 RCP应用开发初步 333 19.3.2 创建用户自定义...

    《程序天下:J2EE整合详解与典型案例》光盘源码

    5.1.2 Eclipse的运行机制 5.2 建立Eclipse的开发环境 5.2.1 下载Eclipse 5.2.2 配置Eclipse 5.3 整合Eclipse和Tomcat 5.3.1 下载Eclipse的Tomcat插件 5.3.2 为Eclipse配置Tomcat插件 5.4 使用Eclipse建立Web开发项目...

    火炬博客系统7

    业务层(bussiness Layer)和持久层(Persistence Layer),使用Spring框架整合Struts和 Hibernate,用Spring的“控制反转IOC”, 或者“setter依赖注入”来操作这些对象,这些对象在一个外部的XML文件中被引用。...

    火炬博客系统6

    业务层(bussiness Layer)和持久层(Persistence Layer),使用Spring框架整合Struts和 Hibernate,用Spring的“控制反转IOC”, 或者“setter依赖注入”来操作这些对象,这些对象在一个外部的XML文件中被引用。...

    火炬博客系统5

    业务层(bussiness Layer)和持久层(Persistence Layer),使用Spring框架整合Struts和 Hibernate,用Spring的“控制反转IOC”, 或者“setter依赖注入”来操作这些对象,这些对象在一个外部的XML文件中被引用。...

    商城之家jsp网店系统

    页面调转由STRUTS的控制层Controller实现,页面负责显示请求和响应,大大增强了“人机”的 互动性,这一层在STRUTS的视图层View用STRUTS标签+HTML等实现,同时使用validator验证框架进行 数据检验。数据的存储和持久...

    Spring面试题

    在struts配置文件中配置具体的错误提示,再在FormBean中的validate()方法具体调用。 9. 说下Struts的设计模式 MVC模式: web应用程序启动时就会加载并初始化ActionServler。用户提交表单时,一个配置好的ActionForm...

    宿舍管理系统

    Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,...

    (jsp源码)轻松商城

    数据和逻辑处理由STRUTS的模型层 Model进行处理,页面调转由STRUTS的控制层Controller实现,页面负责显示请求和响应,大大增强了“人机”的互动性,这一层在 STRUTS的视图层View用STRUTS标签+HTML等实现,同时使用...

    Spring-Reference_zh_CN(Spring中文参考手册)

    8.3.6. 运行集成测试 8.4. 更多资源 II. 中间层数据访问 9. 事务管理 9.1. 简介 9.2. 动机 9.3. 关键抽象 9.4. 使用资源同步的事务 9.4.1. 高层次方案 9.4.2. 低层次方案 9.4.3. TransactionAwareDataSourceProxy ...

    商城之家JSP商城基于jsp+mysql开发

    页面调转由STRUTS的控制层Controller实现,页面负责显示请求和响应,大大增强了“人机”的 互动性,这一层在STRUTS的视图层View用STRUTS标签+HTML等实现,同时使用validator验证框架进行 数据检验。数据的存储和持久...

    JSP商城之家商城企业版

    页面调转由STRUTS的控制层Controller实现,页面负责显示请求和响应,大大增强了“人机”的 互动性,这一层在STRUTS的视图层View用STRUTS标签+HTML等实现,同时使用validator验证框架进行 数据检验。数据的存储和持久...

Global site tag (gtag.js) - Google Analytics