Servlet概述

一、Servlet简介

其实质就是运行在 Web 应用服务器上的 Java 程序,与普通 Java 程序不同,它是位于 Web 服务器内部的服务器端的 Java 应用程序,可以对 Web 浏览器或其他 HTTP 客户端程序发送的请求进行处理。通常我们也把实现了servlet接口的java程序,称之为Servlet

二、Servlet运行过程

Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后:
①客户端键请求数据包打包,并且发送给web容器(也就是发送请求(url))
②web容器解析出客户端的数据包,将解析后的数据封装到request对象,同时容器还要创建response对象
③web容器要依据请求资源路径("/web01/hello")找到servlet的配置,然后创建servlet对象。
④web容器调用servlet对象的service方法。容器会将事先创建好的request,response作为参数传递给service方法。
⑤在service方法里面,可以通过request对象获得请求参数,并进行相应的处理,处理结果会放到response对象里面。
⑥web容器从response对象中取出处理结果,然后打包(按照http协议,该数据包称之为响应数据包)。再将响应数据包发送给浏览器。
⑦浏览器收到响应数据包之后,解析处理结果,然后生成相应的页面。

三、Servlet例子 

创建一个helloservlet2类实现servlet接口

package com.sxw.servlet;

import javax.servlet.*;
import java.io.IOException;

public class HelloServlet2 implements Servlet {
    //初始化
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("初始化操作");
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }
    //service方法
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("hello.");
    }

    @Override
    public String getServletInfo() {
        return null;
    }
    //销毁
    @Override
    public void destroy() {
        System.out.println("销毁.");
    }
}

配置web.xml文件

  <servlet>
    <servlet-name>hello2</servlet-name>
    <servlet-class>com.sxw.servlet.HelloServlet2</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>hello2</servlet-name>
    <url-pattern>/hello2</url-pattern>
  </servlet-mapping>

这个例子同时也反映了servlet的生命周期

加载 Servlet:当 Tomcat 第一次访问 Servlet 的时候,Tomcat 会负责创建 Servlet 的实例。

初始化 Servlet:当 Servlet 被实例化之后,Tomcat 会调用 init() 方法来初始化这个对象。

处理服务:当浏览器访问 Servlet 的时候,Servlet 会调用 service() 方法处理请求。

销毁:当 Tomcat 关闭或者检测到 Servlet 要从 Tomcat 删除的时候,会自动调用 destroy() 方法,让该实例所占用的资源释放掉。一个 Servlet 如果长时间不被使用的话,也会被 Tomcat 自动销毁。

简单总结:只要访问 Servlet ,就会调用其对应的 service() 方法,init() 方法只会在第一次访问 Serlvet 的时候才会被调用

测试:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值