一、struts简介
struts是开源的java web框架,他很好的实现了MVC模式,通过一个配置文件,把各个层面的应用组件联系起来,使组件在程序层面上联系较少,耦合度较低,这就大大提高了应用程序的可维护性和扩展性。
1、
struts框架中的核心包
包名 |
说明 |
action |
包含控制器类ActionForm及ActionMessage,以及其他几个必要的框架组件 |
actions |
包含立即可用out-of-box的Action类,诸如DispatchAction,允许你的应用程序使用或扩展 |
config |
包含配置configuration类,可用来在内存中存储struts配置文件的内容 |
taglib |
包含标记处理类tag handler类,处理的对象是struts标记库 |
tiles |
包含tiles框架所使用的类 |
upload |
所包含的允许浏览器从本地文件系统上载或下载文件 |
util |
包含整个框架都用到的通用工具类 |
validator |
包含struts特有的扩展类,可供struts部署验证器validator时使用,实际的validator类和接口独立于struts之外,被放在commons包中 |
二、struts的基本原理
struts应用程序启动时,它首先从struts-config.xml中读取相关信息。根据这些信息,它的控制器ActionServlet知道把视图中的请求转发给哪个业务逻辑组件处理。视图组件、控制器与业务逻辑组件之间没有代码上的联系,他们之间的关系在struts-config.xml中声明,这样大大提高了web应用程序的可移植性和可维护性。
三、struts的核心组件
struts的控制器组件
1、struts的ActionServlet类
ActionServlet类扩展了javax.servlet.http.HttpServlet类,其职责是把HTTP消息打包起来并路由传送到框架中合适的处理器。ActionServlet类并非抽象类,因此应用程序可把他作为具体的控制器来使用。它必须在web应用程序所使用的部署描述文件中配置。
2、Action类
struts框架中的org.apache.struts.action.Action类是控制器组件的一个扩展。他可以把客户端用户的动作与一个业务操作连接起来。Action类可以使客户请求和业务模型松散耦合,这种松散耦合让用户请求和action类之间不再只限于一对一的对应关系。Action类在调用业务操作之前,也可以完成其他功能,诸如认证、日志记录和会话验证。
Action类中的重要的execute()方法
public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response response)throws Exception;
3、struts配置文件struts-config.xml
struts应用的各个组件及其关系均在该文件中声明。
4、ActionMapping
当控制器收到一个请求时,它通过查看请求信息并使用一举动作映射对象(ActionMapping)来做出决定。动作映射(ActionMapping)是struts架构中一个特有对象,他封装了配置文件struts-config.xml中的action mapping元素所包含的配置信息。这个配置文件会在启动时加载到内存,让struts能够在运行时加以利用。
5、ActionForward类
ActionForward类所表示的是一个目标,也就是在Action完成后,控制器呀转交控制权的地方。以声明的方式把某个动作的转发映射与JSP页面相关联,然后再整个应用程序中使用哪个ActionForward对象。实际上,ActionForward对象封装在了配置文件struts-config.xml中forward元素所包含的信息。
struts的视图组件
struts应用程序的常见视图组件如下:
- JSP页面
- ActionForm
- Struts标记
- Java资源包
1、ActionForm类
ActionForm对象用来在用户和业务层之间传输客户的输入数据。ActionForm也叫FormBean.Struts会自动从请求中输入数据,在将这些数据交给一个使用formbean的action对象,接着FormBean可以再交给业务层。
ActionForm类最重要的两个方法reset()和validate(),这两个方法默认实现不完成任何默认的逻辑。必须在自己的ActionForm类中覆盖着两个方法。
控制器把请求中的表单数据填入ActionForm实例之前,会先调用reset()方法。reset()会将ActionForm性质重新设置回原来的默认状态。当请求数据插入ActionForm实例后,控制器会调用validate()方法,ActionForm应该对输入数据完成相应的必要验证工作,然后向控制器返回所检测到的任何错误。
2、struts标记库
struts框架定义的标记库有HTML标记库,Bean标记库,Logic标记库、Nested标记库、Template标记库、以及tiles标记库
要在应用程序中使用这些标记库,必须在web.xml文件中向web应用程序注册这些标记库。
3、使用消息资源包
对于你想支持的每种语言必须提供一个相应的资源包。类名或者属性文件名都必须遵循javadocs对java.util.ResourceBundle类所列的原则来命名。
struts的模型组件
struts框架在模型组件上没有太多支持,struts的模型组件可用javabeans或EJB
分享到:
相关推荐
struts入门与实践struts入门与实践.zip
struts 入门与实践
STRUTS入门案例 手写struts 完全抛开ide,了解struts原理的基础上手动创建编写。
Struts入门 详解Struts Struts入门 详解Struts Struts入门 详解Struts
Struts入门 作者:余立非 本书为入门者准备的,其中讲述了Struts的一些基础东西。请读者首先能建立一个Struts的开发环境,其次了解Struts基础的东西,由MVC的概念进入Struts。 目录 前言 简介 第一章 配置环境 第二...
Struts入门 作者:余立非 本书为入门者准备的,其中讲述了Struts的一些基础东西。请读者首先能建立一个Struts的开发环境,其次了解Struts基础的东西,由MVC的概念进入Struts。 本书的目的是使你快速入门。本书的...
针对第一次接触struts的同学,为同学们提供一个大家都看得懂的一个简单入门案例,希望在提升自己的同时,如果对别人有一点点的帮助那最好不过了
struts入门(中文版)struts入门(中文版)struts入门(中文版)struts入门(中文版)
struts入门与实践 struts入门的好助手,深入浅出,精辟易懂
Struts入门文档,里面有几个很容易入门的Struts例子,而且全面的讲述了Struts的运行原理和结构。
struts2--struts入门
Struts 入门好文章
struts入门 源代码
struts入门\ppt\Struts_lesson1.ppt struts入门\ppt\Struts_lesson1.ppt struts入门\ppt\Struts_lesson1.ppt
Struts入门(适合初学者)Struts入门
struts做的简单登录、struts入门的简单例子、适合struts初学者
struts入门 struts入门 struts入门struts入门
JSP-STRUTS 入门到精通
7 Struts 入门开发.doc