开篇介绍
大家好,我是Java最全面试题库
的提裤姐,明天这篇是JavaEE面试题系列的第一篇,次要总结了Web应用服务器
相干的问题,在后续,会沿着第一篇开篇的常识线路始终总结上来,做到日更!如果我能做到百日百更,心愿你也能够跟着百日百刷,一百天养成一个好习惯。
Tomcat是什么
tomcat是一个web应用服务器
。比方,咱们写的我的项目打包成war包当前须要放到tomcat指定的目录下。在启动tomcat就能够拜访。
Tomcat缺省端口是多少,如何批改?
Tomcat缺省端口是8080
;
批改tomcat 端口:
1、找到tomcat目录下的conf
文件夹;
2、进入conf文件夹找到server.xml
文件
3、在server.xml
文件外面找到Connector
标签,把port="8080"
,改成需要端口即可。
Tomcat 有那几种Connector 运行模式?
bio<Connector port="8080" redirectPort="8443" connectionTimeout="20000" protocol="HTTP/1.1"/>
nio<Connector port="8080" redirectPort="8443" connectionTimeout="20000" protocol="org.apache.coyte.http11.Http11NioPortocol"/>
aio<Connector port="8080" redirectPort="8443" connectionTimeout="20000" protocol="org.apache.coyte.http11.Http11NioPortocol"/>
什么是Servlet?
Servlet(Servlet Applet),全称Java Servlert 。是用Java编写的服务器端程序。其次要性能在与交互式的浏览和批改数据,生成动静Web内容。广义的servlet是指Java语言实现的一个接口,狭义的Servlet是指任何实现了这个Servlet的类,个别状况下,人们将Servlet了解为后者。比方HttpServlet类继承自Servlet类,能够利用继承Http Servlet 来实现Http申请,当不是Http申请的时候,也能够定义其余模式的Servlet。
Servlet申请过程?
- Tomcat容器中通过web.xml加载所有的Servlet。
- 用户在浏览器输出不同的地址,向Tomcat容器申请资源。
- Tomcat容器依据地址首先在容器内找到利用ServletTest。
- Tomcat容器再依据地址去web.xml找到相应的servlet地址。
- Tomcat容器依据找到的servlet地址去web.xml找到相应的Servlet类,并实例化。
- Tomcat容器实例化相应的Servlet,首先调用init办法。
- Tomcat容器实例化相应的Servlet,首先调用service办法解决用户申请,比方post或者是get。
- Servlet解决实现之后,先将数据给Tomcat容器,Tomcat容器再把处理结果给浏览器客户端。
- Tomcat容器调用servlet实例的destory办法销毁这个实例。
Tomcat执行流程
1.申请被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector
取得
2.Connector把该申请交给它所在的Service的Engine来解决,并期待来自Engine的回应
3.Engine取得申请localhost/我的项目/页面.jsp
,匹配它所领有的所有虚拟主机Host
4.Engine匹配到名为localhost的Host(即便匹配不到也把申请交给该Host解决,因为该Host被定义为该Engine的默认主机)
5.localhost Host取得申请/我的项目/页面.jsp
,匹配它所领有的所有Context
6.Host匹配到门路为/我的项目的Context
(如果匹配不到就把该申请交给路径名为””的Context去解决)
7.path="/我的项目"
的Context取得申请/页面.jsp
,在它的mapping table中寻找对应的servlet
8.Context匹配到URL PATTERN
为*.jsp
的servlet,对应于JspServlet类
9.结构HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet
或doPost
办法
10.Context把执行完了之后的HttpServletResponse对象返回给Host
11.Host把HttpServletResponse对象返回给Engine
12.Engine把HttpServletResponse对象返回给Connector
13.Connector把HttpServletResponse对象返回给客户browser
Tomcat部署形式?
1.间接把Web我的项目放在webapps
下,Tomcat会主动将其部署
2.在server.xml
文件上配置<Context>\
节点,设置相干的属性即可
3.通过Catalina
来进行配置:进入到confCatalinalocalhost文件下,创立一个xml文件,该文件的名字就是站点的名字。
什么是JBoss ?
JBoss 是一个基于J2EE的凋谢源代码的应用服务器
在JBoss 7中拜访治理控制台的默认端口是什么?
默认端口为9990
独立模式和域模式有什么区别?
独立模式是单个JVM过程, 其中每个JBoss服务器都有其配置。如果你只须要一个JVM或开发环境, 那么独立运行将是完满的抉择。
域模式可能具备多个服务器, 其中所有配置都集中管理, 并且常常在生产环境中应用。
<validate-on-match>和<background-validation>有什么区别?
每次都验证数据库连贯, 如果连贯有效, 它将在日志中写正告。
配置”匹配时验证”可能会给数据库带来一些高负载, 因为它可能会创立很多申请。
依据为”background-validation-millis”配置的频率定期验证连贯。默认配置设置为零示意禁用。
将”background-validation”设置为true将会创立更少的数据库连贯, 并且如果连贯生效, 它的副作用将无奈立刻检测到。
可用于标记文件部署的重要类型有哪些?
.dodeploy
–批示部署.deployed
–示意文件已部署.pending
–部署仍在期待中.undeployed
-确认应用程序已勾销部署.failed
–因为某种原因部署失败.skipdeploy
–批示JBoss疏忽文件以进行主动部署
JBoss中能够部署哪些文件类型?
WAR
– Web应用程序档案SAR
–服务档案JAR
– Java存档EAR
–企业应用程序档案
什么是Jetty?
Jetty是一个提供HTTP服务器、HTTP客户端和javax.servlet
容器的开源我的项目
Jetty启动过程?
- 首先启动设置到Server的Handler
- 这些Handler将组成一个Handler链
- Server会启动链上所有的Handler
- 启动Connector,关上端口,承受客户端申请。
Jetty和Tomcat的区别?
架构
Jetty的架构比Tomcat的更为简略 Jetty的架构是基于Handler来实现的,次要的扩大性能都能够用Handler来实现,扩大简略。 Tomcat的架构是基于容器设计的,进行扩大是须要理解Tomcat的整体设计构造,不易扩大。
性能
Jetty和Tomcat性能方面差别不大 Jetty能够同时解决大量连贯而且能够长时间放弃连贯,适宜于web聊天利用等等。 Jetty的架构简略,因而作为服务器,Jetty能够按需加载组件,缩小不须要的组件,缩小了服务器内存开销,从而进步服务器性能。 Jetty默认采纳NIO完结在解决I/O申请上更占优势,在解决动态资源时,性能较高
解决能力
Tomcat适宜解决多数十分忙碌的链接,也就是说链接生命周期短的话,Tomcat的总体性能更高。 Tomcat默认采纳BIO解决I/O申请,在解决动态资源时,性能较差。
其它
Jetty的利用更加疾速,批改简略,对新的Servlet标准的反对较好。 Tomcat目前利用比拟宽泛,对JavaEE和Servlet的反对更加全面,很多个性会间接集成进来。
发表回复