您现在的位置:首页 >> 前端 >> 内容

Servlet简介、Servlet底层原理、Servlet实现方式

时间:2017/7/27 14:14:37 点击:

  核心提示:一、Servlet简介1、Servlet定义: Servlet(Server Applet)是Java Servlet的简称,是为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互...

一、Servlet简介

1、Servlet定义:

Servlet(Server Applet)是Java Servlet的简称,是为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。

2、Servlet定义:

A servlet is a small Java program that runs within a Web server. Servlets receive and respond to requests from Web clients, usually across HTTP, the HyperText Transfer Protocol.
(servlet是一个java小程序运行在web服务器。servlet接收并响应来自Web客户端的请求,通常通过HTTP,超文本传输协议。)

3、Servlet实现过程:

(1)客户端发送请求至服务器端;

(2)服务器将请求信息发送至 Servlet;

(3)Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;

(4)服务器将响应返回给客户端。

4、Servlet可以完成以下任务:

(1)动态生成HTML文档。

(2)将请求转发给Servlet组件

(3)读取客户端的Cookie,以及向客户端写入Cookie。

(4)访问服务器的资源,如数据库、 XML、文件对像等。

二、Servlet底层原理:

1、javax.servlet Interface Servlet

Servlet简介、Servlet底层原理、Servlet实现方式

2、javax.servlet Interface Servlet 中的method

Servlet简介、Servlet底层原理、Servlet实现方式

三、Servlet实现方式

1、Servlet的实现方式一(实现Servlet接口):

package cn.hncu;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class FirstServlet implements Servlet {
    /**init方法*/
    @Override
    public void init(ServletConfig paramServletConfig) throws ServletException {
    }

    /**getServletConfig方法*/
    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    /**service方法*/
    @Override
    public void service(ServletRequest paramServletRequest,
            ServletResponse paramServletResponse) throws ServletException,
            IOException {
    }

    /**getServletInfo方法*/
    @Override
    public String getServletInfo() {
        return null;
    }

    /**destroy方法*/
    @Override
    public void destroy() {
    }
}

2、Servlet的实现方式二(继承Servlet接口的实现类:GenericServlet类、HttpServlet类):

Servlet简介、Servlet底层原理、Servlet实现方式

2.1、继承实现类GenericServlet:

Servlet简介、Servlet底层原理、Servlet实现方式

package cn.hncu;

import java.io.IOException;

import javax.servlet.GenericServlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

/**【注意】GenericServlet是抽象类,service是抽象方法*/
public class ExtendGenericServlet extends GenericServlet {

    /**service方法*/
    /**【注意】唯独service方法没有被实现,这个service方法我们自己使用*/
    @Override
    public void service(ServletRequest paramServletRequest,
            ServletResponse paramServletResponse) throws ServletException,
            IOException {
    }

    /**destroy方法*/
    /**【注意】除过service方法之外,其他方法都已经被实现了,并且这些方法都调用父接口的方法*/
    @Override
    public void destroy() {
        super.destroy();
    }

    /**getServletConfig方法*/
    @Override
    public ServletConfig getServletConfig() {
        return super.getServletConfig();
    }

    /**getServletInfo方法*/
    @Override
    public String getServletInfo() {
        return super.getServletInfo();
    }

    /**init方法*/
    @Override
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
    }
}

2.2、继承实现类HttpServlet:

Servlet简介、Servlet底层原理、Servlet实现方式

package cn.hncu;


import java.io.IOException;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ExtendHttpServlet extends HttpServlet {

    /**service方法*/
    /**【注意】此service方法是HttpServlet类 继承 GenericServlet类 后实现的其抽象service方法的*/
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        super.service(req, resp);
    }

    /**destroy方法*/
    /**【注意】下面的这些方法全部是继承与GenericServlet类中的方法*/
    @Override
    public void destroy() {
        super.destroy();
    }

    /**getServletConfig方法*/
    @Override
    public ServletConfig getServletConfig() {
        return super.getServletConfig();
    }

    /**getServletInfo方法*/
    @Override
    public String getServletInfo() {
        return super.getServletInfo();
    }

    /**init方法*/
    @Override
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
    }
}

Tags:SE ER RV VL 
作者:网络 来源:不详