`

Servlet入门学习

 
阅读更多
1.Servlet接口实现类的内容:

      Servlet接口SUN公司定义了两个默认实现类,分别为:GenericServlet、HttpServlet。

  HttpServlet指能够处理HTTP请求的servlet,它在原有Servlet接口上添加了一些与HTTP协议处理方法,它比Servlet接口的功能更为强大。因此开发人员在编写Servlet时,通常应继承这个类,而避免直接去实现Servlet接口。

  HttpServlet在实现Servlet接口时,覆写了service方法,该方法体内的代码会自动判断用户的请求方式,如为GET请求,则调用HttpServlet的doGet方法,如为Post请求,则调用doPost方法。因此,开发人员在编写Servlet时,通常只需要覆写doGet或doPost方法,而不要去覆写service方法。

2.Servlet的一些细节:

由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用<servlet>元素和<servlet-mapping>元素完成。

<servlet>元素用于注册Servlet,它包含有两个主要的子元素:<servlet-name>和<servlet-class>,分别用于设置Servlet的注册名称和Servlet的完整类名。

   一个<servlet-mapping>元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:<servlet-name>和<url-pattern>,分别用于指定Servlet的注册名称和Servlet的对外访问路径。

   同一个Servlet可以被映射到多个URL上,即多个<servlet-mapping>元素的<servlet-name>子元素的设置值可以是同一个Servlet的注册名。

   在Servlet映射到的URL中也可以使用*通配符,但是只能有两种固定的格式:一种格式是“*.扩展名”,另一种格式是以正斜杠(/)开头并以“/*”结尾。

            对于如下的一些映射关系:

            Servlet1 映射到 /abc/*

            Servlet2 映射到 /*

           Servlet3 映射到 /abc

           Servlet4 映射到 *.do

Servlet是一个供其他Java程序(Servlet引擎)调用的Java类,它不能独立运行,它的运行完全由Servlet引擎来控制和调度。

针对客户端的多次Servlet请求,通常情况下,服务器只会创建一个Servlet实例对象,也就是说Servlet实例对象一旦创建,它就会驻留在内存中,为后续的其它请求服务,直至web容器退出,servlet实例对象才会销毁。

在Servlet的整个生命周期内,Servlet的init方法只被调用一次。而对一个Servlet的每次访问请求都导致Servlet引擎调用一次servlet的service方法。对于每次访问请求,Servlet引擎都会创建一个新的HttpServletRequest请求对象和一个新的HttpServletResponse响应对象,然后将这两个对象作为参数传递给它调用的Servlet的service()方法,service方法再根据请求方式分别调用doXXX方法。

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

用途:为web应用写一个InitServlet,这个servlet配置为启动时装载,为整个web应用创建必要的数据库表和数据

如果某个Servlet的映射路径仅仅为一个正斜杠(/),那么这个Servlet就成为当前Web应用程序的缺省Servlet。

凡是在web.xml文件中找不到匹配的<servlet-mapping>元素的URL,它们的访问请求都将交给缺省Servlet处理,也就是说,缺省Servlet用于处理所有其他Servlet都不处理的访问请求。

在<tomcat的安装目录>\conf\web.xml文件中,注册了一个名称为org.apache.catalina.servlets.DefaultServlet的Servlet,并将这个Servlet设置为了缺省Servlet。

当访问Tomcat服务器中的某个静态HTML文件和图片时,实际上是在访问这个缺省Servlet。

当多个客户端并发访问同一个Servlet时,web服务器会为每一个客户端的访问请求创建一个线程,并在这个线程上调用Servlet的service方法,因此service方法内如果访问了同一个资源的话,就有可能引发线程安全问题。

如果某个Servlet实现了SingleThreadModel接口,那么Servlet引擎将以单线程模式来调用其service方法。

SingleThreadModel接口中没有定义任何方法,只要在Servlet类的定义中增加实现SingleThreadModel接口的声明即可。 

对于实现了SingleThreadModel接口的Servlet,Servlet引擎仍然支持对该Servlet的多线程并发访问,其采用的方式是产生多个Servlet实例对象,并发的每个线程分别调用一个独立的Servlet实例对象。

实现SingleThreadModel接口并不能真正解决Servlet的线程安全问题,因为Servlet引擎会创建多个Servlet实例对象,而真正意义上解决多线程安全问题是指一个Servlet实例对象被多个线程同时调用的问题。事实上,在Servlet API 2.4中,已经将SingleThreadModel标记为Deprecated(过时的)。

3.ServletConfig对象的内容:

在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数。

当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。进而,程序员通过ServletConfig对象就可以得到当前servlet的初始化参数信息。

阅读ServletConfig API,并举例说明该对象的作用:

获得字符集编码

获得数据库连接信息

获得配置文件,查看struts案例的web.xml文件

4.ServletContext的内容:

WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。

ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。

由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。ServletContext对象通常也被称之为context域对象。
分享到:
评论

相关推荐

    Servlet入门学习代码.rar_servlet_servlet代码作业

    在这个"Servlet入门学习代码.rar_servlet_servlet代码作业"压缩包中,我们可以看到一个学习Servlet基础和实现购物车功能的实例。 首先,了解Servlet的生命周期。Servlet的生命周期包括初始化、服务和销毁三个阶段。...

    servlet基础入门教程

    本教程旨在为初学者提供一个全面的Servlet入门指南,涵盖其基本概念、方法及应用场景。 1. **Servlet简介** Servlet是一种Java类,它扩展了服务器的功能,可以接收并处理HTTP请求。它们由Web容器(如Tomcat)管理...

    jsp Servlet基础入门学习教程.rar基础入门学习教程.rar

    【JSP(Java Server Pages)与Servlet基础入门学习教程】 JSP和Servlet是Java Web开发中的核心技术,它们在构建动态网站和Web应用程序方面发挥着关键作用。本教程将引导初学者深入理解这两项技术的基本概念、工作...

    jsp Servlet基础入门学习教程

    这个压缩包中的"jsp Servlet基础入门学习教程"可能包含了关于这两个主题的详细讲解,包括理论知识、示例代码和实践指导。建议按照教程步骤逐步学习,同时结合实际项目练习,加深理解。 总之,理解和掌握JSP与...

    servlet入门小例子

    在本"Servlet入门小例子"中,我们将深入探讨Servlet的基本概念、工作原理以及如何通过表单将数据...通过学习和实践"Servlet入门小例子",我们可以更好地理解和掌握Servlet的工作机制,为后续的Web开发打下坚实基础。

    Servlet入门的例子

    通过这个Servlet入门例子,我们了解了Servlet的基本概念、创建、部署和运行过程。继续深入学习,可以掌握更多高级特性,如过滤器、监听器、会话管理等,从而在实际项目中构建更复杂、功能丰富的Web应用。

    servlet学习入门教材

    ### Servlet学习入门教材知识点概述 本教材旨在帮助初学者理解并掌握Servlet的基础概念与核心技术,以便于更好地在Java Web开发领域进行深入探索。以下将详细阐述该教材中的关键知识点: #### 1. Servlet简介 - **...

    Jsp&Servlet基础入门学习教程.rar

    【JSP&Servlet基础入门学习教程】 在Java Web开发领域,JSP(JavaServer Pages)和Servlet是两个至关重要的技术,它们共同构建了动态网页应用的基础。本教程针对初学者,详细介绍了这两个技术的基本概念、核心语法...

    servlet入门servlet入门

    ### Servlet技术概览与入门指南 #### 一、Servlet简介 Servlet是一种运行在Web服务器或应用服务器上的Java...这不仅为初学者提供了一个良好的学习起点,也为进一步探索高级Servlet技术和Web开发奠定了坚实的基础。

    Servlet学习笔记(java的Servlet)

    Servlet学习笔记(java的Servlet)。 jsp的学习基础。此笔记可让你5天内学会使用Servlet,可快速入门,也可当手册使用。 更多:http://download.csdn.net/user/daillo/all

    jsp/servlet个人学习笔记

    学习 JSP 和 Servlet 要注重理论与实践相结合,不仅要理解它们的工作原理,还要通过编写实际项目来提升技能。同时,不断关注新技术,如 Spring Boot 和微服务架构,这将有助于你更好地适应 Java Web 开发的未来趋势...

    servlet基础与servlet容器模型

    本篇将深入探讨Servlet的基础知识及其运行环境——Servlet容器模型。 首先,让我们了解Servlet的基础。Servlet是一个Java类,遵循javax.servlet.Servlet接口,它允许开发者扩展服务器的功能。当用户向Web服务器发送...

    [JSP&Servlet;学习笔记(第2版)]

    - 熟悉Java基础,因为它们是JSP和Servlet的基础。 - 学习Servlet API,理解Request、Response、Session等对象的使用。 - 掌握JSP的语法和标签,了解EL(Expression Language)和JSTL(JavaServer Pages Standard Tag...

    servlet初级基础知识入门笔记

    Servlet是Java Web开发中的核心组件,它是一种由Sun公司制定的标准,用于扩展Web服务器的功能。...了解这些基础概念后,开发者可以进一步学习Servlet生命周期、过滤器、监听器等高级特性,提升在Java Web开发中的能力。

    Servlet入门教程

    Servlet入门教程是一个逐步引导开发者了解和掌握Servlet技术的教育资源。Servlet是Java编程语言中的一个标准接口,用于扩展服务器的功能,特别是在Web应用开发中扮演着重要角色。本教程将涵盖Servlet的基本概念、...

    jsp Servlet基础入门学习教程(ZT).txt

    从给定的文件信息中,我们可以提取出关于JSP(JavaServer Pages)和Servlet的基础入门学习教程的关键知识点,以下是对这些知识点的详细说明: ### 1. Java Servlet 的优势与特性 Servlet是一种运行在服务器端的...

    java-servlet学习笔记

    Java Servlet是Java Web开发中的核心组件之一,它用于构建动态网站和Web应用程序。...学习笔记中可能包含了从基础概念到实践操作的全过程,通过不断复习和实践,可以逐步提升对Servlet的理解和运用能力。

    林学良Jsp&Servlet学习笔记

    这份学习资料可能是对JSP和Servlet基础知识的系统性讲解,涵盖了上述概念和原理,适合初学者入门。通过阅读这份笔记,你可以了解JSP和Servlet的基本语法、生命周期、以及如何将它们结合使用来创建动态Web应用。同时...

    基于Java的servlet学习基础设计源码

    本项目是一个基于Java语言开发的servlet学习基础项目,包含25个文件,主要文件类型包括XML配置文件、Java源代码、JAR包、...系统设计旨在为用户提供一个servlet基础学习示例,以帮助用户更好地理解和掌握servlet技术。

    JSPServlet新手学习资料

    **JSP和Servlet基础知识详解** **一、JSP内置对象** JSP提供了九种内置对象,它们是直接可用的,无需显式创建: 1. **request**:代表用户端请求,能够获取GET/POST请求中的参数。 2. **response**:用于向用户...

Global site tag (gtag.js) - Google Analytics