Struts2框架工作原理及应用体会

合集下载

struts2的工作原理

struts2的工作原理

struts2的工作原理
Struts2是一个基于Java的Web应用程序框架,其工作原理是
基于MVC(Model-View-Controller)设计模式。

它主要由以
下几个组件构成:
1. 客户端发起请求:用户在浏览器中输入URL地址或者点击
超链接等操作发起请求。

2. 前端控制器(Front Controller)处理请求:当用户发起请求时,前端控制器(通常是一个Servlet)接收到请求,并负责
处理该请求。

3. 配置文件解析:前端控制器会根据配置文件(通常是struts.xml)对请求进行解析,确定要执行的控制器动作和视图。

4. 控制器动作执行:前端控制器会根据配置文件中指定的控制器动作,调用相应的Action处理业务逻辑。

Action是一个
Java类,负责接收请求参数、调用服务层逻辑处理数据,并将处理结果封装进Action的属性中。

5. 视图生成:当控制器动作执行完成后,前端控制器会根据配置文件中指定的视图,调用相应的视图模板生成最终的
HTML响应。

6. 响应返回客户端:生成的HTML响应会被前端控制器发送
回客户端,显示在用户的浏览器中。

总结来说,Struts2的工作原理就是通过前端控制器来处理用
户请求,根据配置文件解析请求,并调用相应的Action处理
业务逻辑,最后生成HTML响应返回给客户端。

这种设计模
式的好处是将业务逻辑与界面分离,提高了代码的可维护性和可测试性。

struts2的工作原理(官方官方原理图)

struts2的工作原理(官方官方原理图)

Java面试中常常问到的一个重要的理论
1。

struts2工作原理
(a)用户发送http(httpServletRequest)请求,请求web服务器(Tomcat),web服务器加载web部署描述文件(web.xml),执行过滤器
ActionContextCleanUp,Other filters,filterDispatcher等等ActionContextCleanUp:需要与装饰器(siteMesh)插件一起使用,作用:使用装饰器插件,struts2中Action不再管理Action中属性,使用ActionContextCleanUp来清理Action中属性other filters:其他过滤器(siteMesh)filterDispatcher:struts2核心控制器
注意:过滤器执行是有顺序(同图),值栈在filterDispatcher中创建
(b)filterDispatcher询问ActionMapper是否请求Action,如果不请求Action,就不再实行struts2容器,否则filterDispatcher会调用ActionProxy,ActionProxy通过配置文件管理器(Configuraction Manager)加载struts.xml 配置文件,找到相应Action
(c)ActionProxy会创建Action Invocation对象先执行struts2中相应的拦截器,在行所请求Action
(d)Action Invocation执行Result找到分发页面
(e)(反向)执行struts2中拦截器或拦截器栈
(f) 响应(HttpServletResponse)给客户端
struts2优势:
与Servlet API(Servlet容器)解耦。

struts2核心工作流程与原理

struts2核心工作流程与原理

struts2核心工作流程与原理做为一名技术人员,听到太多关于.net和java的比较的话题。

我想对那些技术人员说,请先了解一下什么是java(或者.net)吧,其实你根本不了解。

这是Struts2官方站点提供的Struts 2 的整体结构。

一个请求在Struts2框架中的处理大概分为以下几个步骤1.客户端提起一个(HttpServletRequest)请求,如上文在浏览器中输入”http://localhost:8080/TestMvc/add.action”就是提起一个(HttpServletRequest)请求。

2.请求被提交到一系列(主要是三层)的过滤器(Filter),如(ActionContextCleanUp、其他过滤器(SiteMesh等)、 FilterDispatcher)。

注意这里是有顺序的,先ActionContextCleanUp,再其他过滤器(SiteMesh等)、最后到 FilterDispatcher。

3.FilterDispatcher是控制器的核心,就是mvc中c控制层的核心。

下面粗略的分析下我理解的FilterDispatcher工作流程和原理:FilterDispatcher进行初始化并启用核心doFilter其代码如下:public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain ) throws IOException, ServletException {HttpServletRequest request = (HttpServletRequest) req;HttpServletResponse response = (HttpServletResponse) res;ServletContext servletContext = filterConfig.getServletContext();// 在这里处理了HttpServletRequest和HttpServletResponse。

Struts2学习总结(完整版)

Struts2学习总结(完整版)

Struts2学习总结(完整版)⼀、搭建struts2环境1、jar包的导⼊主要是到解压其中的⼀个⼯程,得到⾥⾯lib下包含的jar包把这⾥的所有的jar包拷贝到项⽬的WEB-INF⽬录下的lib⽂件夹下⾯。

2、配置struts.xml⽂件注意:必须要放在src⽬录下,因为struts2源码就是这样设计的,只有在src⽬录下才读取得到。

每⼀个package都要extends=”struts-default”,namespace 是访问的路径Action中的name和 package中的namespace组成完整的访问路径3、配置web.xml<filter><filter-name>action2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>action2</filter-name><url-pattern>/*</url-pattern></filter-mapping>4、编写的Action类都要继承ActionSupport类或者implements Action接⼝默认action类访问的是⾥⾯的execute⽅法如果要访问特定的⽅法,可以这样:(1)在action 后⾯指定 method=“⽅法名”(2)使⽤通配符 <action name=”example_*” class=”com.XX.YY.ZZ” method=”{1}” />(3)使⽤动态表达式⽐如example!execute(不常⽤)5、接收表单提交的数据(1)属性驱动获取表单参数--在action类中定义与表单的input中 name ⼀样的属性(必须⼀样,否则注⼊不进去)同时还要⽣产属性对应的set ⽅法,因为 action类要调⽤set⽅法把表单中的参数注⼊到属性中(2)模型驱动获取表单参数--模型驱动⾸先action类要实现ModelDrivern,然后重写getModel⽅法--在action类中声明并创建接收表单参数的实体类(Student user = new Student())--原理分析:struts2调⽤action类的getModel⽅法,得到user对象,然后利⽤user对象⾥⾯的set属性的⽅法,设置user对象的属性值--注意,表单的参数name必须要跟Student的属性值⼀致,否则注⼊不进去。

Struts2框架的介绍和应用

Struts2框架的介绍和应用

Struts2框架的介绍和应用一、简介Struts2框架是一个基于MVC模式的Java web应用程序框架,它能够帮助开发人员有效地管理和组织大规模、复杂的web应用程序。

它提供了一系列的工具和技术,使得开发人员能够快速地构建完整可用的web应用程序。

二、历史Struts2框架最初是由Apache软件基金会的Jakarta项目组开发的。

它源于Struts1框架,因为Struts1框架在开发人员自由度和灵活性方面存在限制。

Struts2框架开发了许多新特性和改进,使其比Struts1更具有可扩展性、更易于使用,更适合于构建大规模的web应用程序。

三、架构Struts2框架采用MVC模式,即Model-View-Controller模式,分为以下三个层次:3.1 Model 层Model层用于将数据从数据库等存储区域提取出来,然后传递给View层进行显示。

Struts2框架中,Model层的数据可以是一个Java对象或一个POJO。

3.2 View 层View层将从Model层传递来的数据显示给用户,它可以采用JSP、HTML、XML等技术来展现数据。

3.3 Controller 层Controller层作为Model层和View层之间的中介,调度这两层的工作,处理用户的请求并将处理结果返回给View层。

四、优点4.1 易于扩展Struts2框架采用模块化的设计思路,在不同的模块之间,通过配置文件、注解等方式进行交互,方便扩展和维护。

4.2 易于使用Struts2框架提供了丰富的标签库和功能模块,使得开发人员可以快速地构建完整的web应用程序,降低了使用门槛。

4.3 基于MVC模式Struts2框架采用了MVC模式,将业务逻辑、数据处理、UI展示等功能分开,使得程序结构清晰,易于管理和维护。

五、应用Struts2框架广泛应用于Java web应用程序的开发,特别是在大型项目中使用。

以下是Struts2框架的一些主要应用场景:5.1 企业级应用程序Struts2框架能够较好地管理和组织大型的企业级应用程序,可以帮助开发人员高效地开发复杂的应用。

struts2 的工作原理

struts2 的工作原理

struts2 的工作原理Struts2是一个基于Java的Web应用框架,其核心原理是基于MVC(模型-视图-控制器)模式进行开发。

它的工作原理可以简要概括如下:1. 客户端通过浏览器发送请求至Web服务器,请求的URL映射到Struts2框架的前端控制器(Front Controller)。

2. 前端控制器负责接收请求并进行初步处理,它会根据Struts2配置文件中定义的拦截器(Interceptors)和映射表(Mapping)来确定如何处理请求。

3. 拦截器是Struts2框架中的一个重要组件,用于对请求进行预处理和后处理。

它可以用于验证用户身份、记录日志、数据验证等。

拦截器可以按照一定的顺序链式执行,每个拦截器可以对请求进行修改或决定是否继续执行下一个拦截器。

4. 映射表用于将请求映射到对应的Action(控制器)及其相关方法上。

Struts2框架会根据请求的URL、请求参数等信息进行匹配。

5. Action是Struts2框架中的控制器组件,负责接收请求、处理业务逻辑并生成响应。

在执行Action方法之前,Struts2框架会将请求参数绑定到Action对象的对应属性上。

6. Action执行后,会返回一个结果视图(View)路径或逻辑名。

Struts2框架会根据配置文件中的Result定义,将该结果视图转发或重定向给客户端。

7. 结果视图可以是一个JSP页面、一个HTML文件、一个JSON数据等。

客户端浏览器会接收到结果视图并进行展示。

总的来说,Struts2的工作原理是通过前端控制器接收请求,经过拦截器的预处理和后处理,根据映射表将请求转发给对应的Action进行处理,最后将处理结果返回给客户端浏览器展示。

这种基于MVC模式的设计能够有效地将业务逻辑与用户界面分离,提高了代码的可维护性和可重用性。

struts2工作原理

struts2工作原理Struts2是一个基于MVC设计模式的开源Web应用框架,它的工作原理是通过一系列的组件和机制来实现对Web应用程序的控制和管理。

在深入了解Struts2工作原理之前,我们先来了解一下MVC设计模式。

MVC是Model-View-Controller的缩写,它是一种软件架构模式,用于将应用程序的逻辑层、数据层和表现层分离开来。

在MVC 模式中,Model代表应用程序的数据和业务逻辑,View代表用户界面,Controller负责处理用户的输入并作出相应的反应。

在Struts2中,请求首先由前端控制器DispatcherServlet接收,DispatcherServlet将请求分发给相应的Action。

Action是Struts2框架中的核心组件,它负责处理用户的请求,并调用相应的业务逻辑处理数据。

在处理完业务逻辑之后,Action将结果返回给DispatcherServlet,DispatcherServlet再将结果渲染到用户界面上。

在Struts2中,配置文件也扮演着非常重要的角色。

通过配置文件,我们可以将请求映射到相应的Action,配置拦截器来处理用户的请求,以及配置全局结果集来统一处理Action的返回结果。

所有这些配置都是通过XML文件或注解来实现的。

另外,拦截器也是Struts2框架中非常重要的组件之一。

拦截器可以在Action执行之前或之后进行一些预处理或后处理操作,比如日志记录、权限验证、异常处理等。

通过配置拦截器栈,我们可以对请求进行统一的处理,提高代码的复用性和可维护性。

除了以上提到的组件和机制,Struts2还提供了丰富的标签库和插件,用于简化开发工作。

标签库可以帮助开发人员快速构建用户界面,而插件则可以扩展框架的功能,满足不同项目的需求。

总的来说,Struts2框架的工作原理可以概括为,前端控制器接收用户请求,将请求分发给相应的Action,Action处理业务逻辑并返回结果,DispatcherServlet将结果渲染到用户界面上。

struts2框架的原理和应用

Struts2框架的原理和应用1. 什么是Struts2框架Struts2是一个基于Java EE的开源Web应用框架,是Struts框架的升级版。

它通过MVC设计模式实现了Web应用开发的分层,将业务逻辑、数据模型和用户界面分离,使得代码更加清晰、易于维护。

2. Struts2框架的原理Struts2框架的原理主要包括以下几个关键点:MVC设计模式Struts2采用了MVC(Model-View-Controller)设计模式,其中:•模型(Model):负责管理应用程序的数据和业务逻辑。

•视图(View):负责显示数据给用户。

•控制器(Controller):负责处理用户输入、调用模型和视图等。

核心组件Struts2框架包含以下核心组件:•拦截器(Interceptor):负责在请求前后进行统一处理,可以用来进行身份验证、日志记录等操作。

•动作(Action):负责处理用户请求,包括接收请求参数、调用业务逻辑方法等。

•结果(Result):负责生成并返回视图,可以是JSP、Freemarker、JSON等。

•值栈(ValueStack):用于存储Action处理过程中的数据,支持OGNL表达式读取和赋值操作。

•配置文件(struts.xml):用于配置拦截器、动作、结果等,实现URL与处理类之间的映射关系。

工作流程Struts2框架的工作流程如下:1.客户端发送请求到Struts2框架的前端控制器(例如:DispatcherFilter)。

2.前端控制器根据请求的URL找到对应的处理类(Action)。

3.前端控制器将请求参数、上下文信息等传递给Action,同时执行拦截器的前置处理逻辑。

4.Action处理用户请求,并根据业务逻辑生成相应的结果。

5.前端控制器将结果传递给结果组件,选择合适的视图进行渲染。

6.前端控制器将渲染后的视图返回给客户端。

3. Struts2框架的应用Struts2框架在Web应用开发中具有广泛的应用,以下是一些主要的应用场景:1. 构建Web应用程序Struts2框架提供了许多构建Web应用程序的工具和技术,包括表单验证、国际化、文件上传等功能。

struts2总结

Struts2总结1.struts2工作原理:1.服务器端提交请求,容器初始化HttpServletRequest对象2.请求的对象被FilterDispatcher过滤器过滤,FilterDispatcher调用ActionMapper,决定请求是否需要调用某个Action3.如果需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy(Action代理)ActionProxy通过Configuration Manager解析框架的配置文件,找到需要调用的Action 4.Action调用业务逻辑类完成业务逻辑。

在调用Action前后,将调用该Action涉及到的相关拦截器(Interceptor)5.Action执行完毕,ActionInvocation根据struts.xml中的配置找到对应的返回结果(被称为Result)。

返回结果通常是Jsp2.过滤器的配置:<filter><filter-name>FilterDispatcher</filter-name><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class></filter><filter-mapping><filter-name>FilterDispatcher</filter-name><url-pattern>/*</url-pattern></filter-mapping>3.action的写法:1.Action类不需要继承或实现任何父类或接口,2.如果该Action类是通过表单提交调用,且Action类中需要使用表单提交的请求参数,则必须在Action类中声明与表单域的名字对应的变量,并提供getters/setters方法例如:private String name;private int age;public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}3.Action类中必须有一个public String execute(){}方法,该方法将被自动调用,实现控制逻辑,但是可以通过配置修改方法名3.Action的配置:<struts><package name="primer"namespace="/primer"extends="struts-default"><action name="helloWorldAction"class="cn.itcast.primer.HelloWorldAction"><result name="success">/primer/success.jsp</result> </action></package></struts>各个位置的内容解释:<struts><!-- /primer/helloWorldAction.actionpackage:包* name:包名,唯一的,必选项* namespace:命名空间,唯一的,相当于房间号。

struts2简介

struts2简介
1,Struts2框架介绍
Struts2框架是MVC流程框架,适合分层开发。

框架应用实现不依赖于Servlet,使用大量的拦截器来处理用户请求,属于无侵入式的设计。

2,Struts2框架的流程原理
1)请求先到达Filter中央控制器
2)然后为Action创建代理类
3)将各个服务存放在拦截器中,执行完拦截器后再去执行action类行action类,action类调用service,再调用dao 4)得到结果字符串,创建result对象
5)转向相应的视图。

程序流程图如下:
3,框架的使用
框架为我们做好了封装,使用起来就按照步骤,配置几个xml文件就行拉。

1)导入jar包
2)拷贝struts.xml文件
将拷贝的配置文件放在根目录src下。

struts.xml文件主要是配置请求路径对应action类的,以及结果跳转路劲。

代码说明:访问/example/HelloWorld.action对应执行struts2.action包下面的HelloWorldAction类;默认情况下执行类中的execute方法,如果想指定方法,需要在<action>标签中添加method属性;<result>标签配置结果跳转路径。

根据Action类中方法返回的String字符串,去匹配result标签中的name值,进行跳转。

3)在web.xml文件中配置核心控制器
本文作者:lishuangzhe。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图1
二、Struts2 工作原理 ( 一) Struts2 框架组成。Struts2 框架由三个主要部分组 成: 核心控制器、业务控制器,以及由用户实现的业务逻辑组 件。这里我们将侧重于核心控制器与业务控制器的理解与 说明。
( 二 ) 核 心 控 制 器: FilterDispatcher。 FilterDispatcher 是 Struts2 框架的核心控制器 ,在此,我们可以将 FilterDispatcher 看作一个类似于过滤网的过滤器。当用户发出请求,并到达 Web 硬哟那种时,该过滤器会过滤用户请求。如果用户请求 的结尾为 action,则将该请求转入 Struts2 框架进行处理。当 Struts2 框架获得了* . actio 请求后,会根据请求前面“* ”的 那部分内容,决定调用哪个业务逻辑组件作为响应单位。这 里需要说明的是 Struts2 用来处理用户请求的 Action 实例并 不是业务控制器,而是作为 Action 的代理———正因为 Struts2 的一大特点,与 Servlet API 的非耦合性,使得用户实现的业 务控制器无法直接处理用户请求。有效的提高了后期调试 维护的效率。而 Struts2 框架再次提供了了一系列的拦截器。 这些拦截器负责将 HttpServletRequest 请求的参数解析出来, 传入 Action 中,并毁掉 Action 的 Execute 方法来处理用户请 求。用户实现的 Action 类仅作为 Struts2 的 Action 代理的代 理目标。用户实现的业务控制器则包含了对用户请求的处 理。用户的请求数据包含在 HttpServletRequest 对象中,而用 户的 Action 类无需访问 HttpServletRequest 对象。拦截器负 责将 HttpServletRequest 里的请求数据解析出来,并传给业务 逻辑组件 Action 实例。
【关键词】高校图书馆; 数字资源; 优化配置 【作者单位】李永红,陕西教育学院
随着现代信息技术和网络技术的发展,高校图书馆信息 资源早已不局限于传统的印刷型资源,丰富多样的数字资源 出现在广大师生的学习和生活中,数字资源的兴起充实了图 书馆的馆藏来源,并且逐渐成为现代图书馆馆藏资源的重要 组成部分。数字资源以其节约空间、时效性强、可多人阅读、 存取方便、检索迅速等优点越来越赢得广大师生的青睐。数 字资源在不同程度上既能够满足教学与科研的需要,又能满 足人们不同的信息需求,因此已逐渐成为图书馆文献建设必 不可少的一 部 分,也 是 衡 量 一 所 高 校 建 设 与 发 展 的 重 要 指 标。目前,数字资源 的 利 用 率 越 来 越 大,高 校 图 书 馆 如 何 在 现有的资源分布环境基础上,充分利用数字资源为读者提供 快捷、准确的信息服务,这就需要对这些多样化、复杂化的数 字资源进行合理并优化配置。
产业
Struts2 框架工作原理及应用体会
□宋 君 张家爱
【摘 要】通过针对特定用户的分析,搭建以 Struts2 为技术核心的旅行社管理系统。本文简单的介绍了 MVC、Struts2 的工作原 理,同时总结了在项目制作过程中所得到的心得。
【关键词】Struts2; MVC; FilterDispatcher; Action 【基金项目】本文为大学生科技创新院级基金项目( 编号: 2011070) 成果 【作者单位】宋君,吉林农业科技学院信息工程学院; 张家爱,吉林农业科技学院信息工程学院教师
( 三) 业务控制器。业务控制器就是前文提到的用来实 现用户 Action 的实力,这里的每个 Action 类通常包含有一个 execute 方法,当业务控制器处理完用户的请求后,该方法将 会针对此次处 理 返 回 一 个 字 符 串———该 字 符 串 就 是 一 个 逻 辑树图名。当程序开发人员开发出系统所需要的业务控制 器后,还需要针对性的配置 Struts2 的 Action,即需要配置 Action 的以下三个部分: ( 1) Action 所处理的 URl。( 2 ) Action 组件所对应的实现类。( 3) Action 里包含的逻辑试图和物理 资源之间的对应关系。每个 Action 都要处理一个用户请求, 而用户请求则总是包含有指定的 URL。当核心控制器过滤 用户请求,并调用后,根据请求的 URL 和 Action 处理 URL 之 间的对应关系来处理转发。
Industrial & Science Tribune 2012.(11).6
·243·
产业与科技论坛 2012 年第 11 卷第 6 期
试论高校图书馆数字资源的优化配置
□李永红
【摘 要】信息时代的来临使数字资源建设作为图书馆建设的核心内容势在必行。如何合理并优化配置数字资源,是高校图书 馆现代化建设工作的重心。优化配置数字资源必须遵循相应的原则,应针对高校图书馆发展现状,讲究一定策略和 方法。在数字化发展的进程中,充分显示数字资源的优化配置对于高校图书馆的发展有着深远且重要的意义。
一、基础思想———MVC 简述 作为时下经典框架之一,MVC 具有其独特的价值。MVC 框架简单的说,就是将数据模型与用户视图进行分离。通过 控制器进行协调处理的一种结构是框架。同时,也是本文中 要讨论的 Sturts2 框架的基础思想。 M 是指模型层( Model) ,V 是指用户视图( View) ,C 则是 指控制器( Controller) 。这种划分方式是以将模型层与视图 层进行代码分离,从 而 降 低 两 者 之 间 的 耦 合 性,使 同 一 程 序 可以使用不同形式进行表现。不同层之间的修改不会或尽 量少的印象到其他层功能的史前为前提。有效的提高的代 码的维护性和设计难度。
本着锻炼自我与积极参与到实用性技术的目标,以发掘 自身创新意识为 前 提。 利 用 空 闲 时 间,在 老 师 的 指 导 下,进 行了一次大学生创新项目的实践性活动。本着实用原则,以 某中小旅行社为客户( 根据用户需求,匿名) ,以 Struts2 框架 为基点,进行了一次旅行社管理系统的开发。在项目结束之 余,特将在项目过 程 中 经 历 的 种 种 认 识 进 行 了 简 单 的 总 结 , 希望让阅读本文的朋友们,更多的参与到此类活动中。
相关文档
最新文档