J2EE的昨天,今天,明天

Windows 11 Redis稳定部署实战指南 Redis 是一款高性能内存键值数据库,其核心原理基于单线程事件循环与内存存储机制,技术价值体现在低延迟读写、丰富数据结构及高并发支撑能力,广泛应用于缓存加速、会话管理、消息队列等典型场景。然而在 Windows 11 环境下,由于系统服务模型升级、防火墙策略收紧及 WSL2 网络隔离等底层差异,直接安装常导致服务崩溃、连接拒绝或认证异常等问题。本文聚焦 Windows 11 特有的服务注册机制与网络行为,结合 NSSM 服务封装、Redis 配置语义调优及 Another Redis Desktop Ma 阅读详情

      J2EE学习者越来越多,J2EE本身技术不断在发展,涌现出各种概念,本文章试图从一种容易理解的角度对这些概念向初学者进行解释,以便掌握学习J2EE学习方向。首先我们需要知道Java和J2EE是两个不同概念,Java不只是指一种语言,已经代表与微软不同的另外一个巨大阵营,所以Java有时是指一种软件系统的流派,当然目前主要是.NET和Java两大主流体系。

  J2EE可以说指Java在数据库信息系统上实现,数据库信息系统从早期的dBase、到Delphi/VB等C/S结构,发展到B/S(Browser浏览器/Server服务器)结构,而J2EE主要是指B/S结构的实现。

  J2EE又是一种框架和标准,框架类似API、库的概念,但是要超出它们。如果需要详细了解框架,可先从设计模式开始学习。

  J2EE是一个虚的大的概念,J2EE标准主要有三种子技术标准:WEB技术、EJB技术和JMS,谈到J2EE应该说最终要落实到这三个子概念上。

  这三种技术的每个技术在应用时都涉及两个部分:容器部分和应用部分,Web容器也是指Jsp/Servlet容器,你如果要开发一个Web应用,无论是编译或运行,都必须要有Jsp/Servlet库或API支持(除了JDK/J2SE以外)。

  Web技术中除了Jsp/Servlet技术外,还需要JavaBeans或Java Class实现一些功能或者包装携带数据,所以Web技术最初裸体简称为Jsp/Servlet+JavaBeans系统。
谈到JavaBeans技术,就涉及到组件构件技术(component),这是Java的核心基础部分,很多软件设计概念(设计模式)都是通过JavaBeans实现的。

  JavaBeans不属于J2EE概念范畴中,如果一个JavaBeans对象被Web技术(也就是Jsp/Servlet)调用,那么JavaBeans就运行在J2EE的Web容器中;如果它被EJB调用,它就运行在EJB容器中。

  EJB(企业JavaBeans)是普通JavaBeans的一种提升和规范,因为企业信息系统开发中需要一个可伸缩的性能和事务、安全机制,这样能保证企业系统平滑发展,而不是发展到一种规模重新更换一套软件系统。

  至此,JavaBeans组件发展到EJB后,并不是说以前的那种JavaBeans形式就消失了,这就自然形成了两种JavaBeans技术:EJB和POJO,POJO完全不同于EJB概念,指的是普通JavaBeans,而且这个JavaBeans不依附某种框架,或者干脆可以说:这个JavaBeans是你为这个应用程序单独开发创建的。

  J2EE应用系统开发工具有很多:如JBuilder、Eclipse等,这些IDE首先是Java开发工具,也就是说,它们首要基本功能是可以开发出JavaBeans或Java class,但是如果要开发出J2EE系统,就要落实到要么是Web技术或EJB技术,那么就有可能要一些专门模块功能(如eclipse需要lomboz插件),最重要的是,因为J2EE系统区分为容器和应用两个部分,所以,在任何开发工具中开发J2EE都需要指定J2EE容器。

  J2EE容器分为WEB容器和EJB容器,Tomcat/Resin是Web容器;JBoss是EJB容器+Web容器等,其中Web容器直接使用Tomcat实现的。所以你开发的Web应用程序可以在上面两种容器运行,而你开发的Web+EJB应用则只可以在JBoss服务器上运行,商业产品Websphere/Weblogic等和JBoss属于同一种性质。

  J2EE容器也称为J2EE服务器,大部分时它们概念是一致的。
如果你的J2EE应用系统的数据库连接是通过JNDI获得,也就是说是从容器中获得,那么你的J2EE应用系统基本与数据库无关,如果你在你的J2EE应用系统耦合了数据库JDBC驱动的配置,那么你的J2EE应用系统就有数据库概念色彩,作为一个成熟需要推广的J2EE应用系统,不推荐和具体数据库耦合,当然这其中如何保证J2EE应用系统运行性能又是体现你的设计水平了。

  衡量J2EE应用系统设计开发水平高低的标准就是:解耦性;你的应用系统各个功能是否能够彻底脱离?是否不相互依赖,也只有这样,才能体现可维护性、可拓展性的软件设计目标。

  为了达到这个目的,诞生各种框架概念,J2EE框架标准将一个系统划分为WEB和EJB主要部分,当然我们有时不是以这个具体技术区分,而是从设计上抽象为表现层、服务层和持久层,这三个层次从一个高度将J2EE分离开来,实现解耦目的。

  因此,我们实际编程中,也要将自己的功能向这三个层次上靠,做到大方向清楚,泾渭分明,但是没有技术上约束限制要做到这点是很不容易的,因此我们还是必须借助J2EE具体技术来实现,这时,你可以使用EJB规范实现服务层和持久层,Web技术实现表现层;

  EJB为什么能将服务层从Jsp/Servlet手中分离出来,因为它对JavaBeans编码有强制的约束,现在有一种对JavaBeans弱约束,使用Ioc模式实现的(当然EJB 3.0也采取这种方式),在Ioc模式诞生前,一般都是通过工厂模式来对JavaBeans约束,形成一个服务层,这也是是Jive这样开源论坛设计原理之一。

  由此,将服务层从表现层中分离出来目前有两种可选架构选择:管理普通JavaBeans(POJO)框架(如Spring、JdonFramework)以及管理EJB的EJB框架,因为EJB不只是框架,还是标准,而标准可以扩展发展,所以,这两种区别将来是可能模糊,被纳入同一个标准了。 但是,个人认为:标准制定是为某个目的服务的,总要牺牲一些换取另外一些,所以,这两种架构会长时间并存。

  这两种架构分歧也曾经诞生一个新名词:完全POJO的系统也称为轻量级系统(lightweight),其实这个名词本身就没有一个严格定义,更多是一个吸引人的招牌,轻量是指容易学习容易使用吗?按照这个定义,其实轻量Spring等系统并不容易学习;而且EJB 3.0(依然叫EJB)以后的系统是否可称为轻量级了呢?
前面谈了服务层框架,使用服务层框架可以将JavaBeans从Jsp/Servlet中分离出来,而使用表现层框架则可以将Jsp中剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关,一般是通过标签库(taglib)实现,不同框架有不同自己的标签库,Struts是应用比较广泛的一种表现层框架。

  这样,表现层和服务层的分离是通过两种框架达到目的,剩余的就是持久层框架了,通过持久层的框架将数据库存储从服务层中分离出来是其目的,持久层框架有两种方向:直接自己编写JDBC等SQL语句(如iBatis);使用O/R Mapping技术实现的Hibernate和JDO技术;当然还有EJB中的实体Bean技术。

  持久层框架目前呈现百花齐放,各有优缺点的现状,所以正如表现层框架一样,目前没有一个框架被指定为标准框架,当然,表现层框架现在又出来了一个JSF,它代表的页面组件概念是一个新的发展方向,但是复杂的实现让人有些忘而却步。

  在所有这些J2EE技术中,虽然SUN公司发挥了很大的作用,不过总体来说:网络上有这样一个评价:SUN的理论天下无敌;SUN的产品用起来撞墙;对于初学者,特别是那些试图通过或已经通过SUN认证的初学者,赶快摆脱SUN的阴影,立即开溜,使用开源领域的产品来实现自己的应用系统。

  最后,你的J2EE应用系统如果采取上面提到的表现层、服务层和持久层的框架实现,基本你也可以在无需深刻掌握设计模式的情况下开发出一个高质量的应用系统了。

  还要注意的是: 开发出一个高质量的J2EE系统还需要正确的业务需求理解,那么域建模提供了一种比较切实可行的正确理解业务需求的方法,相关详细知识可从UML角度结合理解。

  当然,如果你想设计自己的行业框架,那么第一步从设计模式开始吧,因为设计模式提供你一个实现JavaBeans或类之间解耦参考实现方法,当你学会了系统基本单元JavaBean或类之间解耦时,那么系统模块之间的解耦你就可能掌握,进而你就可以实现行业框架的提炼了,这又是另外一个发展方向了。

J2EE教程:企业级应用开发全攻略 本文还有配套的精品资源,点击获取 简介:J2EE是Oracle公司推出的用于构建企业级分布式应用程序的框架。教程深入探讨了J2EE的核心概念和技术,包括体系结构分层、Web组件、EJB组件、Java Persistence API(JPA)、邮件和消息服务以及Web服务等。通过学习J2EE,你将掌握构建高效、可扩展的企业级应用所需的知识,并了解在不同应用服务器上部署和测试J... 阅读详情

相关推荐

全面掌握J2EE:企业级应用开发的基石

本文还有配套的精品资源,点击获取 简介:J2EE是Oracle公司推出的面向企业级分布式应用系统的Java开发平台,支持多层架构软件开发,并强调组件化开发理念。J2EE包含多个核心组件,如Web组件、EJB、JMS、JTA、JNDI等,它们协同工作提供了完整的开发和部署环境。J2EE应用采用三层架构,包括表现层、业务逻辑层和数据访问层,并且有专业的IDE支持其开发。虽然Sp...

weixin_30598047的博客 2669

初学者如何开发出一个高质量的J2EE系统

J2EE学习者越来越多,J2EE本身技术不断在发展,涌现出各种概念,本文章试图从一种容易理解的角度对这些概念向初学者进行解释,以便掌握学习J2EE学习方向。  首先我们需要知道Java和J2EE是两个不同概念,Java不只是指一种语言,已经代表与微软不同的另外一个巨大阵营,所以Java有时是指一种软件系统的流派,当然目前主要是.NET和Java两大主流体系。  J2EE可以说指Java在数据库信息

一杯咖啡 1830

全面掌握J2EE系统架构:核心概念与实践

本文还有配套的精品资源,点击获取 简介:J2EE是Oracle公司推出的构建企业级分布式应用程序的平台。本文档集专注于J2EE系统架构,详细介绍了J2EE的核心概念、设计原则和实现方法。核心概念包括多层次架构、容器和组件,例如Servlet、JSP、EJB等。这些概念和组件是实现业务逻辑、数据访问以及视图层处理的关键。学习这些组件能够帮助开发者设计和部署高效、可扩展的J2E...

weixin_42588672的博客 2752

图文详解J2EE开发环境搭建全过程

在J2EE项目实施过程中需要搭建一个完整的开发环境,涉及到的技能和工具包含:JDK、Eclipse、Tomcat、MySQL、Maven、Navicat等等。这些环境对于具备工作经验的开发人员而言想必早已是轻车熟路,但是对于刚入门的新手来说还是颇为棘手。故,在此以文档形式详细记录J2EE开发环境搭建的整个过程。

谷哥的小弟 2万+

j2ee开发系统源码

struts2+spring+hibernate j2ee系统源码

基于J2EE开发的在线学习系统

基于SSH框架和SQL Sever2012,实现在线学习系统,包含登录、注册,学习情况管理;

在路上——今天的努力对得起昨天的梦想

昨天,不记得过去了多久,昨天仿佛已经是很遥远的记忆,在今天我将散落在零星角落的记忆片段一一捡起,拼起来是这样的完整的一年。每个片段都是成长的见证。   这一年是我转折性的一年,这一年是充满着希望和收获,奋斗和汗水的一年,这一年终将鼓舞和激励我朝着自己心中的梦想前进~   还记得四年前的自己,在放飞希望的高中校园书写着自己的无悔的青春岁月,稚嫩的脸上写满了倔强,如今四年已经过去,我还是否记得曾经

李晓娜 1530

基于J2EE的技术论坛系统

技术论坛是各种技术信息交流和传布的场所,它不同于电视报纸等传统的媒体,任何人都可以随便的在论坛上发表自己的言论,不受任何限制。除了可以发表文字信息外可以上传和转贴图片、音乐、Flash,可以选择字号、颜色,还可以选择有趣的表情图案。只要花几分种注册你就能畅游论坛,从中得到无穷的乐趣。本系统就是基于以上功能的一个技术论坛,旨在为广大网民提供了一个交流平台,能够在这里畅所欲言,发表自己的看法、观点,同时能够结交朋友为生活增添乐趣。本系统采用了JSP+Javabeans的设计模式,基本实现了用户注册,发贴、回帖,管理员编辑、删除用户帖子等功能。数据库采用实用、易学的MySQL Server5.1 数据库系统,以tomcat做为JSP的WEB服务器,WINXP做为系统平台,能良好运行。在设计过程中解决了JSP最常见的中文乱码问题。

《我与Borland的故事:昨天、今天与明天》--小记

新闻发布会的地址见这里Together Free版本的下载地址这次活动人数不多,我询问了在场的几个参加者,发现很多都是 北大青鸟 的学生。    可能是人数少的原因,这样的交流见面活动纯粹讲演的方式,不如你问我答的方式来得好。    好在韩磊见多识广(后来才发现是:优快云网站技术和内容负责人,Borland Delphi产品专家)呵呵,把整个过程办的有声有色。     终于见到了

我要去桂林-田春峰 3273

j2ee用户登录系统资源

这是本人自己研发的一个j2ee用户登录系统,内容可能不够完善请自己进一步完善。

为何LPDDR4支持on-die ECC,但是DDR4却不支持呢?

DRAM的ECC,目前的编码方式都是128bit data,产生8bit parity或者ECC code. 而且必须要128bit才行。这8bit的ECC code是要被写入到DRAM内存里面的,从而read的时候,可以读取这8bit ECC code来判定read data是否有错,如果是SBF,就可以纠错了,如果是double bit,大部分时候是可以detect到错误,即所谓的SEC(Single Error Correct) + DED(Double Error Detect).

一个DRAM从业者的告白 1553

J2EE高级软件工程师——今天第一天上班

今天第一天上班,昨天竟有点失眠了,一晚上没睡好,早上6:40就出门了,结果到了新闸路地铁站八点还没到,心想8:30上班,估计还没开门呢,就坐在地铁里的长凳上看地铁免费杂志,什么禁毒专题随便翻了翻到了8:05就往楼上走,结果到了楼上一看,门口立一MM正站在窗边向下看,一看就知道也是来早了没有钥匙的,于是就和她攀谈起来,原来她是软件那块的,属于渠道部门,我是属商业网站这块的,也得知我们开发人员在楼下上

如来 1694

TMS320F28377D的sys/bios双核工程配置详解——从零搭建到RAM优化

本文详细解析了TMS320F28377D双核系统在sys/bios环境下的工程配置与RAM优化策略。从开发环境搭建、SYS/BIOS工程创建到双核CMD文件配置,提供了实战技巧和常见问题解决方案,帮助开发者高效实现电力电子控制系统中的双核协作与性能优化。

weixin_28292761的博客 600

javaEE mybatis入门demo

昨天完成了jdbctemplate的增删改查的操作接下来就是mybatis对数据库的操作增删改查的操作1.准备工作关于mybatis的一些知识MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。每个MyBatis应用程序主要都是使用SqlSessionFac...

thelostworld 196

UE5 SplineMesh与StaticMesh性能对比:生成1000米路径的帧率与内存实测

本文深度对比了UE5中SplineMesh与StaticMesh在生成1000米路径时的性能差异,包括帧率、内存占用及实现复杂度。实测数据显示,SplineMesh在Draw Call优化和动态变形场景中表现更优,而StaticMesh适合需要复杂材质变化的场景。文章还提供了优化技巧和选型指南,帮助开发者根据项目需求做出科学决策。

weixin_33976326的博客 315

欧姆龙PLC与fanuc发那科机器人进行Ethrenet ip通信测试

近期在做发那科FANUC的通讯,会吧CC-LINK、Profibus-DP、Profinet I/O、DeviceNet、EtherNet/IP这些常用通讯做成文档发上来,大家喜欢的话可以关注 注:做对应的通讯,在机器人控制柜都需要安装对应的板卡以及软件功能 截图中的程序设置和机器人EDS插件在下面链接 https://download.youkuaiyun.com/download/gojava/13770799 PLC为主站 机器人为从站 一、硬件部分 欧姆龙PLC ...

七兔自习室 1万+

j2ee建立在线聊天室详细教程(第二天发送消息)

----20220616 在第一天的更文中,我们将登录这一块的内容向大家进行了一个较为详细的讲解,那么几天就接着上次的讲解,继续我们今天的内容,那也就是聊天页面。\开始时,在这边进行一个登录,登陆原理以及前端代码,大家可以看看昨天的文章 j2ee建立在线聊天室详细教程(第一天登陆页面) - 掘金 (juejin.cn),我这边将我的网名输入,点击登录按钮,页面跳转到聊天页面 我们可以看到,聊天页面有以下功能,首先展示我们聊天室的名字,然后这边可以进行一个提示,显示新用户的登录时间与名称,最右边显示的是当前用

zhang2gongzi的博客 732

【STM32】STM32 CANFD外设的几种消息接收过滤模式

在控制器区域网络(CAN)系统中,正确配置消息过滤器对于有效管理网络通信至关重要。特别是在使用Flexible Data-rate Controller Area Network(FDCAN)时,选择合适的过滤器类型可以大大提高网络效率和消息处理速度。

林愿留的博客 6225

今天,黑马程序员宠你们!

黑马程序员的朋友们,六一儿童节快乐啊~播妞昨天给奶奶打电话,奶奶说“你明天不放假啊,你不是儿童了”,我感觉自己被扎心了,不知不觉自己就长这么大了。想着小时候的无忧无虑就很开心,和小伙伴一...

传智播客的专栏 374

YOLOv8改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进

1️⃣本专栏已更新150多种不同的改进方法,所使用并改进的每一个模块均包含详细的模块分析、原理讲解、个人总结、多种改进方式以及完整的修改流程,所有改进100%可直接运行。2️⃣所有改进点均为近三年顶会,顶刊提出的先进算法,将其融入到中,紧跟学术热点,适应不同的任务场景。3️⃣团队内发表数篇SCI论文,熟悉完整的发表流程,订阅专栏即可进群享受模型训练、模型改进、论文写作、投稿选刊,从入门到论文的各种答疑内容。4️⃣专栏内容会持续更新,最近更新时间:2024-12-24。项目介绍在大家购买专栏后,加入学

Limiiiing的博客 1万+

2ED2410-EM的使用

2ED2410-EM的使用

让你爱上电路设计 968

大萌的醒悟

现在才开始准备,之前落下太多,脚踏实地一步一步走吧。之前就有老师说我是个浮躁的人,恩,我尽力改啊。大二下学期刚开学好有压力,现在JavaEE还没搞好,框架啥的还没学,还有这个四级,绝了,这学期把这三件事做好,加油啊,少壮不努力,老大徒伤悲。不要总想着明天,今天要比昨天更好才行。以前执拗于各种感情,名著小说,电影,都很不实际啊,也只有敲代码比较实用了。年轻时你想把生命奉献给爱情,而你现在没有死,那是...

qq_39592670的博客 304

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

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

Java语言概述----JavaSE学习第2天

软件开发基础知识 1、软件开发介绍 软件:一系列按照特定顺序组织的计算机数据和指令集合 (1)人机交互方式:图形化界面(GUI)----现在主要使用;命令行方式(CLI)----要有一个控制台,输入特定的指令。 (2)常用的“命令行”语句: 调出命令行窗口:在“开始键”处,输入cmd 换盘符:d:(假如换到D盘) 列出当前目录下的文件以及文件夹:dir 创建文件夹:md----make dictionary 进入文件夹:cd {可以是一层一层进,cd java 换行 cd class1 换行 cd

qq_47888755的博客 319

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

VB摄像头监控

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

JavaEE实战班第十五天

今天改正了昨天提交作业的错误,并继续学习了静态static,包,权限修饰符和代码块,其中对代码块的理解不到位,主要体现在方法的重载方面,明天需要返工。 普通代码块 在执行的流程中 出现的 代码块, 我们称其为普通代码块。 构造代码块 在类中的成员代码块, 我们称其为构造代码块, 在每次对象创建时执行, 执行在构造方法之前。 静态代码块 在类中使用static修饰的成员代码块, 我们称其为静态代码块, 在类加载时执行。 每次程序启动到关闭 ,只会 执行一次的代码块。 同步代码块

Baigei_DD的博客 127

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

JAVAEE企业级应用开发浅谈第二辑:MVC和三层架构

上海尚学堂:不积跬步无以至千里,不积小流无以成江海Step1.情景概要Hello,小伙伴们,昨天跟大家分享了JAVA EE 企业级应用开发中大家耳熟能详的概念-三层架构,那么有的小伙伴可能就会有疑问了,这种代码书写方式我每天写这些web 项目时都是在采用该方式呢,那跟我们所接触的MVC 有啥区别呢,借着这样的疑问,我们今天聊聊我们程序员们在开发时经常提到的MVC。Step2.问题浅析在开发中,我们...

weixin_33937499的博客 200
上一篇: xml发展历史和用途
下一篇: 常用jar包之commons-lang使用
terryzero
博客等级 码龄19年 700粉丝 232原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值