`

Servlet细节说明2

阅读更多

 

l如果在<servlet>元素中配置了一个<load-on-startup>元素,那么WEB应用程序在启动时,就会装载并创建Servlet的实例对象、以及调用Servlet实例对象的init()方法。

举例:

<servlet>

<servlet-name>invoker</servlet-name>

<servlet-class>

org.apache.catalina.servlets.InvokerServlet

</servlet-class>

<load-on-startup>2</load-on-startup>

</servlet>

l用途:为web应用写一个InitServlet,这个servlet配置为启动时装载,为整个web应用创建必要的数据库表和数据
l如果某个Servlet的映射路径仅仅为一个正斜杠(/),那么这个Servlet就成为当前Web应用程序的缺省Servlet。
l凡是在web.xml文件中找不到匹配的<servlet-mapping>元素的URL,它们的访问请求都将交给缺省Servlet处理,也就是说,缺省Servlet用于处理所有其他Servlet都不处理的访问请求。
l在<tomcat的安装目录>\conf\web.xml文件中,注册了一个名称为org.apache.catalina.servlets.DefaultServlet的Servlet,并将这个Servlet设置为了缺省Servlet。
l当访问Tomcat服务器中的某个静态HTML文件和图片时,实际上是在访问这个缺省Servlet。
l当多个客户端并发访问同一个Servlet时,web服务器会为每一个客户端的访问请求创建一个线程,并在这个线程上调用Servlet的service方法,因此service方法内如果访问了同一个资源的话,就有可能引发线程安全问题。
l如果某个Servlet实现了SingleThreadModel接口,那么Servlet引擎将以单线程模式来调用其service方法。
lSingleThreadModel接口中没有定义任何方法,只要在Servlet类的定义中增加实现SingleThreadModel接口的声明即可。
l对于实现了SingleThreadModel接口的Servlet,Servlet引擎仍然支持对该Servlet的多线程并发访问,其采用的方式是产生多个Servlet实例对象,并发的每个线程分别调用一个独立的Servlet实例对象。
l实现SingleThreadModel接口并不能真正解决Servlet的线程安全问题,因为Servlet引擎会创建多个Servlet实例对象,而真正意义上解决多线程安全问题是指一个Servlet实例对象被多个线程同时调用的问题。事实上,在Servlet API 2.4中,已经将SingleThreadModel标记为Deprecated(过时的)。
分享到:
评论

相关推荐

    Servlet-Servlet生命周期

    本文将从Servlet的基本概念入手,逐步深入到其生命周期的具体细节,并结合实际示例进行解析。 #### 二、Servlet基本概念 Servlet是一种Java类,用于扩展服务器的功能。它是基于Java Servlet API(通常作为Java EE...

    Servlet3.1规范官方文档(中文版)

    根据提供的文件内容,以下是对Servlet3.1规范官方文档(中文版)中的知识点的详细说明。 首先,Servlet3.1官方文档是Java™ Servlet规范版本3.1的中文翻译版本。它详细描述了servlet技术规范的各个方面,包括对...

    Java Servlet API中文说明文档

    ### Java Servlet API中文...通过深入学习这些核心概念和技术细节,开发者能够更好地利用Servlet API来设计和实现高性能的Web应用。此外,了解相关的Internet标准文档也有助于更好地理解Servlet的工作原理和最佳实践。

    servlet api 官方HTML文档

    官方HTML文档提供了详细的API接口、类和方法说明,是开发者学习和使用Servlet的重要参考资料。本文将深入解析Servlet API的主要概念、功能以及如何在实际开发中应用。 1. **Servlet的概念** Servlet是一种Java类,...

    javax.servlet源码

    javax.servlet 是Java编程语言中...此外,源码还可以帮助你更好地排查和解决问题,因为你可以直接查看内部实现细节,而不仅仅是API文档中的说明。在MyEclipse或其他IDE中导入这些源码,将使学习过程更为直观和高效。

    javax.servlet-api-3.1.0.jar

    至于压缩包中的`备忘录.txt`,虽然没有具体说明其内容,但通常这类文件可能是开发者为了记录与Servlet API使用相关的注意事项、配置细节或其他重要信息而创建的。在开发过程中,及时记录和整理这些备忘录对于项目的...

    Servlet模式的留言板

    ### Servlet模式的留言板知识点解析 #### 一、实验概述 ...通过以上实验内容的学习与实践,可以深入理解Servlet的工作原理及其在Web开发中的应用,同时也能更好地掌握MVC架构的设计思想和技术实现细节。

    Servlet3.1规范中文版

    目前,可以通过JCP(Java Community Process)网站获取最新的规范细节,这是由社区共同参与并决定Java相关技术规格的组织。 了解规范的参考实现(Reference Implementation,简称RI)是很有必要的,它为规范的实现...

    servlet源代码

    2. **Servlet容器** - Servlet并不直接与HTTP协议打交道,而是通过Servlet容器(如Tomcat、Jetty)来管理和调度Servlet。容器负责加载Servlet,管理其生命周期,以及将HTTP请求转发给相应的Servlet。 3. **jsp与...

    javax.servlet API中文说明.docx

    ### javax.servlet API中文说明知识点详解 #### 一、概述 `javax.servlet` 包是 Java Web 开发的核心组件之一,提供了构建和管理 Servlet 的基础框架。该包定义了一系列的接口和类,使得开发者能够创建可扩展的...

    Java Servlet编程

    综上所述,《Java Servlet 编程》这本书不仅是一本优秀的 Servlet 技术入门教材,还提供了丰富的实践指导和技术细节,对于初学者和有一定经验的开发者都非常有用。通过深入学习本书,读者将能够更好地理解和掌握 ...

    JSP+Servlet+Tomcat个人博客系统

    "Java综合项目实践说明书.wps"可能提供了项目的设计思路和实现细节。"jspsmartupload.jar"是一个上传组件,用于处理用户上传文件的功能,比如上传博客配图。"ReadMe.txt"通常用来提供简单的使用指南或注意事项。 综...

    精通Servlet.doc

    2. **Servlet容器**:也称为Web容器,它是服务器的一部分,负责管理Servlet的生命周期,包括实例化、初始化、服务和销毁等操作。 3. **HttpServletRequest**和**HttpServletResponse**:这两个接口分别用于封装...

    Servlet2.4 PDF

    本文档提供了 Servlet 2.4 规范的详细描述,包括其功能、架构和技术细节,并且包含了对开发人员的重要许可协议信息。 #### 二、Servlet 2.4 标准的主要特性 ##### 1. HTTP 请求处理 - **请求分发**:Servlet 2.4 ...

    Servlet中文API文档

    ### Servlet中文API文档知识点概述 #### 一、文档概述与适用人群 - **文档版本**:此文档描述了...通过这份文档的学习,开发者可以更好地掌握Servlet的工作原理和技术细节,从而提升Web应用程序的性能和用户体验。

    servlet+jsp+js分页组件

    2. **服务器端分页**:Servlet根据页码计算出偏移量,执行SQL的LIMIT或OFFSET语句进行数据查询,确保只返回当前页的数据。 3. **数据响应**:Servlet将查询结果转换为JSON格式,并返回给前端。 4. **客户端渲染**:...

    tomcat+tomcat插件+servlet文件上传jar包

    标题中的“tomcat+tomcat插件+servlet...以上就是关于“tomcat+tomcat插件+servlet文件上传jar包”的详细说明,涵盖了从环境搭建到具体实现的多个方面。希望对你在搭建Java Web开发环境和实现文件上传功能时有所帮助。

    Java servlet4.0英文文档

    Java Servlet 4.0是Java Web开发中的一个重要里程碑,它为服务器端应用程序提供了一种标准化的、基于HTTP的编程模型。...文档涵盖了所有Servlet API接口、类和方法的详细说明,是学习和开发Servlet应用的重要参考资料。

    servlet详解--教程

    以下是对这些知识点的详细说明: ### Servlet详解知识点 #### 1. Servlet简介 Servlet是一种用于扩展服务器功能的Java编程组件。它们在服务器端运行,能够接收并响应客户端的HTTP请求,生成动态网页内容。Servlet...

Global site tag (gtag.js) - Google Analytics