j2ee服务器有哪些

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使用率达到58.66%,稳坐第一。

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

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

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目录中有一个server.xml文件,你打开它瞄两眼看看,是不是发现server.xml文件中已经包含了上述的几个名称。

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。

1.1 Session

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

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

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

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

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

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

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

Session Manager

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

用户在 Servlet 中通过 javax.servlet.http.HttpServletRequest 接口的 getSession 方法获得 Session,而该接口的实现位于 org.apache.catalina.connector.Request 类中的 doGetSession 方 法中,在该方法中通过 org.apache.catalina.Manager 来获得 Session , doGetSession 方法的 部分代码如下:

组通讯框架--Tribe

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

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

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

Cluster

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

jsp服务器一般是支持JavaEE规范的web服务器。现在商用系统上,最为常用的是ibm的websphere和bea的weblogic。而在开发调试,学习时,一般都使用apache的轻量级服务器tomcat。

与tomcat类似的发布jsp运行的web服务器还有:

1、Resin

Resin提供了最快的jsp/servlets运行平台。在java和javascript的支持下,Resin可以为任务灵活选用合适的开发语言。Resin的一种先进的语言XSL(XML stylesheet language)可以使得形式和内容相分离。

2、Jetty

Jetty是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。

3、WebLogic

BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。

4、jboss

Jboss是一个基于J2EE的开放源代码的应用服务器。 JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用,而不用支付费用。

JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它 [1]  是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。

JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。

用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

它实现了Html语法中的java扩展(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/388878.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存