Struts 原理与应用(一)

Struts2校验框架实战:原理与应用 Struts2是Apache软件基金会旗下Jakarta项目组的一个开源MVC框架,它基于MVC设计模式,用于简化Web应用程序的开发。Struts2框架拥有强大的数据校验功能,可以有效地帮助开发者在控制器层面对用户输入数据进行验证,保证数据的正确性和安全性。MVC(Model-View-Controller)设计模式是一种将应用程序分成三个主要组成部分的架构模式,它们分别是模型(Model)、视图(View)和控制器(Controller)。 阅读详情

本文是俺在公司技术会议上的演讲提纲

算是一个小教程吧。

Struts 原理与应用 2003年12月1日

Chapter 1: MVC Architecture

介绍Struts的理论基础,MVC架构

Chapter 2: J2EE N-tiers Structure

介绍J2EE的n层结构以及Struts所处的位置

Chapter 3: Struts Configuration

Struts的基本安装说明

Chapter 4: Example 1: Basic Framework

一个最简单的例子,用来熟悉Struts的基本用法

Chapter 5: Struts Work Flow

介绍Struts的工作流程

Chapter 6: Example 2: Login Application

Struts提供的example,简单登陆程序。

Chapter 7: Taglib and Other Skills

介绍Taglib在Struts中的应用,以及其他相关功能

Chapter 8: Other Web Framework

Struts与其他Framework的比较

 

Chapter 1: MVC Architecture

Struts principle and practice

模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。

1 模型(Model)
模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑.

2 视图(View)
视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。

3 控制器(controller)
控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。

MVC 式的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性

早期的程序中,如果不注意对数功能和显示的解耦合,常常会导致程序的复杂及难以维护。很多VB,Delphi等RAD程序都有这种问题。甚至现在的C#,Java有时候也会出现把业务逻辑写在显示模块中的现象

管MVC设计模式很早就提出,但在Web项目的开发中引入MVC却是步履维艰。主要原因:一是在早期的Web项目的开发中,程序语言和HTML的分离一直难以实现。CGI程序以字符串输出的形式动态地生成HTML内容。后来随着脚本语言的出现,前面的方式又被倒了过来,改成将脚本语言书写的程序嵌入在HTML内容中。这两种方式有一个相同的不足之处即它们总是无法将程序语言和HTML分离。二是脚本语言的功能相对较弱,缺乏支持MVC设计模式的一些必要的技术基础。直到基于J2EE的JSP Model 2问世时才得以改观。它用JSP技术实现视图的功能,用Servlet技术实现控制器的功能,用JavaBean技术实现模型的功能

JSP Model 1 与 JSP Model 2

SUN在JSP出现早期制定了两种规范,称为Model1和Model2。虽然Model2在一定程度上实现了MVC,但是它的应用用并不尽如人意

JSP Model 1

JSP Model 2

model2 容易使系统出现多个Controller,并且对页面导航的处理比较复杂

有些人觉得model2仍不够好,于是Craig R. McClanahan 2000年5月 提交了一个WEB framework给Java Community.这就是后来的Struts.

2001年7月,Struts1.0,正式发布。该项目也成为了Apache Jakarta的子项目之一

Struts 质上就是在Model2的基础上实现的一个MVC架构。它只有一个中心控制器,他采用XML定制转向的URL。采用Action来处理逻辑

Chapter 2: J2EE N-tiers Structure

Struts principle and practice

早期的网络系统设计常常采用三层结构。最常见的结构,就是表示( presentation )层 , 领域( domain )层 , 以及基础架构( infrastructure )层。

n层结构的提出是为了适应当前B/S模式开发WEB Application的需要而提出的。传统的Brown模型是指:表示层( Presentation ),控制 / 中介层( Controller/Mediator ),领域层( Domain ) , 数据映射层( Data Mapping ) , 和数据源层( Data Source )。它其实就是在三层架构中增加了两个中间层。控制 / 中介层位于表示层和领域层之间,数据映射层位于领域层和基础架构层之间。

J2EE规范提出了自己的n-tiers结构。

下表是几种模型的对照

ISA

Brown

J2EE 层

对应程序部分

表示层

表示层

客户层

浏览器 HTML 页面, XSL, 手机客户端等

服务器表示层

JSP 及 ActionForm ,XML

控制 / 中介层

Controller 控制器及 Action

领域层

领域层

业务层

Javabeans / SessionBean /Session Facade

数据映射层

整合层

EntityBean / JDO / Hibernate / JDBC

数据层

数据源层

资源层

RDBMS 数据库

J2EE的基本原则之一,是使得各个层的实现解除耦合或耦合最小化。最终实现可以任意的切换某个层的实现。

例如,在数据映射层,可以采用EJB的BMP,CMP,也可以采用Hibernate等O/RMapping,或者采用JDO。这由部署的环境来决定。


 

Struts 原理 与 应用 该资料可用于初学Struts 原理 与 应用 立即下载

相关推荐

struts应用

struts应用技术讲解,PPT的演示,一个培训教材的讲解

Struts的应用

STRUTS的应用(如STRUTS架构)  Struts是采用Java Servlet/JavaServer Pages技术,开发Web应用程序的开放源码的framework。 采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。 Struts有如下的主要功能:  一.包含一个controller servlet,能将用户的请求发送到相应

Sunshine的专栏 932

别再对着数据手册发愁了!用HFSS 2023 R2搞定ESP32-C3板载天线的阻抗匹配

本文详细介绍了如何利用HFSS 2023 R2进行ESP32-C3板载天线的阻抗匹配优化,解决实际PCB设计中常见的性能偏差问题。通过智能模型导入、科学参数扫描和量化优化流程,显著提升天线性能,适用于WIFI和蓝牙应用场景。

weixin_42523543的博客 447

struts 的应用

ckediteor 在配置好struts的基础上,再进行配置;关于struts2的配置这里就不在进行重复了。 https://cksource.com/ckfinder/download; http://ckeditor.com/download // 这里有三个不同的版本可以使用; struts2+ckeditor + ckfinder ckeditor_4.5.3_full.zip ...

weixin_30839881的博客 144

SPARTAN6 + Verilog - FPGA step by step 从0开始学习(1)

SPARTAN6 + Verilog - FPGA step by step 从0开始学习(1)Step 1 软件安装Step 2 硬件获取Step 3 开始从头到脚建一个工程Step 3.1 新建一个工程 从0开始学习FPGA,最好的办法就是先建一个最简单的模块,并且跑起来,然后再慢慢展开。下面这个例子是要按照一定的周期点亮核心板上的一个led。 Step 1 软件安装 这个从0开始学习是用的xilinx的SPARTAN6。SPARTAN6集成开发环境用ISE,不能用Vivado,各自对应的版本不同。安装

xfacexx点点记录 5508

歪枣网股票数据下载接口汇总一

歪枣网上下载接口动态信息如下: 接口名称:A股列表,接口描述:沪深京A股基本信息,接口地址:/doc/getStockHSABaseInfo?code=all&fields=code,name,stype,hsgt,bk,roe,zgb,ltgb&export=0&token= 请求参数描述: 参数名:code,参数描述:股票代码,支持批量查询,用逗号分隔,每次最多30个;若为all,则表示全部,即可获取任意一天内的所有数据。 请求参数描述: 参数名:fields,参数描述:数据字段

waizaowang的博客 2731

Struts的简单应用

1、struts.xml文件 struts.xml需要存放在WEB-INF/classes下,模板如下:   xml version="1.0" encoding="UTF-8" ?> DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://st

qq_36218037的博客 294

java结合Ai

Spring AI 是 AI 工程的应用框架。其目标是将Spring生态系统的设计原则(如可移植性和模块化设计)应用于AI领域,并促进使用POJO作为应用程序的构建块到AI领域。特征跨 AI 提供商的可移植 API 支持,适用于聊天、文本到图像和嵌入模型。支持同步 API 和流 API 选项。还支持下拉以访问特定于模型的功能。聊天模型亚马逊基岩人类学Cohere的命令AI21 Labs的侏罗纪-2Meta 的 LLama亚马逊的泰坦人类学克劳德Azure 开放式 AI。

qq_67832732的博客 2848

Struts应用实例

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

weixin_44468045的博客 664

高速SerDes均衡技术解析

均衡技术是高速SerDes链路中补偿信道损耗和失真的核心技术,通过FFE、CTLE和DFE三种主要方法对抗码间干扰(ISI)。FFE在发射端预补偿前光标干扰,CTLE通过提升高频增益补偿信道损耗,DFE则精准消除后光标干扰。三种技术各具优势:FFE实现简单且不放大噪声,CTLE功耗低易于集成,DFE能自适应调整且保持信噪比。这些技术协同工作可有效提升系统传输速率和可靠性。

一只豌豆象的博客 1945

贝塞尔曲线原理--曲线生成--路径规划--matlab代码

贝塞尔曲线有着很多特殊的性质, 在图形设计和路径规划中应用都非常广泛, 在路径规划中贝塞尔曲线完全由其控制点决定其形状, n个控制点对应着n-1阶的贝塞尔曲线,并且可以通过递归的方式来绘制.

bob595078694的博客 1万+

struts1.x原理与应用(一)

 一、通过顺序图剖析sturts执行流程. 由上图可以struts1.x对请求的处理过程:      1、默认情况下,*.do请求都将交给struts框架处理,首先会由控制器ActionServlet拦截请求,在处理请求前会做一些初始化的工作,然后再转交给请求处理器RequestProcessor处理.      2、RequestProcessor根分析请求url,在配置文件strut...

yulon 154

【域控制器EMC】域控制器EMC设计总结

汇总项目设计当中关于EMC的设计要点,主要从原理设计、Layout、结构、外设部分总结。满足要求的器件和合理的电路能降低电磁干扰;正确的布局、接地、信号路径、屏蔽等可以减少电磁辐射。结构件设计也会对EMC性能产生影响。

weixin_42098658的博客 1258

Struts,MVC 的实现

简介小学生也可以在因特网上发布 HTML 网页。但是,小学生的网页和专业开发的网站有质的区别。网页设计人员(或者 HTML 开发人员)必须理解颜色、用户、生产流程、网页布局、浏览器兼容性、图像创建和 JavaScript 等等。设计漂亮的网站需要做大量的工作,大多数 Java 开发人员更注重创建优美的对象接口,而不是用户界面。JavaServer Pages (JSP) 技术为网页设计人员和 Ja

!Java 2667

Windows 11 WSL2环境下OpenClaw部署的兼容性问题分析与解决方案研究

本文研究了OpenClaw在Windows 11 WSL2环境下的部署方案。WSL2通过无缝集成Linux与Windows系统,为OpenClaw提供了良好的运行环境,支持GPU加速和跨平台开发。文章详细分析了硬件配置要求(推荐8核CPU/16GB内存/NVMe SSD)、系统选择(Windows 11 Pro+Ubuntu 22.04)以及部署步骤,包括WSL2启用、Linux发行版安装、Python/Node.js/Redis等依赖配置。通过优化.wslconfig文件参数(如内存分

博客 2279

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Struts2参数的封装

一、struts2的请求参数封装,有三种方式。 分别是:   属性驱动:     有实体类     没有实体类   模型驱动 二、模型驱动的使用要求: 1、动作类必须实现ModelDriven接口,该接口有一个泛型,提供的实体类对象 2、在动作类中提供模型对象的定义,并且必须实例化。 3、提供接口中抽象方法的实现,并返回模型 三、细节: 1、表单只能提供3种数据类型:String String[] File 2、struts2默认为我们转换的数据类型: a、基本类型自动转接 b、日期按照本地格式转换。本地

爱踢球的程序猿 2839

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Struts2、Hibernate3、Spring mvc 原理详解

hibernate工作原理以及为什么要用? 原理: 1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件 2.由hibernate.cfg.xml中的读取并解析映射信息 3.通过config.buildSessionFactory();//创建SessionFactory 4.sessionFactory.openS

为梦想放生,创造梦一样的未来! 1450

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

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

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

Struts原理与应用(二)

Chapter 3: Struts Configuration Struts principle and practice Struts可以运行在任何一个支持JSP1.2和Servlet2.3的WEB Container中 Struts将所有的请求提交到同一个中心控制器,org.apache.struts.action.ActionServlet 类 web.xml配置

冰云BLOG 1947

Struts旅程(一)Struts简介和原理

struts简介 Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用JavaServlet/JSP技术,实现了基于JavaEEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。 Struts发展历史 Struts是作为ApacheJakarta项目的组成部分,

Xinghf 10万+
上一篇: Struts原理与应用(二)
下一篇: Struts原理与应用(三)
icecloud
博客等级 码龄26年 160粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值