关于java:029期JavaEE面试题一Web应用服务器

开篇介绍

大家好,我是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的doGetdoPost办法
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的反对更加全面,很多个性会间接集成进来。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理