servlet概述

一、servlet简介

     servlet是由sun公司提供的一门用于开发动态web资源的技术。sun公司在其API中提供了一个servlet接口,用户若想发一个web资源(即就是开发一个java程序向浏览器输出数据),需要完成以下的两个步骤:
      1、编写一个java类,实现servlet接口。
      2、把开发好的java类部署到web服务器中。按照一种约定俗成的称呼习惯,通常我们也把实现了servlet接口的java程序,称之为servlet。

二、什么是servlet

    Servlet是一种基于java技术的web组件,是一种基于java的且与第三方平台无关的类。通常,它可以被web服务器编译、加载和运行,最后生成动态的资源内容。

三、什么是servlet容器

    Servlet容器通常是web服务器的一部分,或者说是它的一个组件,servlet容器通常提供了一些接收客户端请求、给出响应等网络请求服务,通常,servlet容器通过servlet的生命周期管理所有的servlet,tomcat就是一个典型的servlet容器。

四、为什么要使用servlet

  1、servlet是采用接java编写的,而由java跨平台性的特点可知,servlet移植性很好,且servletAPI具有完善的标准,几乎所有的主流服务器都支持servlet。
  2、servlet与传统的CGI(common  gateway  interface)相比,功能要强大,且处理的请求采用的是线程,而非进程,从而节省大量的资源开销,因此servlet处理请求更轻量级、更高效。

五、servlet常用的接口

  5.1 servlet接口 :

             (1)定义了servlet必须实现的方法;
          (2)所有的servlet都必须实现这个接口;
          (3)GenericServlet类实现了这个接口;
          (4)HttpServlet继承了GenericServlet类;

 

    Public  abstract  interface Servlet
    {
    Public void  destroy();
    Public ServletConfig getServletConfig();
    Public String getServletInfo();
    Public void init(ServletConfig config);
    Public void service(ServletResquset request,ServletResponse reponse)
    }  

  5.2 ServletRequest接口


    (1)ServletRequest用来向Servlet提供客户有关请求的信息;
    (2)HttpServletRequest类继承了ServletRequest接口,能够提供进一步的与协议相关的数据;
    (3)ServletRequest对象是service方法的参数之一;
  

  5.3 ServletResponse接口


  1、(1)ServletResponse用来向客户端传送经过MIME编码的数据;
      发送文本数据时,使用getWrite方法返回PrintWrite对象‘
      发送二进制数据时,使用getOutputStream方法返回ServletOutpuStream对象;
      另外,在调用getWrite或getOutputStream方法前调用setContentType方法;
   (2)HttpServletResponse类继承ServletResponse接口,能够提供进一步的与协议相关的数据
   (3)ServletResponse对象是service方法的参数之一;
  

  5.4 SingleThreadModel接口


     (1)SingleThreadModel接口确保Servlet在同一时刻只处理一个请求;
   (2)此接口中没有定义方法
  

  5.5 ServletConfig接口


  1、(1)ServletConfig接口用于存取servlet实例的初始化参数;
    (2)参数形式:名称/数值对
    (3)通过ServletConfig可以得到web.xml中的设置的servlet的一些部署信息;
    (4)每一个ServletConfig对象对应着的一个唯一的servlet;
  2、ServletConfig接口定义
    Public abstract interface ServletConfig{
    Public String  getInitParameter(String name);
    Public Enumeration getInitParameterName();
    Public ServletContext get ServletContext();
    }


  5.6 ServletContext接口


    (1)ServletContext接口向Servlet提供了访问其环境所需的方法,并记录了一些重要环境信息;
    (2)通过调用ServletConfig.getServletContext来获得ServletContext对象;

六、如何开发一个servlet

  1、编写java类,继承HttpServlet类
  2、重新构建doGet方法和doPost方法
  3、在web.xml文件中进行配置
  4、servlet程序交给tomcat服务器运行

原文地址:https://www.cnblogs.com/lyq-biu/p/10608567.html