`
roruby
  • 浏览: 335074 次
  • 来自: ...
社区版块
存档分类
最新评论

Struts 如何工作的

阅读更多
http://jakarta.apache.org/struts/faqs/works.html
(这时我刚刚翻译好的,欢迎转载和交流,请在转载之前注明作者信息,谢谢)
Java Servlets 被设计用于操控(handle)Web浏览器的请求。Java ServerPage被设计用于创建哪些可发布宣传站点到在线应用系统中的动态Web页面。Struts使用一个特殊的Servlet作为“交换机”,将来自Web浏览器的请求转到相应的ServerPage。这使Web应用更加容易设计、创建和维护。
以下是有关Struts的机制和依存关系的更加详细说明:
l 你开发的web应用有一个必须要写的部署描述文件(WEB-INF/web.xml)。这个文件描述了你的web应用的配置,包括欢迎页面(welcome pages)(当请求没有指定时,出现在目录下的文件)、servlet(路径或者扩展名)和那些servlets的参数的映射。
在这个文件中,你配置Struts ActionServlet作为一个操控所有指定映射(通常以.do为扩展名)请求的servlet。这就是前面提到的“交换机”。
也在这个文件中,你配置ActionServlet使用一个或者多个用于Struts本身的配置文件。
在本教程中,假定我们将web应用安装在服务器的/myapp下,并且使用最简单的可能配置。
如果你需要了解有关部署描述符方面更加详细的情况,请阅读Servlet 规范,这个可以在Sun的Java站点获得。
l 在Struts配置文件中,你将路径和你应用程序的控制组件相关联,像Action类(例如:“login”=>LoginAction类)。这告诉Struts的ActionServlet,当来一个http://myhost/myapp/login.do请求时,应该调用你的控制组件LoginAction。
注意在这个URL中的后缀.do。这个后缀导致你的容器(例如Tomcat)去调用ActionServlet,它将单词“login”看做你要做的一件事。当这个配置被引用后,你的LoginAction也配执行。
l 对于每个Action,你也可以用结果页面(resulting page)的名字配置Struts,这些结果页面可以显示作为动作的结果。动作的结果可以有不止一种的视图(通常的,它至少有两种:一个是成功,一个是失败)。你的Action(你写的控制组件)依赖于这些“逻辑”结果的映射名。它使用一些诸如“success”“、failur”、“ok”、“UserInIncompetent”等词向ActionServlet回报。Struts系统(通过你写的配置文件)知道如何转向到合适的指定页面。这就是通过简单的编写Struts XMl配置文件为视图层进行重新配置所带来的额外好处。
从这点来看,Struts知道如何委派你的控制组件,知道你的控制器处理结果要显示什么。应用程序的模型(model)部分完全取决于你,它从你的控制组件内被调用。
l 你也许要在Struts配置文件中将一个Java Bean和一个action(或者一组action)相关联。Java Bean被当做form或者显示数据的仓库(repository),它可以在view和controller层通信。
这些Beans对你的控制组件(像LoginAction)和任何与控制器(controller)相关联的显示页面都将自动可见。
在Struts系统的帮助下,这些Beans将被核准用于帮助确认用户在表单中输入正确的数据。它们可以被一个session携带,允许表单(form)跨越多个视图页面,而Actions在控制器中。
注意:为了使显示层看到这些数据,你必须使用一些服务端技术(JSP、Velcity、XSLT)(静态的HTML不起作用)。
Struts工作在服务端,因此客户的视图必须在那里编写。客户端通过一般的表单提交(POST/GET)方法反馈数据,Struts系统在调用你的控制组件之前更新Bean里面的数据。
l 在你的web应用中,将会有一些页面,这些页面用于表现你的用户将看到的视图。这些可以是JSP页面,Velocity模板,XSLT页面等等。一组JSP标签和Struts发行包绑定,这样,你可以立刻使用,但不是说任何标准的表示技术(presentation technology)都可以在Struts中使用。
当然,静态HTML文件可以在你的Struts应用中使用,但是它们将不能获得充分获得动态特点的好处。
在Struts JSP taglibs的例子中,提供了一些其他包,使这个framework更加容易使用你的一些喜好的表现技术。对于Velocity 模板,有用于Struts的Velocity的ViewTools。如果你要使用XSLT在你的应用中,你可以在stxx和StrutsCX之间选择。
这些包使标准的Struts框架元素看起来像是原来表现技术的不可分割的一部分。Struts也使它变得容易混合和搭配。如果需要,你可以在同一个应用中使用JSP、velocity模板和XSLT!
由于Struts依赖于标准的Servlet技术,所有你应该可以在Struts中使用任何Java表现技术。
l 虽然Struts框架的焦点在控制器(controller),但是表现层是任何一个应用的有机部分。Struts JSP标签库包括一些普通的和Struts特有的标签,用于帮助在你的视图中使用动态数据。
客户定制JSP标签占Struts基础代码的很大一部分。一个有教育意义的是,在1.1b3版本中,有关Struts的核心Java代码是大约28,000行,而标签库(包括tiles)的Java代码是将近41,000行。
这些标签有助于你将你的视图层和控制层粘合而不需要插入很多Java代码在JSP中。这使页面看起来像一个XML文件,比起一个寻常的JSP文件,这使web设计者更加容易处理。这也有助于减少控制和视图的耦合性。
客户定制标签用于创建表单(非显示的和前面提到的Bean相关),逻辑上指向其他页面,然后激活web应用中的其他action。
还有一些标签是帮助你进行国际化、错误消息处理等等。所有这些功能都依靠你在应用于Struts中的配置文件的一些方法。
你需要记住的重要一点是,这里所说的机制仅仅在ActionServlet操控请求时才有效。
既然这只发生当你的请求被提交然后致使容器调用ActionServlet的情况下,所以你必须确保任何依赖于Struts的页面的请求是映射到ActionServelt的。
分享到:
评论

相关推荐

    最详细的Struts工作流程图

    这是一个详细的Struts工作流程图,里面包含JSP、java(Action、ActionForm等)类

    struts工作原理图、spring框架结构图、hibernate工作原理图

    1. Struts工作原理: Struts 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架。其主要目标是提供一个用于创建可维护性高、易于测试的Web应用程序的结构。Struts工作流程如下: - 用户通过浏览器向...

    struts工作原理和配置

    Struts工作原理** Struts的核心是ActionServlet,它是一个定制的Servlet,负责处理所有的HTTP请求。当用户发送请求到服务器时,ActionServlet首先会解析请求中的参数,并根据struts-config.xml配置文件中的定义来...

    struts工作汇报系统

    Struts工作汇报系统是一个基于Java Web的典型应用,主要用于实现员工的工作汇报管理。该系统采用Struts框架,结合JSP技术进行开发,旨在提供一个高效、便捷的平台,让员工能够方便地提交工作汇报,同时便于管理者...

    struts工作流程

    ### Struts工作流程详解 #### 一、Struts框架简介 Struts是一个开源的MVC(Model-View-Controller)框架,主要用于Java Web应用程序的开发。它为开发者提供了一种结构化的方式来组织代码,使各个组件能够更好地...

    Struts工作流程

    以下是对Struts工作流程的详细解释: 1. **请求发起**: 当用户在浏览器中输入URL并点击提交时,请求被发送到服务器。这个URL通常指向一个ActionServlet,它是Struts框架的核心组件。 2. **ActionServlet处理**:...

    Struts工作流程.ppt

    本讲重点在于理解Struts的工作流程以及如何在MyEclipse环境下进行Struts开发。 首先,我们回顾一下相关知识。JavaEE是企业级Java应用的标准,SSH(Struts、Spring、Hibernate)是其中常见的三大框架组合。Struts...

    struts工作原理不错的解释___已看(不错).txt

    struts工作原理不错的解释___已看(不错).txt

    Struts2工作流程图

    虽然Struts2号称是一个全新的框架,但这仅仅是相对Struts 1而言。Struts 2 与Struts 1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork基础上发展起来的。从某种程度...

    struts2工作流程

    在深入探讨Struts2的工作流程之前,我们先了解一下MVC模式的基本概念。MVC模式将应用逻辑分隔为三个部分:模型(Model)处理业务逻辑,视图(View)负责展示数据,控制器(Controller)协调用户输入和模型间的交互。...

    struts的工作原理

    学习的时候总结出来的,相当清晰的描述了struts2

    Struts基本知识培训

    2.1 **STRUTS工作原理** Struts通过拦截用户请求并控制应用程序的流程来运作。当用户发起HTTP请求时,ActionServlet作为Controller接收请求,根据配置文件(Struts-config.xml)来决定调用哪个Action类,Action类...

    struts相关文档集锦

    2. **Struts工作流程** - **请求分发**:当用户发起HTTP请求时,Struts的Front Controller(通常是Servlet)接收到请求并进行初步处理。 - **Action Mapping**:根据struts-config.xml中的配置,确定哪个Action类...

    struts-1.2.9源码

    3. **Struts工作流程** 1. 用户发起HTTP请求,ActionServlet捕获请求。 2. ActionServlet解析请求,查找与之对应的ActionMapping。 3. 根据ActionMapping,创建ActionForm实例,填充请求参数。 4. 调用Action的...

    Struts 文章系统(JSP)

    Struts工作流程** 当用户发起HTTP请求时,Struts框架的前端控制器(ActionServlet)接收请求,根据配置文件(struts-config.xml)决定调用哪个Action类。Action类执行相应的业务逻辑,然后返回一个ActionForward...

    struts工作原理

    Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web开发框架,由Apache软件基金会维护。...在实际项目中,理解并熟练运用Struts的工作原理,可以有效地提高开发效率,同时保证代码的整洁性和可扩展性。

    学生选课系统Struts

    Struts工作原理** 当用户向服务器发送请求时,Struts框架首先通过ActionServlet拦截请求,然后根据struts-config.xml配置文件中的映射信息,将请求转发到相应的Action类。Action类执行业务逻辑后,可能会更新模型,...

    jsp +struts 分页经典

    在IT行业中,JSP(JavaServer Pages)和Struts框架是开发Web应用程序的常用技术,尤其在企业级应用中占据重要地位。...同时,这种分页经典实例也为我们提供了一个学习和理解MVC架构以及Struts工作原理的实用示例。

    Struts教程,Struts,Struts初级教程

    3. **Struts工作流程** - 用户发送HTTP请求到服务器。 - Struts的ActionServlet作为控制器接收请求,解析请求参数。 - ActionServlet根据配置文件(struts-config.xml)决定调用哪个Action类。 - Action执行相应...

Global site tag (gtag.js) - Google Analytics