前 24 个 Servlet 面试问题和答案

已发表: 2021-06-03

servlet 是一种基于 Java 的软件,它扩展了服务器的功能。 它是任何服务器的重要组成部分,因为它们响应容器请求和托管 Web 应用程序。 要运行网站的后端,也就是服务器端,您需要熟悉 servlet 及其操作方式。

由于基于 Java 的服务器非常流行,因此如果您想使用 Web 服务器,了解 servlet 是必不可少的。

如果您正在准备开发人员面试,那么您来对地方了。 以下 servlet 面试问题将让您对面试的期望有所了解。

目录

顶级 Servlet 面试问题列表

  1. Servlet 是什么意思?

Ans: Servlet 是 Java 技术,管理它们的容器称为 servlet 引擎。 servlet 生成动态内容并通过请求和响应与客户端交互。 它们通常在您单击链接或在网站上执行任何类型的操作时运行。 Servlet 类似于 applet,但不同之处在于它们是在服务器上处理的,而 applet 是在客户端机器上处理的。

  1. 什么是 servlet 容器?

答: Servlet 容器是提供网络服务的 Web 服务器的一部分。 它们依赖于基于 MIME 的请求和响应。 servlet 容器处理 servlet。

  1. 为什么我们使用 servlet?

Ans:通常,我们使用 servlet,因为它们是平台无关的。 此外,它们被编译成与平台无关的字节码。 您可以将 Java 字节码动态加载到启用 Java 的 Web 服务器中。

  1. 你说的过滤器是什么意思?

答:过滤器是可重用的代码片段,可以转换 HTTP 请求、响应和标头的内容。

  1. 应用程序服务器和 Web 服务器有什么区别?

Ans: Web 服务器处理来自客户端浏览器的 HTTP 请求并以 HTML 响应进行响应。 它处理 HTTP 语言并在 HTTP 协议上运行。

另一方面,应用程序服务器提供附加功能,例如 JMS 消息支持、企业 JavaBeans 支持等,以及 Web 服务器的基本功能。

  1. 会话是什么意思?

Ans:会话是指一段时间。 在 servlet 中,会话是 servlet 用于跨多个 HTTP 请求跟踪用户与 Web 应用程序交互的对象。

  1. servlet 上下文是什么意思?

Ans: Servlet 上下文定义了一组 servlet 用来与其 servlet 容器通信的方法。 servlet 容器创建此对象以将初始配置或参数共享给整个应用程序

您可以使用 getServletContext() 方法获取 ServletContext 对象。 一个应用程序只有一个 servlet 上下文。 您可以使用 ServletContext 在整个应用程序中共享信息。

注意:这是最重要的 servlet 面试问题和答案之一。

  1. servlet 映射是什么意思?

Ans: Servlet 映射为您提供了特定的 Web 容器,应该为特定的 URL 调用该容器的 java servlet。 它将 URL 模式映射到 servlet。 当客户端发送请求时,servlet 容器确定将其转发到哪个应用程序,系统匹配上下文路径以执行 servlet 映射。

  1. 将新数据输入数据库后如何自动刷新?

Ans:您可以在服务器推送和客户端中使用刷新来在将新数据输入数据库时​​自动刷新。

  1. 解释 servlet 的生命周期。

Ans: servlet 的生命周期分为五个步骤。 首先,加载 servlet 类,然后创建 servlet 实例。 之后,调用 init() 方法,然后调用 service 方法,最后调用 destroy() 方法。 一个 servlet 具有三种状态:new、ready 和 end。

servlet 在创建时将处于新状态。 调用 init() 方法后,它进入就绪状态。 最后,当调用 destroy() 方法时,它进入结束状态。

  1. Servlet 2.5 中添加了哪些新功能?

Ans: Servlet 2.5 带有以下新特性:

  • J2SE 5.0 依赖
  • 注释支持
  • 类加载
  • 新的 web.xml
  • 边缘案例说明
  • 解除限制
  1. 所有 servlet 都实现(或应该实现)哪个接口?

Ans:所有的 servlet 都必须实现 servlet 接口。

  1. servlet 何时加载?

Ans:一个 servlet 在以下情况下被加载:

  • 发出第一个请求。
  • 服务器和自动加载启动。
  • 单个实例同时响应所有请求,从而节省内存。
  • 管理员手动加载。
  1. 什么时候卸载 servlet?

Ans:当服务器关闭或管理员手动卸载时,servlet 被卸载。

  1. MIME 类型是什么意思?

答: MIME 代表多用途 Internet 邮件扩展。 MIME 类型是一个 HTTP 标头,它提供有关我们发送到浏览器的信息的信息。 它帮助客户端进行数据渲染。 常见的 MIME 类型有文本 (HTML)、文本 (plain)、图像 (jpeg)、应用程序 (jar) 等。

要获取特定文件的正确 MIME 类型,可以使用 ServletContext getMimeType() 方法。 它在通过 servlet 从服务器下载文件时派上用场。

  1. POST 和 GET 方法有什么区别?

Ans: POST 和 GET 方法的主要区别在于 POST 方法在消息正文中携带响应参数,而 GET 方法携带附加在 URL 字符串中的响应参数。

  1. Web 应用程序是什么意思?

答: Web 应用程序是在服务器上运行的模块,用于向客户端浏览器提供动态和静态内容。 Apache Web 服务器支持 PHP,您可以使用它创建 Web 应用程序。

Java 通过 JSP 支持 Web 应用程序,并且在 servlet 容器中运行的 servlet 向客户端浏览器提供动态内容。

  1. 与 CGI 相比,servlet 提供了哪些优势?

Ans: CGI 技术有很多缺点。 Servlet 被引入来克服同样的问题。

Servlet 在利用内存和处理时间方面提供了比 CGI 更好的性能。 他们利用多线程的好处,为每个请求创建一个新线程,大大提高了速度。 相比之下,CGI 为每个请求创建一个新对象,这比 servlet 的进程相对慢。

Servlet 独立于系统和平台。 您可以在任何标准 Web 容器(Glassfish、Tomcat 和 JBoss)和操作系统(Unix、Windows、Mac 等)上运行基于 servlet 的 Web 应用程序。

servlet 的学习曲线非常小,因为您只需要处理应用程序的业务逻辑。 此外,他们的容器处理 servlet 的生命周期,因此不存在内存泄漏、垃圾收集和安全性的风险。

  1. 你对 ServletConfig 对象了解多少?

答:您使用 ServletConfig 对象将配置信息提供给特定的 servlet。 每个 servlet 都有一个唯一的 ServletConfig 对象,并且 servlet 容器实例化它。 您可以通过 WebInitParam 注解给 servlet 初始化参数。 要获取 servlet 的 ServletConfig 对象,您必须使用 getServletConfig() 方法。

  1. servlet 容器通常执行哪些任务?

Ans: servlet 容器执行以下任务:

  • 它促进了 servlet、JSP 和 Web 客户端之间的通信。 由于容器,您不必构建服务器套接字来接收请求、解析它们并生成响应。 容器负责这些任务,让您可以专注于业务逻辑。
  • servlet 容器处理 servlet 的生命周期。 它将 servlet 加载到内存中,初始化它们,调用必要的方法并销毁它们。 Servlet 容器还通过提供 JNDI 等实用程序来简化资源管理。
  • Servlet 容器为每个请求创建新线程,并为 Servlet 提供请求和响应对象。 这样,您不必为每个请求初始化 servlet,从而节省大量内存和时间。
  • Servlet 编译 JSP 并将它们转换为 servlet 以像 servlet 一样管理它们,从而简化您的任务。
  1. 请求调度程序是什么意思?

Ans:您使用 RequestDispatcher 接口将请求转发到另一个资源。 该资源可以是应用程序中的另一个 servlet、HTML 或 JSP。 您可以使用 RequestDispatcher 接口将另一个资源的内容添加到您的响应中。 它是 servlet 间通信的绝佳解决方案。

您可以在 RequestDispatcher 接口中定义两个方法:

  • 无效前向方法。 它将请求从一个 servlet 转发到不同的资源。
  • void 包含方法。 它将另一个资源的内容添加到您的响应中。
  1. ServletContext 和 ServletConfig 有什么区别?

Ans: ServletContext 是整个应用程序的唯一对象,而 ServletConfig 是 servlet 的唯一对象。 您可以使用 ServletContext 为整个应用程序提供初始化参数,所有 servlet 都可以使用这些参数。 另一方面,您可以使用 ServletConfig 仅向特定的 servlet 提供初始化参数。

可以在 ServletContext 中设置属性,其他 servlet 可以使用,但不能在 ServletConfig 中选择属性。

注意:这是最重要的 servlet 面试问题和答案之一。 你应该仔细准备它。

  1. 你对 servlet 属性了解多少?

Ans: Servlet 属性可以帮助您进行 Servlet 间的通信。 您可以在应用程序中设置、获取和删除属性。 Servlet 属性具有三个作用域,请求作用域、会话作用域和应用作​​用域,即。 它们与初始化参数不同。

  1. 你将如何从另一个 servlet 调用一个 servlet?

Ans:您可以使用 RequestDispatcher forward() 将请求处理转发到不同的 servlet。 如果要向响应添加另一个 servlet 输出,可以使用 RequestDispatcher 的 include() 方法。

从世界顶级大学在线学习软件课程获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

结论

上面的 servlet 面试问题和答案应该可以帮助你理解面试会问你什么样的问题。 我们建议将此页面添加为书签,以便您稍后返回并多次修改问题。

面试时尽量保持冷静和沉着。 它将帮助您仔细聆听问题并相应地回答问题。 您可以查看我们软件开发执行 PG 计划,专攻全栈开发,以了解有关 Java 及其相关主题的更多高级概念。

Java 中的 servlet 是什么?

servlet 是可以由 HTTP 服务器调用的 Java 类。 Servlet 通常用于 Web 应用程序的开发。 servlet 的主要目的是处理来自 HTTP 客户端的请求并返回合适的响应。 servlet 有很多种类型,但最流行的一种是 Java Server Pages (JSP),因为它们可用于创建动态 Web 内容。

Java servlet 中的请求-响应如何工作?

服务器使用 servlet 来响应用户的请求。 servlet 可用于从数据库下载信息、发送电子邮件或显示信息。 它是一个为服务器执行特定任务的小程序。 Servlet 是用 Java 编写的,并被编译成一个单独的类文件。 然后,将它们部署到 Web 服务器。 部署后,servlet 就可以接受来自用户的请求了。 请求可以是从用户单击链接到用户填写表单的任何内容。 请求被发送到服务器,在该服务器上它被路由到适当的 servlet。 然后,servlet 处理请求并发送回响应。 此响应可能因请求类型而异。 例如,如果用户正在请求信息,则 servlet 可以将该信息返回给用户。 如果 servlet 正在响应表单请求,它可以向用户发送确认电子邮件或有关提交的通知。

servlet 的生命周期是什么?

可以说一个 servlet 在其生命周期中具有三个阶段: 1. 加载 2. 执行 3. 销毁。 在加载过程中,servlet 接收一些初始化参数。 这些参数在部署描述符中定义。 加载完成后,servlet 容器可以通过多种方式调用 servlet——通过调用它的 init() 方法、通过 ajax 调用或通过生命周期事件。 下一个也是最后一个阶段是销毁,即从容器中删除 servlet。 有几种方法可以从 servlet 容器中删除 servlet,例如,当容器停止时,或 Web 应用程序停止时。