PetStore浅析 一

petstore结构的解读摘要(一) petstore:zip包中的安装程序使用了ant对其进行编译    编译petstore前需要修改/src/bulid.properties    编译方法和步骤参考http://java.sun.com/blueprints/code/jps131/docs/building.html    特殊配置:可以使用j2ee的deploymenttool(修改完后保存而不需要重新编译?)或者直接修改 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> PetStore1.3分析 一 作者:mefaint 前言:我只是一个J2EED的新手而已,只能从代码和简单的设计模式上谈一下对PS1.3的认识,如有谬误,还请多多包涵。 概述: PetStore1.3在原先的基础上更加抽象了通用事务的处理,换句话说,接口更加抽象,使用了更多的设计模式。同时也将Web Services的概念加了进去,还有一些EJB2.0的新特性,比如说Message Driven Bean,比如说本地接口的引入。 Petstore事实上采取的是仿造Struts的结构,使用XML文件配置系统。这在一定程度上不利于分布式部署,however,这并不妨碍我们研究它,学习其中的设计思想。 在这里,我也强烈推荐各位先看看“动物园的猪”大虾所翻译的PetStore的文档,那是宏观上的理解,而本文档将更多地注重细节。 PetStore的构建基础——MVC模式的Web Application Framework MVC模式这里就不多说了,如果不知道,搜索一下,应该能了解一个大概。就是Model、View、Controller的简写。在J2EE中,也就是Model2:JavaBean或者EJB作为模型处理,JSP作页面展示,Servlet和一些EJB作为控制。 在Struts中,只有Web层的MVC实现,实际上,这已经能够完成很多中小型系统的需求,普通的系统是完全没有必要做到EJB层的。而PetStore则参考Stuts,增加了EJB层的Controller和Model,这一方面满足了大型系统的需求,另一方面,数据和事务处理的管理可以交给Application Server来完成。 在WAF中,设计者主要实现了两方面的功能,一是Controller的功能并且定义了能够被Controller所接受的Model接口;另一方面是视图的拼装、标签库的定义。 在后文中,我将详细分析waf中的各个程序。 PetStore的配置文件: 采用类似Struts的结构,PetStore使用一些XML作为系统的配置文件。 除了J2EE所指定的web.xml,PetStore还有一些重要的XML文件:mappings.xml,Screendefinitions.xml(在具体应用中,则会依据用户不同选择screendefinitions_en_US或者screendefinitions_ja_JP……嘿嘿,在最新的1.3.1.02中终于出现了中文版,呜呜呜呜,我们不再是被遗忘的一个角落。) 从配置文件上,我们可以大体了解ps的结构。 OK,下面我来说说这些配置文件。 Web.xml 注册了两个过滤器:编码过滤器(EncodingFilter)和登陆过滤器(SignOnFilter)。 注册了两个Listener:组件管理器,这个东东是web层和ejb层传递信息的核心程序。又将SignOnFilter注册成为Listener。 注册了Web层的front controller(front controller模式)的MainServlet,所有以.do为结尾的url请求都必须经过MainServlet的处理。 注册了用于视图拼装TemplateServlet,每一个.screen结尾都会经过TemplateServlet的处理将几个jsp拼装成为一个完成的页面。 注册了PopulateServlet……这个我没看,应该是数据处理的。 接着一段都是数据处理程序的注册信息,PetStore基本上处理信息都是DAO模式 最后是一些具有Local Interface的EJB的注册。 Mappings.xml 定义HTMLAction—Event—EJBAction的映射关系。这将在后面讲述waf结构的时候详细叙述。 ScreenDefinitions.xml 定义每一个Screen的组成。PetStore中每一个链接都是以.Screen结尾的,一个Screen被自定义的taglib划分为banner、sidebar、body、mylist、footer几个部分,每个部分都对应特定的jsp,其中body为真正实现功能的页面。这几个jsp由TemplateServlet和Template.jsp拼装成一个实际页面。 而在具体实现中,将根据区域选择相应的版本。 Signon_config.xml 定义保护资源,SignOnFilter将载入其中的信息,当没权限的用户访问保护资源时,则返回登陆界面。 处理请求的流程 PetStore框架所接受的请求分为两种,一种是以.Screen结尾,一种以.do结尾。前者只是简单的连接,而后者则会触发后台系列处理。 主要程序清单: Web层 MainServlet RequestProcess ScreenFlowManager WebController DefaultWebController ComponentManager DefaultComponentManager EJB层 EJBController(Session Bean) StateMachine 这些是主要的控制程序,其他还有一些涉及解析XML数据和值对象的类。 可以参见Sun文档的这幅图(doc已经发给webmaster@77750.com,希望将 这篇文档整个取代,谢谢) 这幅图反映了一次.do请求的解析处理过程。 首先过滤器判断客户端请求的编码和权限,同时由MainServlet进行处理。 MainServlet是前端控制器,它协调控制RequestProcessor和ScreenFlowManager兵分两路进行请求的业务处理和页面流控制。 在PetStore服务器启动的时候,MainServlet就被初始化,监听请求。当一次POST/GET发生时,MainServlet调用doProcess()方法,doProcess()方法调用getRequestProcessor()和getScreenFlowManager()。 getRequestProcessor ()方法返回RequestProcess类型的对象,类RequestProcessor是实际意义上Web层的控制器,所有.do的请求都在这里得到解析,进行URL和HTMLAction的映射,找到相匹配的EJBAction,产生必要的信息封装在Event中。 一个Event被封装好以后,RequestProcessor创建ComponentManager和WebController,用类ServiceLocator定位EJB层控制器,将Event传递给EJB层。 EJB层控制器接收到Event后,调用StateMachine进行通用性的事务处理。在EJB层,后台真正运算并且和数据库交互。 GetScreenFlowManager()方法返回ScreenFlowManager类型的对象,类ScreenFlowManager通过类URLMappingsXmlDAO分析mappings.xml,取得相关数据,将MainServlet所得到的URL请求与之比较,获得下一个页面的资源。 一次请求的过程大致如此。下面将针对代码和设计模式更加详细地分析一下PetStore的运行机制。 由于笔记本不在身边,用的老爸的机器,很多之前画的rose图打不开……下面的不得不等拿到机器。关于本文档,不足之处,希望各位多多指点。希望我在哪些方面多加分析也可以给我留言,谢谢。 ——thatsok就是mefaint,mefaint就是thatsok
《Kotlin从小白到大牛》第28章:项目实战1:开发PetStore宠物商店项目 第28章 项目实战1:开发PetStore宠物商店项目 前面学习的Kotlin知识只有通过项目贯穿起来,才能将书本中知识变成自己的。通过项目实战读者能够了解软件开发流程,了解所学知识在实际项目中使用的情况,哪些是重点的,哪些是了解的。 本章介绍通过Kotlin语言实现的PetStore宠物商店项目,所涉及的知识点:Kotlin面向对象、Lambda表达式、Swing、Exposed框架和数据库相关等知识,其中还会用到方方面面的Kotlin基础知识。 28.1 系统分析与设计 本节对PetStore宠物商店项 阅读详情

相关推荐

Mysql “宠物商店”数据视图增删改查练习

Mysql “宠物商店”数据视图 一、目的 1、掌握视图的功能和作用 2、掌握视图的创建和管理方法 二、内容 用于书店管理的图书管理数据库,数据库名为petstore,包含宠物信息表product、会员信息表account、宠物种类表category 对petstore数据库完成以下视图操作: 1、 创建视图pet_view1,包含所有女会员的信息 create view pet_view1 as select * from account where sex='女'; 2、 从pet_view1查询姓

tanzhenxinasd的博客 2021

宠物商店 PetStore

PetStore 是 SUN 公司推出的一个宠物商店的系统,其唯一的目的不是让你卖宠物,而是学习 J2EE 最新版本的特性的一个绝好例子。也有不少语言推出相应版本的宠物商店。 Petstore的J2EE设计模式和组件框架思想是最值得学习的两种技术,在PetStore中,真正有关宠物这个具体应用相关的代码很少,整个宠物店是构架在一系列可重用的EJB组件上,这种架构思想值得借鉴。...

weixin_30666753的博客 628

mysql petstore数据查询

假设你有一个名为petstore的MySQL数据库,并且这个数据库中有一些与宠物商店相关的表,比如products(产品表)、customers(顾客表)、orders(订单表)等。以下是一些基本的数据查询示例,你可以根据实际的表结构和字段名进行调整。

SULIUW的博客 1513

PetStore1.3分析 一

google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//<script type="text/java

java专栏 449

petstore:一个简单的框架,用于基于chubbyphp框架,mezzio(以前的zend-expressive)或slim来构建api

宠物店 描述 一个基于构建api的简单。 要求 PHP:^ 7.4 :^ 4.1 :^ 1.1 :^ 1.3 :^ 3.1 :^ 3.4 :^ 1.1 :^ 1.2 :^ 1.2 :^ 1.1 :^ 1.8 :^ 3.1 :^ 3.12 :^ 2.8.1 :^ 2.2 :^ 4.1.1 :^ 1.3 :^ 3.40 :^ 5.2.1 环境 将以下环境变量添加到您的系统中,例如~/.bash_aliases : export USER_ID= $( id -u ) export GROUP_ID= $( id -g ) 码头工人 docker-compose up -d docker-compose exec php bash 乌尔斯 数据库 jdbc:postgresql:// localhost:15432 / pets

PetStore数据库

数据库实现现代管理 多种功能 access petstore

【2023】Kotlin教程 第四篇 项目实战 第25章 项目实战1:开发PetStore宠物商店项目 25.1 系统分析与设计

【2023】Kotlin教程 第四篇 项目实战 第25章 项目实战1:开发PetStore宠物商店项目 25.1 系统分析与设计

代码改变世界 1072

petStore宠物店

petStore宠物商城。使用ssm框架+mysql编写,tomcat版本为8.0,jdk采用1.7.实现用户的登录注册。以及查询购买宠物的一整套流程。存在三种权限角色,不同角色登录可进行不同页面的跳转。后台管理员分商店管理以及用户管理。商店管理可处理订单以及对宠物的增删改。以及分时间段查看所有订单收入。用户管理实现对用户的注销以及权限赋予,以及主页上的公告管理。后台未采用任何框架,观赏性可能不高,但是功能都实现了。

创建Petstore数据库与表

数据库常用指令。

2301_80640837的博客 918

systrace分析 之 问题初步定位

如下surfaceflinger空缺点,上面对应的bufferTX 中有buffer,但VSYNC-SF 过来后,SurfaceFlinger却没有去取,检查测试app “android.settings”, 也没有GPU completion 时间长的问题,所以该部分可以请SurfaceFlinger的owner 进一步确认为何不取buffer。. GPU拿的是acquireFence HWC拿的是releaseFence, GPU是绘图,HWC是合成显示,这两个是互相等待的关系,

yangzex的专栏 3197

基于大模型的围术期谵妄防控系统研究报告

围术期谵妄是一种急性脑功能障碍综合征,通常发生在手术前后一段时间内。患者会出现意识障碍、注意力不集中、认知功能紊乱、睡眠 - 觉醒周期失调等症状,严重者甚至会出现幻觉、妄想和攻击行为 。这种病症不仅会给患者自身带来极大的痛苦,还会对其术后康复产生严重的负面影响。从患者角度来看,围术期谵妄会显著延长患者的住院时间,增加患者的医疗费用负担。有研究表明,发生谵妄的患者住院时间平均比未发生者延长 2 - 3 天。长时间的住院不仅会影响患者的生活质量,还可能导致患者错过最佳的康复时机,影响身体机能的恢复。同时,谵妄还

嵌入式毕设/课设资料清单(速查手册·文档模板·题库,持续更新)→ 见最新文章 1071

J2EE宠物商店

J2EE 是Java技术在企业运算上的应用,它包含多种运算标准,如EJB组件架构、JDBC数据库运算、JMS信息传递、Java Servlets/JSP等Web组件程序等,功能强大且内容博大精深。为了让使用者可以有一个设计J2EE架构应用程序的模板,Sun做出一套系统名为“Java宠物商店(Pet Store)”。这个网上宠物店的范例是针对已经熟悉Java程序设计和J2EE概念人员的。这个系统是使

赵小刀的文字吧 2167

普元EOS8.3精简版安装指南:从零开始搭建低代码开发环境

本文详细介绍了普元EOS8.3精简版的完整安装流程。从JDK1.8环境准备、MySQL数据库配置与初始化,到核心配置文件修改、服务启动与登录验证,提供了从零开始搭建低代码开发环境的清晰步骤和常见问题排坑指南,帮助开发者快速部署并体验平台核心功能。

ik678901的博客 1105

petstore

hohaishen的博客 411

比NTP还牛逼的时间同步协议:1588v2,亚微秒级!

1588v2,又称为Precision Time Protocol Version 2,即精密时间协议的第二版本,或称为PTPv2,是一种精密时间同步协议标准,旨在实现网络中设备之间的高精度时间同步。该协议由IEEE标准组织发布,并在网络测量和控制系统中得到广泛应用。1588v2的主要目的是在计算机网络中提供高度准确的时间同步。它可用于确保不同设备之间的时钟同步,从而协调它们的操作。这对于需要协同工作的系统、无线通信基站等具有关键性的应用非常重要。

网络技术联盟站 4282

地下管网巡检机器人:基于YOLOv8与UI界面的智能化系统设计与实现

通过YOLOv8模型的目标检测功能结合实时视频流,我们能够实现对地下管网巡检机器人的智能化控制。系统通过图像识别技术帮助巡检人员快速识别管道中的各种缺陷和障碍物,从而提高巡检效率和准确性。未来,我们可以继续优化模型,增加更多的目标类别,并通过强化学习等方法提高机器人的自主巡检能力。此外,随着硬件技术的发展,未来的巡检机器人可能会具备更强的感知能力和更高的智能水平。

YOLO 533

【2023】Kotlin教程 第四篇 项目实战 第25章 项目实战1:开发PetStore宠物商店项目 25.2 任务1:创建数据库

【2023】Kotlin教程 第四篇 项目实战 第25章 项目实战1:开发PetStore宠物商店项目 25.2 任务1:创建数据库

代码改变世界 866

UCIE Specification详解(五)

Logical Physical Layer(逻辑物理层)

Crazzy_M的博客 1227

【创建petstore数据库与表】

MySQL之petstore创建petstore 数据库与表-建立数据完整性约束---数据插入-1-用户表-数据插入--2--商品分类表-数据插入----4----订单表-数据修改与删除-1-数据修改-数据查询每日一言:上一章链接:[MySQL实例](https://blog.youkuaiyun.com/m0_66318554/article/details/124949034)持续更新中... 话不多说,一切都在mysql代码中,直接在这里插入代码片上代码: 创建petstore 数据库与表- -----1---

m0_66318554的博客 5849

【安卓逆向】python版本 sha源码

免责声明本文内容仅供学习交流使用,严禁用于商业和非法用途。抓包数据、敏感网址以及数据接口已进行脱敏处理。 注:如有引用,请标注文章地址!!!!!!!

Coodekun的博客 817

BART non-Cartesian 重建:并行成像 压缩感知

本文主要使用并行成像和压缩感知方法实现non-Cartesian MRI 数据的重建。

张哥频道:电生理信号和磁共振成像 1182

第2关:定义列别名

select语句

m0_64562382的博客 366

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

前缀异或与哈希优化:解决区间异或为0的高效算法

异或(XOR)是计算机底层最基础的位运算之一,其自反性(a⊕a=0)和结合律构成了前缀异或思想的数学根基。理解前缀异或如何将O(n²)的区间枚举问题降维为O(n)的一维频次统计,是掌握高性能算法建模的关键能力。该技术不仅广泛应用于算法竞赛中的子数组计数问题,更深度支撑工程实践——如日志去重、状态压缩、嵌入式校验等场景。结合哈希表实现的前缀异或方案,在时间效率、空间可控性与代码可维护性之间取得务实平衡,成为从刷题新手进阶为系统工程师的核心思维跃迁点。

weixin_33766805的博客 293

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

java pet store 下载_Java" Pet Store Demo 1.3.2问题求助!

我得到这样一段文字说明,我按上边的说法,却在执行cloudscape.bat-start 的时候保错说j2ee路径设置无效,请教改怎样配置安装,我想这个文档中可能有错误,谢谢指正!以下是文字说明:Java" Pet Store Demo 1.3.2 > 安装演示版> Java BluePrints安装演示版这部分内容介绍如何安装 Java Pet Store Demo系统要求:在安装演...

weixin_39600704的博客 257

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: Struts VS Turbine
下一篇: 移动设备最优化(直逼网络j2me的应用性能和开发时间)一
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值