lServlet接口SUN公司定义了两个默认实现类,分别为:GenericServlet、HttpServlet。
lHttpServlet指能够处理HTTP请求的servlet,它在原有Servlet接口上添加了一些与HTTP协议处理方法,它比Servlet接口的功能更为强大。因此开发人员在编写Servlet时,通常应继承这个类,而避免直接去实现Servlet接口。
HttpServlet在实现Servlet接口时,覆写了service方法,该方法体内的代码会自动判断用户的请求方式,如为GET请求,则调用HttpServlet的doGet方法,如为Post请求,则调用doPost方法。因此,开发人员在编写Servlet时,通常只需要覆写doGet或doPost方法,而不要去覆写service方法
l由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用<servlet>元素和<servlet-mapping>元素完成。
l<servlet>元素用于注册Servlet,它包含有两个主要的子元素:<servlet-name>和<servlet-class>,分别用于设置Servlet的注册名称和Servlet的完整类名。
一个<servlet-mapping>元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:<servlet-name>和<url-pattern>,分别用于指定Servlet的注册名称和Servlet的对外访问路径。
------------------------------------------------------------------------------------------
l同一个Servlet可以被映射到多个URL上,即多个<servlet-mapping>元素的<servlet-name>子元素的设置值可以是同一个Servlet的注册名。
l在Servlet映射到的URL中也可以使用*通配符,但是只能有两种固定的格式:一种格式是“*.扩展名”,另一种格式是以正斜杠(/)开头并以“/*”结尾。
对于如下的一些映射关系:
lServlet1 映射到 /abc/*
lServlet2 映射到 /*
lServlet3 映射到 /abc
lServlet4 映射到 *.do
问题:
l当请求URL为“/abc/a.html”,“/abc/*”和“/*”都匹配,哪个servlet响应
Servlet引擎将调用Servlet1。
l当请求URL为“/abc”时,“/abc/*”和“/abc”都匹配,哪个servlet响应
Servlet引擎将调用Servlet3。
l当请求URL为“/abc/a.do”时,“/abc/*”和“*.do”都匹配,哪个servlet响应
Servlet引擎将调用Servlet1。
l当请求URL为“/a.do”时,“/*”和“*.do”都匹配,哪个servlet响应
Servlet引擎将调用Servlet2。
l当请求URL为“/xxx/yyy/a.do”时,“/*”和“*.do”都匹配,哪个servlet响应
Servlet引擎将调用Servlet2。
lServlet是一个供其他Java程序(Servlet引擎)调用的Java类,它不能独立运行,它的运行完全由Servlet引擎来控制和调度。
l针对客户端的多次Servlet请求,通常情况下,服务器只会创建一个Servlet实例对象,也就是说Servlet实例对象一旦创建,它就会驻留在内存中,为后续的其它请求服务,直至web容器退出,servlet实例对象才会销毁。
l在Servlet的整个生命周期内,Servlet的init方法只被调用一次。而对一个Servlet的每次访问请求都导致Servlet引擎调用一次servlet的service方法。对于每次访问请求,Servlet引擎都会创建一个新的HttpServletRequest请求对象和一个新的HttpServletResponse响应对象,然后将这两个对象作为参数传递给它调用的Servlet的service()方法,service方法再根据请求方式分别调用doXXX方法。
分享到:
相关推荐
### Servlet接口及方法详解 #### 一、概述 在Java Web开发中,Servlet技术是非常核心的一部分,它提供了标准的方式来处理HTTP请求和响应。本文档主要介绍了`Servlet`接口及其相关方法,以及`RequestDispatcher`...
Servlet基础知识和Java Web开发 Servlet是Sun公司提供的一门用于开发动态web资源的技术。...Servlet在web应用中的位置提示、Servlet的运行过程、Servlet接口实现类、Servlet的一些细节等都是需要了解的重要知识点。
在JavaWeb开发中,Servlet接口和其对应的实现类是服务器端动态处理HTTP请求的核心组件。它们使得开发者能够创建能够响应HTTP请求的Java程序,从而构建动态、交互式的Web应用程序。以下将详细介绍Servlet接口、...
### 使用Servlet接口手动开发Servlet详解 #### 一、概述 本文档将详细介绍如何通过实现`Servlet`接口的方式,从零开始构建一个简单的Servlet程序。这个Servlet不仅会显示“Hello World”,还会显示当前的时间。这...
### 二、Servlet接口实现类——`GenericServlet` `javax.servlet.GenericServlet`类实现了`Servlet`接口,并提供了部分默认实现,简化了Servlet的开发过程。 ##### 1. `void destroy()` - **描述**:释放资源的...
首先,我们需要了解Servlet接口。Servlet是Java编程语言中用于扩展服务器功能的接口,它允许开发者编写代码来处理HTTP请求并生成响应。在Java Servlet API中,`javax.servlet.http.HttpServlet`是基础接口,我们的...
超全面javaweb教程28天第9天_4_Servlet之接口和类的介绍,以及实现Servlet接口
Servlet接口是所有Servlet类的基础,它定义了Servlet的核心方法。主要包括: - `init(ServletConfig config)`: 初始化Servlet实例,服务器在部署Servlet时调用此方法,传入一个ServletConfig对象,用于获取Servlet...
`GenericServlet`是Servlet接口的一个具体实现,提供了Servlet接口的部分默认实现,简化了开发过程。开发者通常只需要重写`service()`方法来处理请求。此外,`GenericServlet`还实现了`ServletConfig`接口,以便能够...
让javaweb运行,提供servlet-api的接口实现。tomcat的实现类
在Java中,Servlet类必须实现javax.servlet.Servlet接口,或者继承javax.servlet.GenericServlet或javax.servlet.http.HttpServlet抽象类来简化开发。 2. **生命周期方法**: - `init()`: 当Servlet实例被创建时...
Servlet接口 `javax.servlet.Servlet`接口定义了所有Servlet必须实现的基本方法,这些方法包括`init()`、`service()`和`destroy()`。通过实现这些方法,开发者能够控制Servlet的生命周期。 - **`void init...
1、编写一个Java类,实现servlet接口。 2、把开发好的Java类部署到web服务器中。 按照一种约定俗成的称呼习惯,通常我们也把实现了servlet接口的java程序,称之为Servlet 二、Servlet的运行过程 Servlet程序...
GenericServlet是Servlet接口的一个抽象类,它实现了Servlet接口中的所有方法。它提供了通用的、与协议无关的Servlet实现。通过继承GenericServlet,你可以覆盖`service()`方法来处理请求。这种方式比直接实现...
请求转发通过`RequestDispatcher`接口的`forward()`方法实现。以下是一个简单的示例: ```java protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, ...
JDBC提供了一组接口和类,使得Java程序能连接到各种类型的数据库。主要包括`DriverManager`、`Connection`、`Statement`和`ResultSet`等核心组件。在登录场景中,使用`Statement`执行SQL查询,比较查询结果与用户...
Servlet是Java Servlet API的核心组件,它是一个Java类,遵循Servlet接口。当服务器接收到HTTP请求时,会创建Servlet实例并调用其服务方法来处理请求。Servlet生命周期包括加载、初始化、服务和销毁四个阶段。 2. ...
#### 三、Servlet接口 `javax.servlet.Servlet`接口是整个Servlet API的核心,它定义了Servlet生命周期中的基本行为。 ##### 3.1 `init()` 方法 **定义**: ```java void init(ServletConfig config) throws ...
在Java Web开发中,Servlet是一种用于扩展服务器功能的Java类,它可以处理HTTP请求并返回响应。本项目"Servlet实现登录功能"旨在通过Servlet技术构建一个基础的用户登录系统。在这个项目中,我们将涵盖以下几个关键...
首先,Servlet是一个Java类,它扩展了`javax.servlet.Servlet`接口或实现了`javax.servlet.http.HttpServlet`抽象类。Servlet的主要职责是接收客户端的请求,进行业务处理,然后返回响应。在用户管理系统中,Servlet...