`
superfeng
  • 浏览: 4979 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

struts 入门基础知识学习总结

阅读更多
.struts工作流程
1.客户端所有特定(在web.xml中url-pattern中设置)的请求都由ActionServlet处理。
2.ActionServlet根据struct-config.xml的配置信息,将请求转发给相应Action对象。
3.当客户端提交表单的时候,会自动创建ActionForm对象,并将数据保存在对象里。
4.Action对象可以获取ActionForm对象里的数据。
5.Action对象调用业务逻辑组件,来完成业务处理。

二.struts 控制器的功能
1.接收用户特定请求
2.根据用户的不同请求,调用对应的模型组件完成相应的业务逻辑。
3.获取业务逻辑结果。
4.根据当前的处理结果,选择合适的视图组件返回给客户。

三.struts 控制器中重要的类
struts 框架中控制器的基础时ActionServlet。它负责从struts-config.xml中读取数据并初始化struts应用程序,并接收所有的用户请求。然后将请求的处理指派给RequestProcessor类。RequestProcessor首先选择与请求关联的Action Form Bean,然后把表单中提交的数据存储在Action Form Bean 里,在验证Action Form Bean.最后选择在配置文件中对应的action类来调用模型组件,来执行请求。并把处理结果,通过视图组件响应给客户。

ActionServlet —> RequestProcessor —> Action
RequestProcessor作为接收请求和执行请求的桥梁。

四. ActionServlet类
org.apache.struts.action.ActionServlet 类是继承HttpServlet类。既然继承HttServlet类,也就有
init(),doGet(),doPost(),destroy()方法。所有特定的用户请求(在web.xml文件url-pattern元素中配置)都由ActionServlet接收,然户交给RequestProcessor类处理,在根据struts-config.xml配置文件,把请求交给相应的Action来执行。


ActionServlet 使用process(request,response)自身方法来接收请求。在process方法中调用RequestPrcessor类的process方法。通过RequestProcessor类的process方法从struts-config.xml配置文件读取请求的URI,然后根据URI查找匹配的<action>元素。并根据<action>元素的name属性,查找相关联的<form-bean>元素,确定要用到的Action Form.获得Form Bean 的名称后,process方法创建由<form-bean>属性type命名Action Form的一个实例,然后用提交的数据填充,并调用Action Form的validata()方法验证提交的值。
此后才真正的开始处理请求,它首先从<action>元素的type属性获得Action类的一个实例,然后调用execute()方法返回一个Action Forward对象,最后确定应用程序下一个视图。
struts-config.xml文件默认位置在WEB-INF下,它也可用任何名称放在放置WEB-INF或子目录任何位置。
只要在web.xml文件配置下路径即可。
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>

而Action Servlet 将根据URL的模式截取HTTP请求。
<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>
只要提交.do的请求,都由ActionServlet接收。

五. RequestProcessor类
RequestProcessor类处理ActionServlet类接收到所有用户的特定(根据web.xml中url-pattern截取特定的请求)请求。将请求分解成多个任务,分别用不同的方法执行。
RequestProcessor类的部分方法
processPath()  获取客户端的请求路径
processMapping() 根据请求路径获取映射信息
processRoles()  检查用户角色是否允许访问资源
processForward() 处理<action-mapping>元素的forward以匹配当前请求的路径
processValidata() 调用Form Bean 的Validata()方法
processLocale()  位请求选择一个语言环境
processActionCreate() 实例化当前<action>元素type属性指定类的实例
processActionPerform() 调用action的perform()或execute()方法
processPreprocess() 告诉控制器调用此方法后,是否继续处理请求

如果开发人员要扩展ActionServlet类 ,一般是从RequestProcessor类着手。
要开发自己RequestProcessor类应遵循以下几步。
1.创建一个继承自org.apache.struts.action.RequestProcessor的类,在该类中显示定义一个无参,方法体为空的构造函数。
2.重写所需的方法。
3.修改struts-config.xml文件,在<action-mapping>元素后面加上一个<controller>的元素,用以指定自定义的RequestProcessor类。
<controller>元素的属性
processorClass 属性指定处理请求java类的完整类名。默认值是org.apache.struts.action.RequestProcessor。也可以设置成自定义的类,该类必须继承RequestProcessor。
contentType 指定http响应的内容内类和编码方式
local 是否把local对象保存到当前用户session中

六.Action类
Action类是用户请求和业务逻辑之间的桥梁。开发者可以创建Action的一个或多个子类,在子类中加入所需的业务逻辑代码,准备处理不同的页面请求。Action类调用execute()方法处理请求,并返回ActionForward对象,已确定控制权转交到何处提供响应。
execute()方法的各种参数含义
ActionMapping  是对struts-config.xml文件的映射
ActionForm  与当前请求相关联Action Form Bean
HttpServletRequest 指http请求对象
HttpServletResponse 指http响应对象

七.ActionForward 类
ActionForward对象映射是配置文件struts-config.xml中<forward>元素,封装了响应页面的URI
<forward>元素的属性
name  指定ActionForward的逻辑名,ActionForward根据findForward()方法查找相应的ActionForward对象
path  指定ActionForward的URI
redirect 指定页面的跳转方式。默认值为false(forward),如果位true(redirect)
而ActionForward类的对象是由ActionMapping类的findForward()方法产生的。在服务器启动初始化,会对struts-config.xml的配置信息初始化,服务器会针对每个<action>元素创建一个与之对应的ActionMapping实例,该实例作为参数传递给Action的execute()方法。ActionMapping的映射信息存储在<ation-mapping>元素中

九.struts-config.xml的DTD
<!ELEMENT struts-config(data-source?,form-bean?,global-exceptions?,global-forwards?,action-mapping?controller?,message-resource?,plug-in?)>
在struts配置文件中,必须按照DTD指定的顺序来配置,元素不能颠倒顺序。
分享到:
评论

相关推荐

    struts2入门的学习资料.pdf

    以下是对标题和描述中所提及的Struts2入门学习的关键知识点的详细解释: 1. **Action**: - 在Struts2中,Action是处理用户请求的核心组件,它实现了`com.opensymphony.xwork2.Action`接口或其子接口,负责业务...

    struts入门与实践.zip

    本资料"struts入门与实践.zip"是一个压缩包,包含了关于Struts框架的基础知识和实战教程。 Struts的核心概念包括: 1. **Action类**:在Struts中,Action类是业务逻辑的主要载体。它负责接收来自客户端的请求,...

    struts2入门学习源码

    这个入门学习源码包包含了关于Struts2的基础知识、学习笔记以及源码实例,旨在帮助初学者快速理解和掌握Struts2的核心概念和技术。 首先,让我们深入了解Struts2的基本原理。Struts2是Apache软件基金会的一个开源...

    Struts2.0基础知识培训

    — Web应用的发展 — Model 1和Model 2 — MVC思想 — MVC模式的优势 — 常用MVC框架及其特征 — Struts 1的基本结构及其存在的问题 — WebWork的基本结构 — Struts 2的起源 ...— Struts 1和Struts 2的对比

    struts2入门级的例子

    这个“struts2入门级的例子”是一个非常适合初学者的资源,它将引导你了解Struts2的基础知识和核心概念。通过实践这些例子,你可以快速掌握Struts2的使用方法,从而提高你的Web开发技能。 1. **配置环境**: 首先,...

    struts2入门demo

    这个"struts2入门demo"是为初学者准备的一个基础实践项目,旨在帮助理解Struts2的核心概念和工作流程。让我们深入探讨一下Struts2的关键知识点。 首先,Struts2是一个基于MVC(Model-View-Controller)架构的框架,...

    Java-Struts入门初步知识.doc

    在本文中,我们将深入探讨Struts入门的基本知识,包括如何安装Struts,以及如何使用Struts创建一个简单的用户注册系统实例。 1. 安装Struts 要开始使用Struts,首先需要从Apache Jakarta网站下载最新版本的Struts...

    Struts2入门demo

    Struts2是一个强大的Java web开发框架,用于构建和维护可扩展且易于管理的企业级应用程序。...通过分析和运行这个入门demo,初学者可以快速理解Struts2的基本工作流程,为深入学习和实际项目开发打下基础。

    struts_基础知识和入门

    ### Struts基础知识与入门详解 #### 一、MVC概念解析 MVC(Model-View-Controller)是一种广泛应用于软件工程的设计模式,特别是在Web应用程序开发领域。它将应用程序分为三个核心部分:模型(Model)、视图(View)和...

    Struts入门到精通

    Struts 是一个开源的...总的来说,"Struts入门到精通"涵盖了从基础概念理解、环境搭建、第一个应用开发,到深入理解框架机制的全过程。通过学习和实践,开发者能够熟练掌握Struts框架,有效地构建大型企业级Web应用。

    struts2从入门到精通总结(备忘)

    Struts2是一个强大的Java Web应用程序框架,用于构建MVC...通过以上知识点的学习和实践,你将能够熟练掌握Struts2框架,为构建高效、可维护的Java Web应用打下坚实基础。不断探索、实践和总结,是精通任何技术的关键。

    struts1.3 入门级例子

    Struts1.3 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它由Apache软件基金会开发并维护。...通过实践这个例子,可以为学习更复杂的Struts1.3应用或其他Java Web框架打下坚实的基础。

    Struts2轻松入门,Struts2总结

    本文将深入探讨Struts2的基础知识,包括其核心概念、主要特性以及与Struts1.x的区别。 一、Struts2的核心概念 1. **FilterDispatcher**:Struts2的核心控制器,负责接收HTTP请求,解析Action映射,然后调用相应的...

    泰牛程序员 韩顺平 JavaEE全套 第15部分 Struts2基础入门

    - **基础准备**:在学习Struts2之前,建议先掌握JavaSE、HTML、CSS、JavaScript等基础知识。 - **官方文档阅读**:阅读Struts2官方文档可以帮助你更深入地理解框架的工作原理和技术细节。 - **动手实践**:通过编写...

    struts2.0基础入门

    本文将深入探讨Struts2的基础知识,包括核心概念、表单验证、国际化、拦截器、IOC模式、标签、表达式、Ajax、上传下载以及视图等方面。 **核心概念** Struts2基于Model-View-Controller(MVC)设计模式,通过分离...

    struts2开发入门以及webWork开发入门文档

    - `Struts2学习入门.pdf`可能是一个全面的PDF教程,涵盖Struts2的各个方面,适合初学者系统学习。 - `webwork2开发指南.pdf`则是针对WebWork框架的指导手册,帮助理解WebWork的设计原理和用法。 通过以上文档,你...

    hibernate+struts 入门PPT

    【hibernate+struts 入门PPT】是一份专为初学者设计的IT教程资料,涵盖了两个关键的Java Web开发框架——Hibernate和Struts的基础知识。Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者用Java对象来...

Global site tag (gtag.js) - Google Analytics