发表于: 2025-06-25 20:45:58

0 8


今天的计划:学习深度思考

45.jetty,resin,tomcat的常见配置有哪些,内存,端口,日志文件都怎么配置?

一、什么是Tomcat

Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 9支持最新的Servlet 3.2 和JSP 2.3 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

二、什么是Jetty

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

三、什么是Resin

Resin是CAUCHO公司的产品,是一个非常流行的支持servlets和jsp的引擎,速度非常快。Resin本身包含了一个支持HTTP/1.1的WEB服务器。它不仅可以显示动态内容,而且它显示静态内容的能力也非常强,速度直逼APACHESERVER。许多站点都是使用该WEB服务器构建的

2.知识剖析
tomcat架构:

Tomcat是一个HTTP服务器,同时也是一个Servlet容器(可以执行Servlet文件,JSP、JSF会被转换成Servlet),支持多种功能,因此采用了分层、模块化的设计。

配置文件内容

<?xml version='1.0' encoding='utf-8'?>

<Server>

  <Service>

    <Connector/>

    <Engine>

      <Host></Host>

    </Engine>

  </Service>

</Server>

jetty架构:

Jetty Server是一个Connector集合和一个Handler集合间的管道,Connector用于接收HTTP连接,Handler服务来自连接的请求并作出响应,Jetty Server使用来自一个线程池的线程来处理这些工作。

当Jetty请求/响应源自Servlet API时,Servelet API的完整特征只有你配置适当的handler才是可用的。例如,在请求中的session API只有当请求被传递给一个Session Handler时才被激活。如果servlet不被要求,只有很少的开销用于servlet请求/响应API。因此你能构建一个仅用connector和handler的Jetty Server,不用servlet。

配置Jetty的工作是构建一个connector和handler的网络,并提供他们各自的配置。由于Jetty这句践是简单的POJO(Plain Old Java Object),你能完成通过各种方法完成组件的集成和配置:

 1)代码;

 2)使用Jetty XML;

 3)使用依赖注入框架:Spring或者XBean;

 4)使用Jetty WebApp和Context Deployer。

 

resin:

Resin提供了最快的jsp/servlets运行平台。在java和javascript的支持下,Resin可以为任务灵活选用合适的开发语言。Resin的一种先进的语言XSL(XML stylesheet language)可以使得形式和内容相分离。 如果您选用jsp平台作为internet商业站点的支持,那么速度、价格和稳定性都是要考虑到的,resin十分出色,表现更成熟,很具备商业软件的要求。

 

一、tomcat和jetty的比较

相同点:

Tomcat和Jetty都是一种Servlet引擎,他们都支持标准的servlet规范和JavaEE的规范。

不同点:

1.架构比较

Jetty的架构比Tomcat的更为简单

Jetty的架构是基于Handler来实现的,主要的扩展功能都可以用Handler来实现,扩展简单。

Tomcat的架构是基于容器设计的,进行扩展是需要了解Tomcat的整体设计结构,不易扩展。

2.性能比较

Jetty和Tomcat性能方面差异不大

Jetty可以同时处理大量连接而且可以长时间保持连接,适合于web聊天应用等等。

Jetty的架构简单,因此作为服务器,Jetty可以按需加载组件,减少不需要的组件,减少了服务器内存开销,从而提高服务器性能。

Jetty默认采用NIO结束在处理I/O请求上更占优势,在处理静态资源时,性能较高

少数非常繁忙;Tomcat适合处理少数非常繁忙的链接,也就是说链接生命周期短的话,Tomcat的总体性能更高。

Tomcat默认采用BIO处理I/O请求,在处理静态资源时,性能较差。

3.其它比较

Jetty的应用更加快速,修改简单,对新的Servlet规范的支持较好。

Tomcat目前应用比较广泛,对JavaEE和Servlet的支持更加全面,很多特性会直接集成进来。

 

二、tomcat和resin的区别

特征

Tomcat

Resin

所属公司

Apache

CAUCHO

用户数

可参考文档

与Eclipse集成复杂度

适中

较复杂。

Eclipse下调试开发

简便

复杂,更新类后会自动重启

部署环境启动 臃肿
人性化

开发环境热部署支持

较好,可根据需要配置。修改Jsp或java文件时,可配置是否重启服务
较差,更新class及jsp文件,系统都会自动重新部署,并重启,配置了Session会话时开发比较麻烦

生产环境下热部署支持
一般。更新配置文件时,必须手动重启。更新其他文件时,大部分不用重启。但一次性更新太多文件时,经常会造成Tomcat重启失败。

较好。更新配置文件时,Resin会自动重启。

集群部署

支持

46.jetty,resin,tomcat的差别在哪里,在线上服务应该选择哪一种WEB服务器?

tomcat架构:

Tomcat是一个HTTP服务器,同时也是一个Servlet容器(可以执行Servlet文件,JSP、JSF会被转换成Servlet),支持多种功能,因此采用了分层、模块化的设计。

配置文件内容

<?xml version='1.0' encoding='utf-8'?>

<Server>

  <Service>

    <Connector/>

    <Engine>

      <Host></Host>

    </Engine>

  </Service>

</Server>

jetty架构:

Jetty Server是一个Connector集合和一个Handler集合间的管道,Connector用于接收HTTP连接,Handler服务来自连接的请求并作出响应,Jetty Server使用来自一个线程池的线程来处理这些工作。

当Jetty请求/响应源自Servlet API时,Servelet API的完整特征只有你配置适当的handler才是可用的。例如,在请求中的session API只有当请求被传递给一个Session Handler时才被激活。如果servlet不被要求,只有很少的开销用于servlet请求/响应API。因此你能构建一个仅用connector和handler的Jetty Server,不用servlet。

配置Jetty的工作是构建一个connector和handler的网络,并提供他们各自的配置。由于Jetty这句践是简单的POJO(Plain Old Java Object),你能完成通过各种方法完成组件的集成和配置:

 1)代码;

 2)使用Jetty XML;

 3)使用依赖注入框架:Spring或者XBean;

 4)使用Jetty WebApp和Context Deployer。


resin:

Resin提供了最快的jsp/servlets运行平台。在java和javascript的支持下,Resin可以为任务灵活选用合适的开发语言。Resin的一种先进的语言XSL(XML stylesheet language)可以使得形式和内容相分离。 如果您选用jsp平台作为internet商业站点的支持,那么速度、价格和稳定性都是要考虑到的,resin十分出色,表现更成熟,很具备商业软件的要求。


一、tomcat和jetty的比较

相同点:

Tomcat和Jetty都是一种Servlet引擎,他们都支持标准的servlet规范和JavaEE的规范。

不同点:

1.架构比较

Jetty的架构比Tomcat的更为简单

Jetty的架构是基于Handler来实现的,主要的扩展功能都可以用Handler来实现,扩展简单。

Tomcat的架构是基于容器设计的,进行扩展是需要了解Tomcat的整体设计结构,不易扩展。

2.性能比较

Jetty和Tomcat性能方面差异不大

Jetty可以同时处理大量连接而且可以长时间保持连接,适合于web聊天应用等等。

Jetty的架构简单,因此作为服务器,Jetty可以按需加载组件,减少不需要的组件,减少了服务器内存开销,从而提高服务器性能。

Jetty默认采用NIO结束在处理I/O请求上更占优势,在处理静态资源时,性能较高

少数非常繁忙;Tomcat适合处理少数非常繁忙的链接,也就是说链接生命周期短的话,Tomcat的总体性能更高。

Tomcat默认采用BIO处理I/O请求,在处理静态资源时,性能较差。

3.其它比较

Jetty的应用更加快速,修改简单,对新的Servlet规范的支持较好。

Tomcat目前应用比较广泛,对JavaEE和Servlet的支持更加全面,很多特性会直接集成进来。


二、tomcat和resin的区别

特征

Tomcat

Resin

所属公司

Apache

CAUCHO

用户数

可参考文档

与Eclipse集成复杂度

适中

较复杂。

Eclipse下调试开发

简便

复杂,更新类后会自动重启

部署环境启动臃肿

人性化

开发环境热部署支持

较好,可根据需要配置。修改Jsp或java文件时,可配置是否重启服务

较差,更新class及jsp文件,系统都会自动重新部署,并重启,配置了Session会话时开发比较麻烦

生产环境下热部署支持

一般。更新配置文件时,必须手动重启。更新其他文件时,大部分不用重启。但一次性更新太多文件时,经常会造成Tomcat重启失败。

较好。更新配置文件时,Resin会自动重启。

集群部署

支持

支持


47.maven常用的打包插件有哪些?有什么区别?如何使用 ?

IntelliJ IDEA中的Maven Helper插件。这个插件是一个非常实用的工具,它为使用IntelliJ IDEA进行Maven项目的开发提供了额外的功能支持。以下是Maven Helper插件主要功能的一些概要:


1. **Dependency Analyzer**:

- 该功能可以帮助开发者清晰地查看项目的依赖树(dependency tree),并高亮显示冲突的依赖版本,方便定位和解决Maven项目中因不同库之间依赖版本不一致导致的问题。


2. **Conflicts Resolution**:

- 插件提供了一个专门用于检测和解决依赖冲突的部分,可以列出所有冲突的依赖,并允许用户尝试不同的解决方案。


3. **All Dependencies as List**:

- 在列表形式下展示所有依赖项,包括groupId、artifactId、version以及作用域(scope)等详细信息,使得管理依赖更为直观。


4. **Effective POM**:

- 可以查看合并了继承和属性解析之后的“有效POM”文件内容,这对于理解实际应用到项目的Maven配置至关重要。


通过安装Maven Helper插件,开发者在IDEA中可以直接操作和分析Maven项目,极大地提升了项目管理和调试效率。安装方法通常是在IntelliJ IDEA的设置或偏好设置(Preferences) -> Plugins中搜索"Maven Helper"进行在线安装,然后重启IDEA即可启用并使用该插件提供的各项功能。


明天的计划:学习深度思考,开始学习任务三。


返回列表 返回列表
评论

    分享到