j2ee服务器有哪些,第1张

 众所周知,J2EE应用服务器百花齐放,种类众多。那么J2EE应用服务器有哪些又有哪些功能呢一起来看看吧!

 从功能实现上划分:

 有实现完整J2EE规范(full profile)的Weblogic, WebSphere, GlassFish

 有实现web应用规范(web profile)的 TomEE, JBoss/WildFly

 有基本的Servlet及Jsp规范的Web容器(Web Container) Tomcat, Jetty, Resin

 回顾过去的2015年,各应用服务器市场占有率各有千秋。

 下图为各个应用服务器使用率饼图

 我们看到,在众多J2EE应用服务器中,Tomcat使用率达到5866%,稳坐第一。

 相较2014年,Tomcat使用率大幅增长,增长将近19%。

 整体而言,Tomcat做为Servlet和Jsp规范的参考实现(Reference implementation , 简称RI),一般都会在第一时间实现规范的新特性并通过Oracle的CTS 测试认证。目前最新的Tomcat 90,虽还是alpha版,但已经实现了Servlet 40草案,感兴趣的朋友,可以下载尝鲜哦!

 Tomcat是一个实现了JAVA EE标准的最小的WEB服务器,是Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且开源免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。学习JavaWeb开发一般都使用Tomcat服务器,该服务器支持全部JSP以及Servlet规范,启动界面如图:

 

 Tomcat 是一款非常优秀的 Java Web 服务器,以致于很多开源 Java 应用服务器(如 JOnAS) 直接集成它作为 servlet 容器。

 Tomcat的总体结构

 Tomcat中主要涉及Server,Service,Engine,Connector,Host,Context组件,之前用过Tomcat的童鞋是不是觉得这些组件的名称有点似曾相识的赶脚,没赶脚!您再想想。好吧,不用你想了,我来告诉你吧。其实在Tomcat二进制分发包解压后,在conf目录中有一个serverxml文件,你打开它瞄两眼看看,是不是发现serverxml文件中已经包含了上述的几个名称。

 Tomcat 集群源码的类图

 从图中我们可以看出 Tomcat 集群包括以下几个方面的内容:

 Session: Session 分为 StandardSession 与ClusterSession 两种,后者用于 Session 复制。

 Session Manager: 有用于集群 Session 管理的ClusterSession,也有用于对 Session 进行一般日常管理的,如 PersistentManager,BackupManager,SimpleTcpReplicationManager。

 组通迅框架:SessionManager调用组通讯框架进行 Session 的传输,Tomcat采用的组通

 讯框架是 tribe,目前 tribe 已被独立为开放的 apache 工程。

 Cluster: 方便集群管理而派生出的逻辑概念,可将实际物理机划分为一个 Cluster,也可 将一台物理机上不同端口的实例划分为一个 Cluster,它有一个简单的实现类 SimpleTcpCluster。

 11 Session

 服务器集群通常操纵两种session:

 1 Stickysessions: 尽量让同一个客户请求由同一台服务器来处理,这样 sticky sessions 就是 存在于单机服务器中接受客户端请求的 session,它不需要进行 Session 复制,如果这个 单机失败的话,用户必须重新登录网站。

 2 Replicatedsessions: 在一台服务器中的 session 状态被复制到集群的其他服务器上,无论 何时,只要 session 改变了,session 数据都要重新全部或部分(依据复制策略)被复制 到其他服务器上。

 Tomcat 支持以下三种 session 持久性类型:

 1 内存复制:在 JVM 内存中复制 session状态,使用 Tomcat自带的 SimpleTcpCluster 和SimpleTcpClusterManager类。

 2 数据库持久性:在这种类型中,session 状态保存在一个关系数据库中,服务器使用orgapachecatalinasessionJDBCManager类从数据库中获取 Session 信息。

 3 基于文件的持久性:这里使用类orgapachecatalinasessionFileManager 把session 状态保存到一个文件系统。

 Session Manager

 Tomcat 通过 orgapachecatalinaManager 来管理 Session,Manager 接口总是和 Context Container 相关联。它主要负责 session 的建立、更新和销毁。该接口中一些重要的方法有:

 用户在 Servlet 中通过 javaxservlethttpHttpServletRequest 接口的 getSession 方法获得 Session,而该接口的实现位于 orgapachecatalinaconnectorRequest 类中的 doGetSession 方 法中,在该方法中通过 orgapachecatalinaManager 来获得 Session , doGetSession 方法的 部分代码如下:

 组通讯框架--Tribe

 组通讯框架 Tribe 在 Tomcat 中的位置可如下图

 如图所示,Tribe 的核心主要是 Channel 类,由此看出,它采用 NIO 进行 Socket 通讯,运用

 了组播,事件、心跳检测等技术,下面我们来着重看看代码中 Tomcat 是如何与 Tribe 衍接首先在 SimpleTcpReplication 类中的实现 Manager 接口的 start 方法中:

 Cluster

 Cluster 用于管理集群中的 Session 复制,它有一个简单的实现类 SimpleTcpCluster。

一、选择文件-新建项目,并选择一个位置点击保存

图1:

二、在跳出来的选择模型窗口,这里可以选择Class

图2:

三、模板生成的只是参考案例,这里可以不用模版,直接点右边的新建包即可创建一个默认包。

图3:

四、可以在包中创建一个主图表

图4:

五、创建好图表后,一般会默认打开,如果没有默认打开就直接在图表上点击右键打开即可,如图

六、注意,现在开始建包和各包的图表及类了,如果项目不大,就直接建类,到时直接建立关系就行了,如果项目大的话都是要建包的,都统一建包统一都在Main图表中创建,如图:

七、单击确定后弹出新新建图表窗口,一般名字和包名是一样的,直接确定即可,如图:

九、确定后,就建好一个包了,接下来创建各个包和各个包里的主图表,建好后如下:

十、现在双击进入主图表Main里的包,就可以直接进入包里面的主图表中了,可以在这里创建各个类,及接口。如果类关系可以在包中完成的,就可以直接在包中完成,要是涉及到多包的,一般建议到Main图表中完成。Main主图表中是不能直接看到其它包中的单个类的,只能看到包及包中含有的类。如果要在主图表中画类图只能通过拖动方式,将包中的类拖到主图表中。

以下是建好的各包及各个类:

十一、现在就要在主Main中为各表添加关系了。

各类关系已经有很多讲得不错的,这里就不一一说明了,这里主要说一下在Enterprise Architect中怎么画类关系。

一、首先将各个要关联的类拖入主图表中,如果不需要和其它包关联的就直接在包里的主图表中完成即可,注:拖放时会弹出对话框询问拖放类型,一般选择第一个,仅作为链接拖入,如图:

二、在左侧关系中一般只提供了基本的关系,可以先随便拖一个关系,然后再更改。这里直接在空白处右键创建一个依赖关系:

点完后直接在类之间拖动,就完成了一个依赖关系的建立。

各关系的英文如下:

Dependency依赖关系,由依赖的一方指向被依赖的一方。

Association关联关系。

Directed Association有方向的关联关系。

Aggregation聚合

Composition合成/组成

Nest嵌套内部类

Generalization泛化关系

Realize实现

关联关系可以参考:

http://blogcsdnNET/gfdonx/article/details/49539531

依赖关系一般场景:

第一种也是最常用的一种方式是将一个类的对象作为另一个类中方法的参数。

第二种方式是在一个类的方法中将另一个类的对象作为其局部变量。(注这里如果将变量提到属性中就变成了单向的关联关系了)

第三种方式是在一个类的方法中调用另一个类的静态方法。

关联关系一秀场景:

它是一种结构化关系,用于表示一类对象与另一类对象之间有联系,

(1) 双向关联

例如:顾客(Customer)购买商品(Product)并拥有商品,反之,卖出的商品总有某个顾客与之相关联。

(2) 单向关联

通常单向关联是将一个类的对象作为另一个类的成员变量

(3) 自关联

在系统中可能会存在一些类的属性对象类型为该类本身,这种特殊的关联关系称为自关联。

(4) 多重性关联

多重性关联关系又称为重数性(Multiplicity)关联关系,表示两个关联对象在数量上的对应关系

聚合关系一般场景:

聚合(Aggregation)关系表示整体与部分的关系。在聚合关系中,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在。聚合关系都是一个对象是另一个对象的属性,并且在代码实现聚合关系时,成员对象通常作为构造方法、Setter方法或业务方法的参数注入到整体对象中。

组合关系一般场景:

组合(Composition)关系也表示类之间整体和部分的关系,但是在组合关系中整体对象可以控制成员对象的生命周期,一旦整体对象不存在,成员对象也将不存在,成员对象与整体对象之间具有同生共死的关系。而且部份的对像是不能单独存在的。或者说存在没有意义。成员对像的创建也都是在整体对象中完成的。

泛化关系一般场景:

泛化(Generalization)关系也就是继承关系,用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类。

接口与实现关系一般场景:

接口之间也可以有与类之间关系类似的继承关系和依赖关系,但是接口和类之间还存在一种实现(Realization)关系,在这种关系中,类实现了接口,类中的操作实现了接口中所声明的操作。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » j2ee服务器有哪些

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情