Servlet概念

Servlet概念

Servlet是javaWeb的三大组件之一,其他的两种分别是Filter(拦截器),Listener(观察者模式)。我们的一个web项目需要部署在web服务器(例如tomcat)上,才能够接收浏览器等客户端的请求。服务器接收到请求之后,实际上是由Servlet组件来进行具体的业务逻辑处理,然后再对客户端进行响应。一个web项目中通常会有多个Servlet组件来处理不同的请求。例如在开发一个管理系统时,用户在进行登录的时候,服务器上将调用登录的Servlet来进行登录逻辑处理:

那么Servet有什么作用呢?它的主要功能在于交互式地浏览和修改数据,生成动态Web内容。JavaEE为我们提供了Servlet接口标准,实现了该接口的类都可以称为一个Servlet:

package com.rl.servlet;
public class ServletDemo1 implements Servlet{
}

Servlet的主要接口

Servlet接口中有5个方法,实现该接口的类,都可以称为一个Servlet:

package com.rl.servlet;
import javax.servlet.*;
import java.io.IOException;

public class ServletDemo1 implements Servlet {

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {

    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}
  1. init()方法的执行时机:当前实例被创建的时候被调用,做一些初始时的工作,这个方法平时用的不多。它的参数ServletConfig在初始化的时候可以进行配置,这个晚点说。
  2. service()方法是Servlet的核心方法。它的执行时机是当一个请求来请求当前的Servlet的时候被调用,进行具体的逻辑处理并响应请求。
  3. destroy()方法的执行时机是当前对象被销毁的时候,用于执行一些收尾工作。
  4. getServletInfo()用于获得当前Servlet的一些信息
  5. ServletConfig ()用于获得当前Servlet的配置信息

先不关注getServletInfoServletConfig这两个方法。实现其他三个方法如下所示:

package com.rl.servlet;
import javax.servlet.*;
import java.io.IOException;

public class ServletDemo1 implements Servlet {

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("excute ServletDemo1 init()");
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("excute ServletDemo1 service()");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {
        System.out.println("excute ServletDemo1 destory()");
    }
}

写好了Servlet之后,还需要在web.xml进行配置才能访问到ServletDemo1

<servlet><servlet-mappint>总是需要成对出现的。<servlet-name>为servlet起了个别名,<servlet-class>指定了别名关联的真正处理请求的java类是哪个,<url-pattern>指定在浏览器访问该Servlet时的访问名称。
假设你已经配置好了本地的tomcat服务器,启动服务器之后访问"http://localhost:8080/hello" 即可以访问到ServletDemo1

Tomcat服务器在本地启动并加载了本项目后,便可以接收来自浏览器的请求。当它收到"http://localhost:8080/hello" 请求时,Tomcat会找到web.xml文件,通过<url-pattern>/hello<url-pattern>发现该配置与请求路径匹配。这说明存在一个可以处理该请求的Serverlet,于是通过上述的<servlet-name> <servlet-class>最终找到了ServletDemo1.

再回过头来看,其实Servlet是实现了javax.servlet接口的类。它被部署在web服务器上,通过配置文件来定义其请求路径。而浏览器依据该路径,来访问到具体的Servlet进行业务逻辑的处理。

Servlet的生命周期

生命周期指的是Servlet的实例从创建到销毁的整个过程,该过程与我们上面提到的三个方法有关:

  • init():在Servlet的生命周期中,仅执行一次init()方法,负责在服务器装入Servlet时初始化Servlet对象。可以通过web.xml来配置服务器,用于控制在启动服务器时或是首次访问Servlet时装入Servlet。服务器装入Servlet对象后,无论有多少客户端请求Servlet,都不会再调用init()方法。
<servlet>
    <servlet-name>helloServlet</servlet-name>
    <servlet-class>com.rl.servlet.ServletDemo1</servlet-class>
<!--用于配置在启动Tomcat服务器时装入ServletDemo1服务器-->
    <load-on-startup>1</load-on-startup>
</servlet>
  • service():每当一个客户端请求一个Servlet对象时该方法被调用。服务器将客户端的请求包装成ServletRequest对象作为“请求”参数,同时传递一个ServletResponse对象作为“响应”参数来调用service()方法。
  • destory():在服务器停止、卸载Servlet时,该方法被调用,且仅执行一次,这标记着一个Servlet退出了它的生命周期,该方法负责释放占用的资源。

(完)

时间: 2024-10-21 22:40:01

Servlet概念的相关文章

DNS,TCP,IP,HTTP,socket,Servlet概念整理

概念整理 常见的协议虽然很容易理解,但是看了之后过一段时间不看还是容易忘,笔记如下,比较零碎,勉强供各位复习.如有错误欢迎指正. DNS协议 DNS 协议的作用是将域名解析为IP,域名的数量非常多,域名和ip的对应关系也经常变化,所以就需要专门的DNS服务器,用来将域名解析为IP. windows下,nslookup命令可以查看域名解析的结果.nslookup +网址. 世界各地有很多DNS服务器,也有一些大型公用的DNS服务器可以使用,比如Google的8.8.8.8和国内的114.114.1

Servlet学习之Servlet概念与运行流程

Servlet介绍与使用 什么是服务器: Servlet的概念: Servlet的特点: Servlet的使用: web.xml参数配置: 问题: 服务器在接收到浏览器的请求后,会自动调用对应的逻辑代码进行请求处理.但是逻辑代码是由程序员编写并放到服务器中,那么服务器怎么知道该怎么调用并调用哪个类和哪个方法来进行请求处理. 解决: 程序员在编写代码的时候如果能够按照服务器能够识别的规则进行编写, 浏览器按照指定的规则进行发送请求,那么服务器就可以调用并执行响应的逻辑代码进行请求处理了. 什么是服

Servlet概念(2)

Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面. 它担当客户请求与服务器响应的中间层. Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载. Servlet 接口的方法(Servlet 的生命周期) (1) 加载和实例化 Servlet 容器装载和实例化一个 Servlet.创建出该 Servlet 类的一个实例. (2) 初始化       v

Servlet概念理解

这是第一次接触Servlet,将一些资料整理了一下,方便理解与记忆: Servlet(Server Applet),全称Java Servlet,是用Java编写的服务器端程序. servlet的命名可以看出sun命名的特点,如Applet=Application+let,表示小应用程序:Scriptlet=Script+let,表示小脚本程序:同样Servlet=Server+let,表示小服务程序.   主要功能:交互式地浏览和修改数据,生成动态Web内容. Servlet运行于支持Java

Servlet概念入门

什么是Servlet Servlet 为创建基于 web 的应用程序提供了基于组件.独立于平台的方法,可以不受 CGI 程序的性能限制.Servlet 有权限访问所有的 Java API,包括访问企业级数据库的 JDBC API. Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层. 使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的

Servlet概念及配置

Servlet 简介: servlet就是sun公司开发动态web的一门技术 Sun在这些API中提供一个接口叫做:Servlet,如果逆向开发一个Servlet程序,只需要完成两个小步骤: 1.编写一个类,实现servlet接口 2.把开发好的Java类部署到web服务器中 把实现了Servlet接口的Java程序叫做Servlet HolleServlet Servlet接口 sun公司有两个默认的实现类:HttpServlet,GenericServlet 构建一个普通的maven项目,删

servlet

servlet学习大纲: 1.servlet概念及相关接口简介 2.servlet执行过程 3.servlet路径映射 4.缺省servlet 应用 5.servlet生命周期(重点) 6.servlet自动加载 7.servlet线程安全 8.servletConfig对象 9.servlet相关接口详解 10.servletContext对象 知识点 1.如何开发一个servlet 1.1步骤: 1.编写一个java类,继承httpservlet 2.重写doget/dopost方法 3.s

Servlet入门总结及第一个Servlet程序 (转载)

转载请注明出处http://blog.csdn.net/evankaka 一了解Servlet的概念 二Servlet技术功能 三 Servlet技术特点 四 Servlet生命周期 五servlet工作过程 六 Servlet与JSP区别 七Servlet代码结构 八 Servlet第一个程序 一.了解servlet 概念 Servlet定义:Servlet是基于Java技术的Web组件,由容器管理并产生动态的内容.Servlet引擎作为WEB服务器的扩展提供支持Servlet的功能.Serv

Java Web servlet理解

一.有两种应用程序 1.桌面应用程序:需要下载,安装,更新等.如QQ,office等 2.web应用程序:就是我们开发的web项目,这不需要用户下载,只需要用户客户端联网,访问相应的互联网资源. 二.Http协议 HTTP是一个属于应用层的面向对象的超文本传输协议,基于TCP/IP协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.HTTP特点: (1)无连接:分为4个阶段:建立连接.发送请求.等待响应.关闭连接 优点:快速.简单.不占用网络服务器资源 缺点:速度由网络来决定,每次传输数据