Java最全面试题->Java基础面试题->JavaEE面试题->Web应用服务器面试题

news2024/10/23 12:35:23

文章目录

  • Web应用服务器面试题
    • Tomcat是什么?
    • Tomcat缺省端口是多少,如何修改?
    • Tomcat 有那几种Connector 运行模式?
    • 什么是Servlet?
    • Servlet请求过程?
    • Tomcat执行流程?
    • Tomcat部署方式?
    • 什么是JBoss ?
    • 在JBoss 7中访问管理控制台的默认端口是什么?
    • 独立模式和域模式有什么区别?
    • <validate-on-match>和<background-validation>有什么区别?
    • 可用于标记文件部署的重要类型有哪些?
    • JBoss中可以部署哪些文件类型?
    • 什么是Jetty?
    • Jetty启动过程?
    • Jetty和Tomcat的区别?

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
  • NIO
  • AIO

什么是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文件上配置\节点,设置相关的属性即可
  3. 通过Catalina来进行配置:进入到conf\Catalina\localhost文件下,创建一个xml文件,该文件的名字就是站点的名字。

什么是JBoss ?

JBoss 是一个基于J2EE的开放源代码的应用服务器

在JBoss 7中访问管理控制台的默认端口是什么?

默认端口为9990

独立模式和域模式有什么区别?

独立模式是单个JVM进程, 其中每个JBoss服务器都有其配置。如果你只需要一个JVM或开发环境, 那么独立运行将是完美的选择。
域模式可能具有多个服务器, 其中所有配置都集中管理, 并且经常在生产环境中使用。

和有什么区别?

  • 每次都验证数据库连接, 如果连接无效, 它将在日志中写警告。
  • 配置”匹配时验证”可能会给数据库带来一些高负载, 因为它可能会创建很多请求。
  • 根据为"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的支持更加全面,很多特性会直接集成进来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2221577.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构与算法:贪心算法与应用场景

目录 11.1 贪心算法的原理 11.2 经典贪心问题 11.3 贪心算法在图中的应用 11.4 贪心算法的优化与扩展 总结 数据结构与算法&#xff1a;贪心算法与应用场景 贪心算法是一种通过选择当前最佳解来构造整体最优解的算法策略。贪心算法在很多实际问题中都取得了良好的效果&am…

双十一母婴必买清单 推荐超实用母婴用品

随着双十一购物狂欢节的临近&#xff0c;无数准父母和年轻家长开始摩拳擦掌&#xff0c;准备为家中的小宝贝抢购一系列高品质、实用的母婴用品。在这个年度最大的电商促销活动中&#xff0c;选择对的产品不仅能够节省开支&#xff0c;更能确保宝宝的健康成长与舒适生活。以下是…

告别微信封号!学会这5招,让你的账号坚不可摧

在这个信息爆炸的时代&#xff0c;无论是工作沟通、社交互动还是获取信息&#xff0c;微信都扮演着极其重要的角色。但是&#xff0c;随着微信平台规则的日益严格&#xff0c;账号被封的风险也随之增加。今天&#xff0c;我们就来聊聊如何有效防止 微信被封&#xff0c;让你的账…

Java基于SSM微信小程序物流仓库管理系统设计与实现(源码+lw+数据库+讲解等)

选题背景 随着社会的发展&#xff0c;社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;它主要是采用java语言技术和mysql数据库来完成对系统的设计。整个…

搞错了,再来!谷歌利用AI重新推出全新的Google Shopping

近年来&#xff0c;随着电子商务的迅猛发展&#xff0c;消费者对个性化和便捷购物体验的需求愈发高涨。谷歌&#xff0c;作为互联网巨头之一&#xff0c;一直在不断探索和创新&#xff0c;它一直在应对这样一个事实&#xff1a;越来越多的消费者首先访问零售商的网站&#xff0…

jmeter正则表达式教程

正则表达式用于提取相应数据中的代码、文本等数据&#xff0c;利用正则表达式&#xff0c;提取响应数据&#xff0c;移植到下一线程组的参数中&#xff0c;从而进行测试。 一、解释&#xff1a;解释很多&#xff0c;但是最关键 &#xff08;1&#xff09;注释不多说&#xff0c…

实验干货|电流型霍尔传感调理电路设计01

在做逆变器实验时&#xff0c;需要测量逆变器输出电压以及电流。作为初学者&#xff0c;因为缺乏经验也踩过不少坑&#xff0c;写一篇博客记录下来希望能帮到跟我一样的初学者。 踩坑回顾 用什么采样&#xff1f;片内ADC还是片外ADC&#xff1f; 早前&#xff0c;在用RTLAB做…

51单片机快速入门之 LCD1602 液晶显示屏2024/10/19

51单片机快速入门之 LCD1602 液晶显示屏 Proteus 电路图 : 74HC595 拓展电路可以不用,给 p0-p17 添加上拉电阻也可以!,我这里是方便读取和节省电阻线路 (因为之前不知道 在没有明确循环的情况下&#xff0c;Keil编译器可能会在main()中自动添加类似以下的汇编代码&#xff1a…

手机淘宝自动下单退货自动化RPA脚本机器人

使用手机集线器连接多个手机并发运行。 脚本分3个部分&#xff08;读取本地连接下单&#xff0c;退货获取退货地址信息&#xff0c;填写快递单号&#xff09; 脚本部分图结构看下面的图片 部分数据统计展示

ORACLE SELECT INTO 赋值为空,抛出 NO DATA FOUND 异常

例子&#xff1a; DECLARE ORDER_NUM VARCHAR2(20); BEGIN SELECT S.ORDER_NUM INTO ORDER_NUM FROM SALES_ORDER S WHERE S.ID122344; DBMS_OUTPUT.PUT_LINE(单号: || ORDER_NUM); END; 在查询结果为空的情况下&#xff0c;以上代码会报错&#xff1a;未找到任何数据 解决方…

1024程序员节探讨<程序员的人生观和价值观>

程序员的人生观和价值观 程序员的人生观和价值观往往受到其职业特性和工作环境的影响&#xff0c;但也会因个体差异而有所不同。 人生观 持续学习与成长&#xff1a; 程序员通常认识到技术的快速发展&#xff0c;因此他们倾向于保持一种持续学习和自我提升的态度。他们可能将…

全网最详细图文测评!Stability.AI 发布 SD3.5 Large 模型,能否逆风翻盘超越FLUX?

原文链接&#xff1a;全网最详细图文测评&#xff01;Stability.AI 发布 SD3.5 Large 模型&#xff0c;能否逆风翻盘超越FLUX&#xff1f; (chinaz.com) SD3.5 的前世今生 6 月的时候&#xff0c;Stability AI发布了 Stable Diffusion 3 Medium&#xff0c;但是在在 FLUX 发布…

FPGA学习(7)-线性序列机原理与应用,不同类型的LED控制开关

目录 1.实现1 2.实现2 2.1方法1 2.2方法2 3.实现3 3.1实验现象 4.实现4 4.1分析 4.2实现过程 4.2.1 counter的计数 4.2.2 en_counter2的判断 4.2.3 en_counter0的判断 4.2.4 对case语句加判断条件 4.3仿真结果 ​编辑 4.4实验现象 1.实现1 1.实现以下图示功能…

qt QBuffer详解

QBuffer 是 Qt 提供的一个类&#xff0c;用于在内存中操作二进制数据。它是 QIODevice 的一个子类&#xff0c;允许你将数据读入和写出到一个内存缓冲区&#xff0c;而不需要与文件系统交互。 常用方法 构造函数: QBuffer(QObject *parent nullptr): 创建一个空的 QBuffer 对象…

vue项目启动报错:exit status 1

vue项目启动报错&#xff1a;&#xff08;vite构建&#xff09; npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! Exit status 1 如下图所示&#xff1a; 解决 检查node版本&#xff0c;Vite 需要 Node.js 版本 18 或 20 我之前是 14.16.1&#xff0c;更换成 20.0.0 就可…

Flink 06 聚合操作入门学习,真不难

抛砖引玉 让你统计1小时内每种商品的销售额&#xff0c;用Flink 该怎么实现。 还是让你统计1小时内每种商品的销售额&#xff0c;但是要过滤掉退款的订单&#xff0c;用Flink 该怎么实现。 学了本文两个操作&#xff0c;不信你还不会。 AggregateFunction ❝ 通常用于对数据…

【决策树】- 二分法处理连续值

二分法处理连续值 在决策树算法中&#xff0c;处理连续特征通常采用二分法&#xff0c;将其转化为离散特征。此方法通过寻找最佳分割点&#xff0c;将连续特征划分为两个区间。 1. 原理 二分法的核心思想是将连续值特征转换为离散值&#xff0c;以便于决策树的构建。通过选择…

[Linux#67][IP] 报头详解 | 网络划分 | CIDR无类别 | DHCP动态分配 | NAT转发 | 路由器

目录 一. IP协议头格式 学习任何协议前的两个关键问题 IP 报头与有效载荷分离 分离方法 为什么需要16位总长度 如何交付 二. 网络通信 1.IP地址的划分理念 2. 子网管理 3.网络划分 CIDR&#xff08;无类别域间路由&#xff09; 目的IP & 当前路由器的子网掩码 …

R语言机器学习算法实战系列(九)决策树分类算法 (Decision Trees Classifier)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍教程下载数据加载R包导入数据数据预处理数据描述数据切割调节参数构建模型模型的决策树预测测试数据评估模型模型准确性混淆矩阵模型评估指标ROC CurvePRC Curve特征的重要性保存模…

TCP协议四次挥手

1.第一次挥手&#xff1a;客户端发送FIN报文&#xff0c;请求断开连接。这一过程为主动关闭。客户端由ESTABLISHED转换为FIN-WAIT-1。 FIN和ACK置为1&#xff0c;表示这是一个请求结束报文。seqU表示在之前客户端已经发送的字节数。ackV则表示服务端向客户端发送确认消息累计的…