发表于: 2025-06-25 20:45:58
0 9
今天的计划:学习深度思考
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即可启用并使用该插件提供的各项功能。
明天的计划:学习深度思考,开始学习任务三。
评论