Struts 如何工作的

Struts2工作原理及代码 【代码】Struts2工作原理及代码。 阅读详情
作者:东海之心 2003-11-28,来源:Struts How To: 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的。
杰理蓝牙AC696X开发实战:自定义蓝牙名称与提示音配置指南 本文详细介绍了杰理AC696X蓝牙芯片开发中自定义蓝牙名称与提示音配置的完整实战指南。文章从SDK工具定位入手,逐步讲解如何通过配置工具修改蓝牙名称,并重点阐述了替换提示音的正确步骤与音频文件(如WAV格式、16kHz采样率)的详细参数要求,最后指导如何生成并验证最终固件,帮助开发者快速实现个性化设备定制。 阅读详情

相关推荐

人工智能在高中教育中的应用现状剖析与挑战应对

人工智能在高中教育中的应用现状剖析与挑战应对

燕鹏 1338

Struts2 入门(一) 之 控制器与执行步骤

Struts2是什么? 是一个MVC框架。框架都是半成品。借助框架可以提高开发效率。 Filter VS Servlet 过滤器要比Servlet要强大,开发中经常用Servlet作为控制器,Filter也可以作为控制器来使用。 public class ServletDemo implements Servlet{     void init(ServletConfig cfg);

稚枭天卓 1267

Lumerical官方案例、FDTD时域有限差分法仿真学习(三)——环形谐振器(Ring resonator)之第二&第三部分

二、使用 MODE 的参数提取和蒙特卡罗 三、最终参数提取

weixin_45719141的博客 1万+

Struts的工作流程

首先我们先来看一下struts2的框架结构图                      图 1   struts2体系的结构图 从图1我们不难看出struts2的工作流程大致分为一下几部分 1、客户端请求一个HttpServletRequest的请求,如在浏览器中输入http://localhost:8080/bookcode/Reg.action就是提交一个(HttpServletRequ...

weixin_35809316的博客 495

蓝桥杯算法:打印图形——六芒星

【输入格式】 输入一行包含一个整数 n。 【输出格式】 输出一个六芒星,表示满足题意的图形。 【样例输入】 3 4 【样例输出】 【评测用例规模与约定】 对于所有评测用例,1 ≤ n ≤ 20。 总结: 第一次做图形题,做了蛮久,图形题有很多的方式去完成,它考验的是你能不能找到更简单的那一种方式. 我初看到这个图形,第一种想法是把这个六芒星当做六个小三角形来做,然后以某种规则排列一下,就能做出来,但是尝试了一下感觉太麻烦了。 然后我的第二种想法是,这个图形是对称图形,怎么能写出一半吗? 这样另一半想办

KeepCodeing 3835

HDMI端口辐射(EMI)超标解决方案

HDMI端口辐射(EMI)超标解决方案 一、HDMI EMC设计要求: 1、HDMI EMC设计原理图 ( 图 一 ) 2、HDMI元件选型及参数说明:(图一所示) a.L510、L511、L512、L513使用专业EMI共模滤波器(普通共模电感寄生电容太大,会导致TMDS差分阻抗匹配测试失败),阻抗值为90Ω~100Ω(两路共模滤波器型号:CMF1210DH900MFR;四路共模滤波器型号:CMF2010DH101MFR), b.U1、U2为排式ESD(ESD排型号:ESD0524PA),越低的结电容

ltqdxl的博客 1万+

Struts的工作原理

0、初始化 struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象。 <servlet> <servlet-name>action</servlet-name> <servlet-clas

行者常至 851

香橙派5Max + Realsense D435i + Fast-Drone-250:手把手教你搭建一个完整的无人机视觉开发环境

本文详细介绍了如何利用香橙派5Max、Realsense D435i深度相机和Fast-Drone-250项目搭建完整的无人机视觉开发环境。从硬件连接到ROS配置,再到项目部署与性能优化,提供全栈式实战指南,助力开发者快速实现SLAM算法验证和自主导航功能开发。

weixin_30879169的博客 460

Struts1工作原理

Struts1工作原理图 1、初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象。(面向对象思想) 2、发送请求:用户提交表单或通过URL向WEB服务器提交请求,请求的数据用HTTP协...

sinolover的专栏 2109

单精度浮点数存储、双精度浮点数存储

单精度浮点数存储、双精度浮点数存储

fancynthia的博客 1312

OpenClaw人人养虾:接入Synology Chat

Synology Chat 是群晖 NAS(Network Attached Storage,网络附属存储)内置的即时通讯应用。

王国平的博客 780

Struts的工作机制

 

lxlong的博客 205

YOLOv11改进 | 损失函数改进篇 | 2024最新高质量的目标检测边界框回归损失Unified-IoU、FocalUIoU、FocalInvUIoU(设置动态epoch参数)

本文给大家带来的改进机制是最近新提出的高质量的目标检测边界框回归损失,其通过动态调整模型对不同质量预测框的关注,优化目标检测中的边界框回归精度。UIoU引入了FocalBox方法,通过缩放预测框与真实框分配权重,并采用了退火策略(引入动态参数epoch),逐渐将模型的注意力从低质量预测框转移到高质量预测框,平衡了训练速度与检测精度。其还有一定的解决样本不平衡问题,同时该损失函数可以和现有的任何边界框回归损失函数进行结合,例如ShapeIoU和其结合可以形成二次创新,它是一种类似于之前的Inner的机制.

Snu77的博客 4584

Struts2的工作机制

struts2的整体架构:     Struts2的工作机制   一个请求在Struts2框架中的处理大概分为以下几个步骤:   1、客户端初始化一个指向Servlet容器(例如Tomcat)的请求;   2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很

zdnlp的专栏 567

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Struts工作流程

Struts的工作流程详解: 1、客户端向Servlet容器(如Tomcat)提交一个请求,即HttpServletResponse 2、请求经过一系列过滤器(ActionContextCleanUp过滤器、其他过滤器、FilterDispatcher)       ActionContextCleanUp:已被JVM和WEB容器废弃的空对象       F

胡图图的鼻涕 637

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

struts工作流程

struts工作流程

龙在天涯的专栏 499

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

struts1的工作原理

struts1的工作原理图

littlethumbtack的专栏 430

struts工作原理

dongjun613的专栏 464

Struts2工作原理

1.客户端发送请求到达Struts2的控制器StrutsPrepareAndExecuteFilter; 2.StrutsPrepareAndExecuteFilter调用PrepareOperations类的findActionMapping方法; public void doFilter(ServletRequest req, ...

哈哈彬的博客 338

struts 和struts2的工作机制

struts2的工作机制  http://www.blogjava.net/lzhidj/archive/2008/07/10/213898.html ------------------------------------------- struts的工作机制    http://blog.csdn.net/logo616/article/details/6222984

afa的专栏 2064

【Struts】——工作流程

【Struts】——架构

相由心生-心随相改~ 454

struts1工作原理

最近刚刚结束了SSH的学习,其实我觉得那不叫结束,是java学习的一个真正的入门,其中包含很多非常精华的思想,让我想到一句话:“为人民服务”,不管是用户,还是开发人员,特点是都是人,老师说过:你设计的软件,xx都会用了,那你就是精英,其实更近一步说,如果一个框架能够让一般的开发人员很容易上手,那这个框架也是一个非常优秀的框架,在学习SSH的这段时间,我学习的每一步都能够体会到当初设计这个框架的人的智慧,真的很棒,首先从struts1说起。 虽然strut2被我们熟知,并且常用,但是没有s

变是永远不变的...... 2739

【合肥黑马程序员】Struts2的工作原理

这是我们合肥黑马程序员的技术老师总结的Struts2的工作原理,希望能够帮助到各位!

yyl3c61的博客 289
上一篇: 处理输入框中输入非法字符的办法,将输入的非法字符转化成合法字符。
下一篇: javascript实现calendar
eric88
博客等级 码龄24年 19粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值