Java3讲义_day5 AM_Struts
struts使用技巧
struts使用技巧Struts是一种Java Web应用程序框架,被广泛用于开发MVC (模型-视图-控制器)架构的Web应用程序。
它提供了在Web应用程序中使用的一组工具、类和方法,以简化开发过程。
下面是一些使用Struts的技巧:1. 使用Struts的配置文件:Struts使用一个XML配置文件来定义Web应用程序的行为和流程控制。
配置文件中定义了应用程序中的所有操作、控制器和视图之间的关系。
了解如何正确配置Struts的配置文件可以帮助开发人员更好地组织和管理应用程序。
2. 使用合适的Action类和方法:在Struts中,Action类是控制器的一部分,负责处理请求并将数据传递给视图。
了解不同类型的Action类和方法,以及它们的作用和用法,可以更好地设计和编写应用程序的控制器部分。
3. 使用合适的验证和校验:Struts提供了一组验证和校验的工具和类,可以用于验证用户输入的数据。
了解如何正确使用这些工具和类可以帮助开发人员有效地验证表单数据,并及时地反馈给用户。
4. 使用合适的模型:在Struts中,模型是应用程序的数据和业务逻辑部分。
了解如何正确使用模型可以帮助开发人员更好地组织和管理应用程序的数据和业务逻辑。
5. 使用合适的视图:在Struts中,视图负责展示数据给用户。
了解如何正确使用视图可以帮助开发人员设计和编写用户友好的界面。
6. 使用合适的标签库和EL表达式:Struts提供了一组标签库和EL表达式,可以用于更方便地处理和展示数据。
了解如何正确使用这些标签库和EL表达式可以帮助开发人员更好地展示和处理数据。
7. 使用合适的异常处理机制:在Struts中,异常处理是一个重要的部分,负责处理应用程序中可能出现的异常情况。
了解如何正确使用异常处理机制可以帮助开发人员更好地处理异常,提高应用程序的稳定性。
总之,以上是一些使用Struts的技巧。
熟练掌握这些技巧可以帮助开发人员更好地开发和管理Struts应用程序。
struts流程
struts流程Struts流程。
Struts是一个用于开发JavaEE web应用程序的开源MVC框架。
它将应用程序的不同方面分离开来,使得开发人员可以更加专注于业务逻辑和用户界面的开发。
在本文中,我们将介绍Struts的基本流程,包括请求的处理和页面的渲染等。
首先,当用户发送一个请求时,请求会被DispatcherServlet捕获。
DispatcherServlet是Struts的核心控制器,它负责将请求分发给合适的Action来处理。
在Struts中,每个请求都会对应一个Action类,这个类负责处理请求并返回相应的结果。
接下来,DispatcherServlet会根据请求中的URL找到对应的Action类,并调用它的execute方法。
在execute方法中,开发人员可以编写业务逻辑,比如从数据库中获取数据、进行计算等。
一旦execute方法执行完毕,它会返回一个结果,通常是一个字符串,表示下一步应该跳转到哪个页面。
然后,DispatcherServlet会根据execute方法的返回结果,找到对应的页面,并将页面渲染出来。
在Struts中,页面通常使用JSP来编写,开发人员可以在JSP中使用Struts的标签库来获取Action返回的数据,并将数据展示给用户。
页面渲染完毕后,DispatcherServlet会将页面发送给用户的浏览器,用户就可以看到页面了。
除了上述的基本流程,Struts还提供了很多其他的功能,比如表单验证、国际化、文件上传等。
开发人员可以通过配置Struts的配置文件来使用这些功能,从而提高开发效率和代码的可维护性。
总的来说,Struts的流程非常清晰简单,开发人员只需要关注业务逻辑和页面展示即可,不需要过多地关注请求的处理和页面的渲染。
这使得开发人员可以更加高效地开发web应用程序,同时也使得代码更加易于理解和维护。
在实际的项目中,Struts已经被广泛应用,它不仅可以用于传统的web应用程序开发,还可以用于RESTful API的开发。
struts的工作原理
struts的工作原理Struts是一个用于开发Java Web应用程序的开源框架,它基于MVC(Model-View-Controller)设计模式,旨在简化Web应用程序的开发过程。
Struts框架提供了一套标准的开发流程和组件,以帮助开发人员更加高效地构建可维护和可扩展的Web应用程序。
Struts的工作原理可以分为以下几个步骤:1. 请求的接收与处理当用户在浏览器中输入URL或点击页面上的链接时,请求将发送到Web服务器。
Web服务器通过配置将请求发送给Struts框架的核心控制器,即ActionServlet。
2. 核心控制器的处理ActionServlet是Struts框架的核心组件,它负责接收并处理所有的请求。
当ActionServlet接收到请求后,它会根据配置文件中的映射关系找到相应的Action类来处理请求。
3. Action类的执行Action类是Struts框架中的控制器组件,负责处理具体的业务逻辑。
在接收到请求后,ActionServlet会根据配置文件中的映射关系实例化相应的Action类,并调用其execute()方法来执行业务逻辑。
4. 数据封装与验证在执行业务逻辑之前,Struts框架会根据配置文件中的映射关系,将请求中的参数封装到Action类的属性中。
同时,Struts框架还提供了数据验证的功能,可以通过配置文件对请求参数进行验证,确保数据的合法性。
5. 业务逻辑的处理在Action类的execute()方法中,开发人员可以编写具体的业务逻辑代码。
例如,从数据库中读取数据、调用其他服务等。
执行完业务逻辑后,Action类会返回一个结果视图,即要展示给用户的页面。
6. 视图的渲染与响应在Action类执行完业务逻辑后,它会返回一个结果视图的逻辑名称。
Struts框架会根据配置文件中的映射关系找到对应的JSP页面,并将结果数据传递给JSP页面进行渲染。
最终,Struts框架会将渲染后的HTML页面作为响应发送给用户的浏览器。
struts的工作原理
struts的工作原理Struts是一个开源的Java Web应用程序框架,它基于MVC(Model-View-Controller)设计模式,用于简化Web应用程序的开发。
Struts框架通过将应用程序的不同层进行分离,提供了一种结构化的方法来构建Web应用程序。
Struts的工作原理可以分为以下几个步骤:1. 请求的接收:当用户在浏览器中发起请求时,Struts框架的前端控制器(Front Controller)会拦截请求。
前端控制器是一个Servlet,它负责接收所有的请求,并将请求分发给相应的处理程序。
2. 请求的处理:前端控制器将请求分发给相应的Action类。
Action类是一个Java类,它包含了处理请求的业务逻辑。
在Struts中,Action类是通过继承ActionSupport类来实现的。
3. 表单数据的处理:如果请求中包含表单数据,Struts框架会自动将表单数据封装到一个JavaBean对象中。
这个JavaBean对象通常被称为ActionForm。
ActionForm是一个普通的Java类,它包含了与表单字段对应的属性和相应的getter 和setter方法。
4. 业务逻辑的处理:在Action类中,可以编写业务逻辑代码来处理请求。
这些代码可以访问数据库、调用其他Java类或执行其他必要的操作。
一般情况下,业务逻辑的处理会产生一个结果,比如一个页面的显示或者一个重定向。
5. 视图的渲染:根据业务逻辑的结果,Struts框架会选择合适的视图来渲染。
视图通常是一个JSP页面,它负责将结果展示给用户。
在JSP页面中,可以使用Struts标签库来获取ActionForm中的数据,并根据需要进行显示。
6. 响应的发送:一旦视图完成渲染,Struts框架会将响应发送回浏览器,用户可以看到相应的结果。
这个响应可以是一个完整的HTML页面,也可以是一个XML文档或其他格式的数据。
总结:Struts的工作原理可以简单概括为:接收请求、处理请求、封装表单数据、执行业务逻辑、选择视图、渲染视图、发送响应。
struts的工作原理
struts的工作原理Struts是一个基于Java的开源Web应用程序框架,它遵循了MVC(Model-View-Controller)设计模式,用于简化Web应用程序的开辟过程。
Struts的工作原理涉及到请求的处理、控制流程以及数据流动等方面。
下面将详细介绍Struts的工作原理。
1. 请求处理:当用户在浏览器中输入URL并发送请求时,请求首先到达Web服务器。
Web服务器根据URL的映射规则将请求转发给Struts框架。
2. 控制流程:Struts框架通过一个核心控制器(Controller)来管理请求的处理流程。
核心控制器是一个Servlet,它负责接收请求并将其分发给相应的Action处理。
3. Action处理:Action是Struts框架的核心组件之一,负责处理具体的业务逻辑。
每一个Action对应一个特定的请求,它接收请求参数、执行相应的业务逻辑,并返回结果。
4. 数据流动:在Struts框架中,数据的流动遵循MVC设计模式。
当请求到达Action时,Action会根据请求参数获取所需的数据,并将其存储在一个称为ActionForm的JavaBean中。
5. 视图呈现:视图(View)负责将处理结果展示给用户。
在Struts框架中,通常使用JSP (JavaServer Pages)作为视图技术。
Action会将处理结果传递给JSP,然后JSP负责将结果呈现给用户。
6. 结果返回:在Action处理完成后,它会返回一个结果对象给核心控制器。
结果对象包含了下一步要执行的操作,比如跳转到另一个页面或者返回错误信息。
7. 响应生成:核心控制器根据结果对象中的指示,生成相应的响应并返回给Web服务器。
Web服务器将响应发送给浏览器,最终用户可以看到处理结果。
总结:Struts框架的工作原理可以概括为:用户发送请求到Web服务器,Web服务器将请求转发给Struts框架的核心控制器,核心控制器将请求分发给相应的Action进行处理,Action处理完成后将结果返回给核心控制器,核心控制器根据结果生成响应并返回给Web服务器,最终用户可以看到处理结果。
Struts课件
<action-mappings>标记
<action-mappings>
<action
attribute="loginForm" input="/login.jsp" name="loginForm" path="/login" scope="request" type="action.LoginAction"> <forward name="ok" path="/ok.jsp" /> <forward name="error" path="/error.jsp" /> </action>
登录失败页面(error.jsp)
登录成功页面具体代码见error.jsp文件。
创建ActionForm类
ActionForm组件类定义 public class LoginForm extends org.apache.struts.action.ActionForm { …… }
ActionForm类作用
创建Action类
Action组件类定义
public class LoginAction extends Action { …… }
LoginAction 类定义
Action类中的execute方法
public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
第五讲 struts
Struts框架
本讲内容
MVC模式 理解框架与容器 Struts框架 Struts2开发实例
Struts实例
开发Struts实例的步骤(以Eclipse环境为例) 将相应的支持包引入开发环境 定制web特性 开发action类 配置action 使用action是一个基于Sun J2EE平台的MVC框架,是 MVC模式的一种实现。 Struts继承了MVC的各项特性,并根据J2EE的特点, 做了相应的变化与扩展。 Struts能充分满足应用开发的需求,简单易用,敏 捷迅速,颇受关注。
Struts的结构
业务逻辑 业务逻辑更新模型的状态,并帮助控制应用程 序的流程。就 Struts 而言,业务逻辑是由 Action 类完成的。 Action 类封装了具体的处理过程,调 用业务逻辑模块,并将响应提交给合适的视图组件 以产生响应。
经典MVC模式与Web应用程序 中的MVC模式
经典MVC模式落伍了(续) 在Web版的MVC中,视图不能直接调用控制器, 但是可以基于web请求映射成不同的URL。 视图不是一个可被更新的对象,而是在客户端发出 新请求的时候随之重新呈现的Web页面。 模型也不能将自身的改变通知视图,因为视图呈现 在另一台机器的用户浏览器中。因此视图每次都要 依据最新的数据重新生成。
1 Servlet 请求到达分发 分发器 器中转换成 action command HTTP 响应 响应在Servlet 响应中转换成 Web识别的响应 HTTP 请求 XWork 2 3 用户的 Action (构件在 Struts和 XWork 基础上) 6
Servlet 响应
4
5
Struts简介
JAVA实用教程(第三版)课后习题及答案
{
void g()
{
A a=new A(); a.weight=23f; a.f(3,4);
}}
答:a.weight=23f;错
1.编写一个类,该类创建的对象可以计算等差数列的和。解:classDengCha{
int start,d; DengCha(){
Case 4: System.out.printf(“%c”,’d’); Break;
}
}
输出:a,b, b,c,d,d
9.下列System.out.printf语句输出的结果是什么?
Char a[]={‘a’,’b’,’c’,’d’,’e’}; For(i=0; i<=a.length/2; i++)
答:不,只加载本程序用到的类到内存中,因为java程序是动态加载, 字节码类文件。
16.有哪几种访问权限修饰符?说出一种的作用。答:访问权限修饰符有public,private,protected.
Private作用是只允许本类的对象访问。
17.怎样反编译一个类?
答:使用SDK提供的反编译器javap.exe文件可以实现将字节码文件反编译为源码文件。可查看源码中public方法和public成员变量的名字。如加入参数-private则可列出其全部的成员方法和成员变量。
9.请阐述为什么类方法不能调用实例方法?
答:对于类方法在该类加到内存时就分配了相应的入口地址,所以即使该类未创建对象,也可以通过类名调用类方法。而这时在类对象创建之前,实例方法还没有入口地址。还不知道一个方法从何处开始执
行,当然不能调用。
10.请阐述,为什么类方法中不能操作实例成员变量?
Java_struts03
Form Bean的表单验证流程 Bean的表单验证流程
当用户提交了HTML表单,Struts框架自动把表单数据组 当用户提交了HTML表单,Struts框架自动把表单数据组 装到ActionForm Bean中。 装到ActionForm Bean中。 接下来Struts框架会调用ActionForm Bean的 接下来Struts框架会调用ActionForm Bean的validate() 方法进行表单验证。 如果validate()方法返回的ActionErrors 对象为null,或 如果validate()方法返回的ActionErrors 对象为null,或 者不包含任何ActionMessage对象,就表示没有错误, 者不包含任何ActionMessage对象,就表示没有错误, 数据验证通过。 如果ActionErrors中包含ActionMessage对象,就表示 如果ActionErrors中包含ActionMessage对象,就表示 发生了验证错误,Struts框架会把ActionErrors对象保存 发生了验证错误,Struts框架会把ActionErrors对象保存 到request范围内,然后把请求转发到恰当的视图组件, request范围内,然后把请求转发到恰当的视图组件, 视图组件通过<html:errors>标签把request范围内的 视图组件通过<html:errors>标签把request范围内的 ActionErrors对象中包含的错误消息显示出来,提示用户 ActionErrors对象中包含的错误消息显示出来,提示用户 修改错误。
要使用 Bean 标签库,则必须将部署描述符代码包括在 web.xml 文件中
<bean:write name="user" property="name"/> <bean:message key= "strutsdemo.title" /> <taglib> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> <taglib-uri>/WEB-INF/struts-bean.tld</taglib-url> <taglib-location>/WEB-INF/struts-bean.tld </taglib-location> </taglib>
struts框架详细介绍
struts框架详细介绍Struts是一个开源的Java Web应用程序开发框架,可以帮助开发者构建可扩展的、高性能的Web应用程序。
它遵循了Model-View-Controller(MVC)设计模式,通过将业务逻辑、表示逻辑和用户交互进行分离,使得应用程序更易于开发、测试和维护。
下面是关于Struts框架的详细介绍。
1.MVC设计模式:Struts采用了MVC设计模式,将应用程序的不同组成部分进行分离。
- Model层负责处理数据和业务逻辑。
在Struts中,开发者可以使用JavaBean、EJB、Hibernate等技术作为Model层的实现。
- View层负责展示数据和用户界面。
Struts提供了JSP(JavaServer Pages)作为主要的View技术,也可以使用Velocity、Freemarker等模板引擎。
- Controller层负责接收用户请求、处理业务逻辑以及将结果返回给View层。
Struts的Controller层使用ActionServlet来处理请求,它根据配置文件中的映射规则将请求转发给合适的Action类进行处理。
2.核心组件:Struts由以下几个核心组件组成:- ActionServlet:负责接收和处理来自客户端的请求,并根据配置文件中的映射规则将请求转发给合适的Action类进行处理。
- Action类:实现了业务逻辑的处理,接收请求和返回结果。
开发者需要继承Action类,并覆写其中的execute(方法来实现自定义的业务逻辑。
- ActionForm:用于封装请求参数并传递给Action类进行处理。
ActionForm可以与表单元素进行绑定,从而方便地获取和验证用户输入。
- ActionMapping:配置文件中的一项规则,用于将请求URL映射到具体的Action类和方法。
- ActionForward:配置文件中的一项规则,用于指定请求处理完成后需要跳转到的页面。
Struts教程
Struts教程本教程将介绍Struts的基本概念和核心组件,以及如何使用Struts开发Web应用程序。
一、Struts概述1. 模型(Model):模型表示应用程序的数据和业务逻辑。
在Struts中,模型通常由Java类组成,用于处理数据操作和业务逻辑的实现。
2. 视图(View):视图是用户界面的呈现,通常是JSP(JavaServer Pages)文件。
它负责将数据呈现给用户,并处理用户输入。
3. 控制器(Controller):控制器负责处理用户请求,并将其分派给适当的模型和视图。
在Struts中,控制器由Action类实现,它根据请求的URL路径和参数执行相应的业务逻辑。
二、Struts的基本原理1.客户端发送HTTP请求到服务器。
2. 服务器的Servlet容器接收到请求,并将其分派给Struts的ActionServlet。
3. ActionServlet根据请求的URL路径找到相应的Action类。
4. Action类执行业务逻辑,并将业务结果存储在模型中。
5. Action类调用适当的视图呈现模型数据。
6.视图生成HTML页面并将其返回给客户端。
三、Struts的核心组件1. Action:Action是一个Java类,用于处理用户请求和执行业务逻辑。
它包含了不同的方法,如初始化、数据校验和处理逻辑等。
2. ActionForm:ActionForm是一个JavaBean,用于封装和验证用户输入的数据。
它通常与JSP页面的表单相对应,并且可以通过XML配置文件进行验证。
3. ActionMapping:ActionMapping用于将URL路径和参数映射到正确的Action类。
通过配置XML文件,开发人员可以指定不同URL路径的映射关系。
4. ActionServlet:ActionServlet是整个框架的核心控制器,负责接收客户端请求并将其分派给正确的Action类。
5. Struts配置文件:Struts配置文件是一个XML文件,用于配置整个应用程序的所有映射关系和其他设置。
struts框架的原理和应用
Struts是一个基于Java语言的开源Web应用程序框架,由Apache软件基金会开发和维护。
Struts框架基于MVC(模型-视图-控制器)设计模式,为构建企业级Java Web应用程序提供了一种简化和标准化的方法,使开发人员能够更加轻松地进行Web应用程序的设计和构建。
1. Struts框架的原理:Struts的工作原理主要是基于以下几个组件:* 控制器(ActionServlet):控制器是Struts框架的核心,负责接收浏览器发送的HTTP请求,根据请求调度处理程序,处理完请求后将结果返回给视图层。
* Action类:代表了一个具体的业务处理操作,负责处理来自用户的请求并响应。
每个Action类都需要继承框架提供的基本Action类,然后根据需求实现具体的业务逻辑。
* 配置文件(struts-config.xml):配置文件描述了Action对象、表单对象以及其他相关配置信息,例如URL映射关系、转发规则等。
控制器会根据配置文件里的信息执行相应的操作。
* 表单Bean(FormBean):表示Web页面提交表单的数据封装,用于在视图层和业务逻辑之间传递数据。
它们通常继承自框架提供的基本FormBean类,并定义表单中需要的属性和验证方法。
* 视图(JSP页面):视图层负责呈现Web应用程序的用户界面,通常使用JSP页面来实现。
JSP页面可以利用Struts自定义标签库(如:logic、html、bean等),方便地创建动态Web内容。
* Struts框架的应用:由于Struts框架简化了Web应用程序的开发过程且具有较高的稳定性和可扩展性,因此被广泛应用于企业级Java Web应用程序的开发。
例如在线商城、内容管理系统、企业信息管理系统等都可以使用Struts框架构建。
Struts框架的主要优点:* 结构清晰:基于MVC设计模式,将程序结构化为模型、视图和控制器三个部分,有利于代码的组织和维护。
struts教程详解
struts教程详解Struts是一种基于Java的开源Web应用程序框架,它旨在简化Web应用程序的开发过程。
它遵循MVC(Model-View-Controller)设计模式,提供了一种结构化的方法来开发Web应用程序。
Struts的核心是一个前端控制器(Front Controller),它是整个框架的核心。
它接收来自用户的请求,并将其分派到相应的处理程序上。
在Struts中,这个前端控制器被称为ActionServlet。
在Struts中,应用程序被划分成一组逻辑部件,称为Action。
每个Action都相当于Web应用程序中的一个页面或操作。
当用户请求一些Action时,ActionServlet将负责查找并执行相应的处理程序。
在Struts中,业务逻辑被封装在一个中间部件中,称为ActionForm。
它是一个JavaBean,用于在视图和控制器之间传递数据。
ActionForm可以捕获用户输入的值,并将其传递给业务逻辑处理程序。
Struts还提供了一种验证框架,用于验证用户输入的数据。
通过使用这个验证框架,开发人员可以定义数据的验证规则,并在处理用户输入之前对其进行验证。
这可以有效地减少服务器端的数据校验工作。
在使用Struts开发Web应用程序时,需要按照以下步骤进行:1. 配置web.xml文件:在web.xml文件中配置Struts的前端控制器ActionServlet。
2. 创建Action:创建处理用户请求的Action类,并在struts-config.xml文件中进行相应的配置。
3. 创建ActionForm:创建用于封装用户输入数据的ActionForm类,并在struts-config.xml文件中与相应的Action进行关联。
5. 配置struts-config.xml文件:在struts-config.xml文件中配置Action、ActionForm和全局配置信息,如消息资源文件和异常处理器等。
java第五章 Struts Framework
适配器Action类 - 5
protected void saveMessages(HttpSession session,ActionMessages messages) protected MessageResources getResources(HttpServletRequest request) protected MessageResources getResources(HttpServletRequest request, protected Locale getLocale(HttpServletRequest request) protected void setLocale(HttpServletRequest request,Locale locale)
ActionForm类 - 2
构造方法: public ActionForm() 成员方法: public void reset(ActionMapping mapping,HttpServletRequest request) public void reset(ActionMapping mapping,ServletRequest request) public ActionErrors validate(ActionMapping mapping,HttpServletRequest request)
2、配置web.xml文件
Struts的安装与配置 - 2
web.xml文件对于配置任何Java Web应用 都是必需的。当配置Struts应用时,还应该 在web.xml文件中配置和Struts相关的配置选 项。这部分内容是配置Struts应用的必要的 步骤,如下: (1)所有的标签必须写在<web-app>标签 内 (2)配置过滤器 (3)配置Struts的ActionServlet (4)配置欢迎文件清单 (5)配置错误处理
struts的工作原理
struts的工作原理Struts是一个基于Java的开源Web应用程序框架,它遵循了MVC(Model-View-Controller)的设计模式。
它被广泛应用于构建企业级的Java Web应用程序。
在了解Struts的工作原理之前,让我们先来了解一下MVC模式。
MVC模式是一种软件设计模式,它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。
模型负责处理数据和业务逻辑,视图负责显示用户界面,控制器负责协调模型和视图之间的交互。
Struts框架的工作原理如下:1. 请求到达前端控制器:当用户在浏览器中访问一个Struts应用程序时,请求首先到达前端控制器,即Struts的ActionServlet。
2. ActionServlet的初始化:在应用程序启动时,ActionServlet会被实例化,并执行一些初始化操作,例如加载配置文件和创建Action类的实例。
3. 配置文件加载:Struts使用一个名为struts-config.xml的配置文件来定义应用程序的行为。
ActionServlet会读取并解析该配置文件,以了解如何处理请求。
4. 请求路由:根据配置文件中定义的URL模式,ActionServlet将请求路由到相应的Action类。
每个Action类负责处理特定类型的请求。
5. Action类的执行:一旦请求被路由到相应的Action类,该类的execute()方法将被调用。
在execute()方法中,开发人员可以编写业务逻辑代码。
6. 数据处理:在Action类中,可以通过使用FormBean来处理表单数据。
FormBean是一个JavaBean,用于封装用户提交的表单数据。
7. 业务逻辑处理:Action类可以调用其他Java类来执行业务逻辑。
这些类可以处理数据库操作、调用外部服务等。
8. 视图解析:一旦业务逻辑处理完成,Action类将选择合适的视图来显示结果。
struts的工作原理
struts的工作原理Struts是一个基于Java的开源MVC框架,用于构建Web应用程序。
它提供了一种将业务逻辑、数据访问和用户界面分离的方式,以提高应用程序的可维护性和可扩展性。
在本文中,我们将详细介绍Struts的工作原理,包括其核心组件、请求处理流程和数据流动。
一、核心组件1. 控制器(Controller):Struts的控制器是一个Servlet,它充当了整个框架的核心。
当用户发起请求时,控制器负责接收请求并将其路由到相应的处理程序。
2. 动作(Action):动作是一个Java类,用于处理具体的业务逻辑。
每个动作都实现了Action接口,并重写了execute()方法。
控制器通过配置文件将请求映射到相应的动作。
3. 表单(Form):表单用于封装用户提交的数据。
每个表单都是一个JavaBean,它包含了与用户界面相关的属性和验证规则。
表单的数据由控制器传递给相应的动作进行处理。
4. 视图(View):视图负责展示数据给用户。
在Struts中,通常使用JSP作为视图技术。
动作处理完数据后,将数据存储在请求的属性中,并将请求转发给相应的JSP页面进行展示。
5. 拦截器(Interceptor):拦截器用于在请求处理的不同阶段执行一些共享的任务,如身份验证、日志记录等。
拦截器可以在控制器和动作之间进行配置,以实现特定的功能。
二、请求处理流程1. 用户发起请求:用户在浏览器中输入URL或点击链接,向服务器发送请求。
2. 控制器接收请求:服务器接收到请求后,将其交给Struts的控制器。
3. 控制器路由请求:控制器根据配置文件将请求路由到相应的动作。
4. 动作处理请求:动作接收到请求后,根据业务逻辑进行处理。
它可以从请求中获取表单数据,并执行相应的操作。
5. 动作返回结果:动作处理完请求后,将结果存储在请求的属性中,并将请求转发给相应的JSP页面。
6. 视图展示数据:JSP页面接收到请求后,从请求的属性中获取数据,并将其展示给用户。
struts的工作原理
struts的工作原理Struts是一种基于Java的开源Web应用程序开发框架,它的设计目标是帮助开发者更快速、更高效地构建可维护的MVC(Model-View-Controller)架构的Web应用程序。
Struts框架的核心是一个Servlet,它充当了控制器(Controller)的角色,负责接收并处理用户的请求,并将其分发给相应的处理器。
Struts的工作原理可以简要概括为以下几个步骤:1. 客户端发起请求:用户在浏览器中输入URL或点击页面上的链接,向服务器发起请求。
2. Servlet作为前端控制器:服务器接收到请求后,将其交给Struts的核心Servlet(通常是ActionServlet)进行处理。
该Servlet是整个Struts框架的入口点,它负责协调整个请求处理过程。
3. ActionServlet处理请求:ActionServlet根据配置文件中的映射规则,确定将请求分发给哪个Action处理器来处理。
Action处理器是Struts框架的核心组件之一,负责处理具体的业务逻辑。
4. Action处理器执行业务逻辑:一旦确定了目标Action处理器,ActionServlet将请求转发给该处理器。
Action处理器会根据请求中的参数和数据,执行相应的业务逻辑,并生成一个包含结果数据的ActionForm对象。
5. 视图渲染:Action处理器执行完业务逻辑后,会将结果数据存储在ActionForm对象中,并将控制权交还给ActionServlet。
ActionServlet根据配置文件中的视图映射规则,将结果数据传递给相应的JSP页面或其他视图组件进行渲染。
6. 响应返回给客户端:视图组件渲染完页面后,将生成的HTML代码返回给ActionServlet。
ActionServlet将响应结果发送给客户端浏览器,并显示在用户的页面上。
在Struts的工作过程中,有几个关键的组件起到了重要的作用:1. Action:Action是一个Java类,用于处理具体的业务逻辑。
东软java讲义第5章
方法可以有一个参数列表, 方法可以有一个参数列表,按方法的规范称 为形式参数。当方法被调用时, 为形式参数。当方法被调用时,形式参数用 变量或数据替换, 变量或数据替换,这些变量或数据称为实际 参数。 参数。
练习1
1.定义一个圆类 定义一个圆类Circle,描述圆对象。圆有 定义一个圆类 ,描述圆对象。 一个属性radius表示半径,有一个 表示半径, 一个属性 表示半径 findArea()方法用于计算圆的面积。 方法用于计算圆的面积。 方法用于计算圆的面积
面向对象 万事万物皆对象 对相同类型的对象进行抽象就是类
1.1面向对象 面向对象——特征 面向对象 特征
封装
继承
多态
数据及基于其 上的操作被封
装在对象的内 部,对外通过 一被授权的接 口与程序其他 部分交互。 部分交互。
在已有类的基础 上,扩充或改写 其某些属性及方 法,生成新的类 ,称为原有类的 子类。 子类。
属性和方法的声明
属性声明的语法: 属性声明的语法: [修饰符 类型 属性名 = 初值 ; 修饰符] 属性名[ 初值] 修饰符
类型可以是任何类型,包括类。 属性有默认值。
如: String name; int length;
3.属性和方法的声明 属性和方法的声明
方法声明的语法: 方法声明的语法: [修饰符 返回值类型 方法名 参数列表 修饰符] 方法名(参数列表 参数列表) 修饰符 {
1.6 给方法传递对象参数
值传递 引用传递
1.7 变量的作用域
1.8 this关键字
this代表类的当前对象 代表类的当前对象 利用“this.”可以调用当前对象的成员 this可以实现构造方法的调用 可以实现构造方法 可以实现构造方法的调用 利用this()可以调用构造方法 必须写在构造方法的第一条
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SSH: Spring Struts2 Hibernate3
Struts2: 脚手架,Web/Java, 流程控制(Servlet->Action Bean),自定义tag.
加入struts框架:.jar build path, web.xml中部署strutsFilter, struts.xml
http://clab-581:8080/strutsweb/hi.action
Web.xml
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
struts.xml
<package name="default"namespace="/"extends="struts-default">
<action name="hi"class="action.Hello">
<result name="success">/index.jsp</result></action> </package>
public class Hello extends ActionSupport {
public String execute() {
return"success";
}
}
动态方法、访问:
public class EmpAction {
public String execute(){
return"list";
}
public String save(){
System.out.println("save()");
return"list";
}
http://clab-581:8080/strutsweb/emp!save.action
参数获取-通过属性自动绑定:String ename=request.getParameter(“ename”);
在Action类中加参数的同名属性
http://clab-581:8080/strutsweb/emp.action?ename=ada
EmpAction.java
+ String ename; setter (getter)
public class EmpAction {
String ename;
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public String execute(){
System.out.println(ename); //ada
绑定属性类型能自动转换
String ename;
Integer age;
Date birth;
Double height;
Setters & getters
//ename=ada&age=18&birth=1999-2-6&height=1.78
(集合类型获取)
Action属性在JSP中的获取(自动setAttribute到request中)
${ename}
${age} <br>
<%=request.getAttribute("birth") %><br>
<%@taglib uri="/struts-tags" prefix="s"%>
<s:property value="height"/>
获取request,response,session, application(ServletContext)
HttpServletRequest request=ServletActionContext.getRequest();
HttpSession session=request.getSession();
HttpServletResponse response=ServletActionContext.getResponse();
ServletContext application=ServletActionContext.getServletContext();
问题:NoSuchMethodError: antlr.collections.AST.getLine()
Hibernate antlr2.7.6.jar 有getLine()
Struts antlr2.7.2.jar 无getLine()
与加classpath(build build)顺序有管
解决:web-inf/lib/ 所有.jar移入(丢弃antlr2.7.2.jar,保留antlr2.7.6.jar)Lib_struts2_hibernate3集成包。