Servlet接口

  public interface Servlet

  其实现类有:FaceServlet、GenericServlet、HttpServlet

  一、介绍

  Servlet接口定义了所有servlet(实现该接口的类)必须实现的方法。

  我们通常所说的servlet,是指运行在服务器上的Java小程序,这里可以称为Servlet程序。他们通常是通过HTTP协议,从Web客户端接收请求并做出响应。

  如果要实现这个接口,可以通过继承GenericServlet类创建一个通用的、协议无关的Servlet。或者继承HttpServlet创建一个基于HTTP协议的Servlet。

  Servlet接口中的方法,有的用来初始化一个Servlet,有的用来服务接收到的请求,有的用来从服务器移除一个Servlet。这些方法被称为生命周期方法,他们被调用的顺序为:

  1. 创建一个Servlet,使用init方法进行初始化;

  2. service方法用来处理客户的调用;

  3. servlet 停止使用,使用destroy方法进行销毁,然后会进行垃圾回收和finalized。

  除了这些方法外,Servlet接口提供的getServletConfig方法,用来获得启动信息,getServletInfo方法,允许Servlet返回自身的基本信息,如作者,版本,版权等。

  二、接口中的方法

  1、void init(ServletConfig config) throws ServletException

  这个方法被Servlet容器调用,以指示一个Servlet正在被投入使用。

  Servlet容器在实例化Servlet后,会调用这个方法一次。在Servlet可以接收到任何请求前,init方法必须成功完成。

  当init方法出现一下情况时,Servlet容器不能把相关的Servlet投入服务:

  • 抛出一个ServletException;
  • 在Web服务器规定的时间内,没有返回

  config对象包含了Servlet的配置参数和初始化参数。

  2、ServletConfig getServletConfig( )

  返回一个ServletConfig对象,该对象包含了这个Servlet的初始化参数和启动参数,而且这个ServletConfig对象就是被传入init方法中的对象。

  Servlet接口的实现类负责存储这个ServletConfig对象,所以这个方法是能够成功返回的。

  3、void service(ServletRequest req,ServletResponse res) throws ServletException, IOException

  由Servlet容器调用,使得这个Servlet对接收到的request做出响应,并且service方法只有在init方法成功完成后才能被调用。

  应的状态代码始终应该为引发或发送错误的servlet设置。

  Servlet通常运行在可同时处理多个请求的多线程servlet容器中,开发人员必须注意同步对任何共享资源(如文件,网络连接以及servlet的类和实例变量)的访问。关于多线程编程的更多信息请参考Java Tutorial中的muti-threaded编程章节。

  4、String getServletInfo( )

  返回有关servlet的信息,例如作者,版本和版权。

  该方法返回的字符串应该是纯文本而不是任何标记类型(如HTML,XML等)。

  5、void destroy( )

  由servlet容器调用,以向servlet指示servlet正在停止服务

  只有在servlet的service方法内的所有线程都退出或超时后,才会调用此方法。而且一旦servlet容器调用了这个方法,它不会再在这个servlet上调用其service方法。

Java EE javax.servlet中的Servlet接口的更多相关文章

  1. Java EE javax.servlet中的ServletContext接口

    ServletContext接口 public interface ServletContext (https://docs.oracle.com/javaee/7/api/javax/servlet ...

  2. Java EE javax.servlet中的RequestDispatcher接口

    RequestDispatcher接口 public interface RequestDispatcher 一.介绍 定义一个对象,从客户端接收请求并将其发送到服务器上的任何资源(例如servlet ...

  3. JAVA学习之 Model2中的Servlet与.NET一般处理程序傻傻分不清楚

    时隔多日,多日合适吗,应该是时隔多月.我又想起了一般处理程序.这都是由于近期在实现的DRP系统中经经常使用到jsp+servlet达到界面与逻辑的分离.servlet负责处理从jsp传回的信息:每当这 ...

  4. 【Java EE 学习 78 中】【数据采集系统第十天】【Spring远程调用】

    一.远程调用概述 1.远程调用的定义 在一个程序中就像调用本地中的方法一样调用另外一个远程程序中的方法,但是整个过程对本地完全透明,这就是远程调用.spring已经能够非常成熟的完成该项功能了. 2. ...

  5. 【Java EE 学习 69 中】【数据采集系统第一天】【SSH框架搭建】

    经过23天的艰苦斗争,终于搞定了数据采集系统~徐培成老师很厉害啊,明明只是用了10天就搞定的项目我却做了23天,还是模仿的...呵呵,算了,总之最后总算是完成了,现在该好好整理该项目了. 第一天的内容 ...

  6. Java EE javax.servlet.http中的HttpSession接口

    HttpSession接口 public interface HttpSession (https://docs.oracle.com/javaee/7/api/javax/servlet/http/ ...

  7. Java EE javax.servlet中的ServletResponse接口

    ServletResponse接口 public interface ServletResponse 子接口:HttpServletResponse 实现类:HttpServletResponseWr ...

  8. Java EE javax.servlet中的ServletRequest接口

    ServletRequest接口 public interface ServletRequest 子接口:HttpServletRequest 实现类:HttpServletRequestWrappe ...

  9. Java EE javax.servlet中的ServletConfig接口

    ServletConfig接口 public interface ServletConfig 实现类:GenericServlet.HttpServlet 一.介绍 一个供servlet容器使用配置对 ...

随机推荐

  1. OUC_Summer Training_ DIV2_#16 725

    今天做了这两道题真的好高兴啊!!我一直知道自己很渣,又贪玩不像别人那样用功,又没有别人有天赋.所以感觉在ACM也没有学到什么东西,没有多少进步.但是今天的B题告诉我,进步虽然不明显,但是只要坚持努力的 ...

  2. 使用策略模式减少if else

    首先要明确的说出策略模式会不可避免导致你的代码类变得很多,如果对应方法逻辑很复杂时可采用,如果逻辑不是很复杂就有点大材小用了. package com.zihexin.application.stra ...

  3. js实现回到顶部功能

    js实现回到顶部功能 一.总结 一句话总结: 可以通过js或者jquery可以很快的控制页面的属性,比如高度等等 //设置当前视口的顶端数值 var setScrollTop = function(t ...

  4. LSTM参数和结构的本质理解——num_units参数/batch_size/cell计算

    参考 ———— 图例讲解 https://blog.csdn.net/u014518506/article/details/80445283 理解:cell其实只有一个 : sequence leng ...

  5. Android网络编程之——文件断点下载

    一:关于断点下载所涉及到的知识点 1.对SQLite的增删改查(主要用来保存当前任务的一些信息) 2.HttpURLConnection的请求配置 HttpURLConnection connecti ...

  6. Ansible批量自动化管理工具 roles标准化

    批量管理服务器的工具,无需部署代理,通过ssh进行管理,是python写的 ansible 常用模块 : (1)shell命令模块执行命令 (2)copy模块批量下发文件或文件夹 (3)script模 ...

  7. ZeroMQ——一个轻量级的消息通信组件 C#

    ZeroMQ——一个轻量级的消息通信组件 ZeroMQ是一个轻量级的消息通信组件,尽管名字中包含了"MQ",严格上来讲ZeroMQ并不是"消息队列/消息中间件" ...

  8. R语言与概率统计(二) 假设检验

    > ####################5.2 > X<-c(159, 280, 101, 212, 224, 379, 179, 264, + 222, 362, 168, 2 ...

  9. golang 操作ceph object storage

    ceph的object storage 提供了和amazon s3兼容的接口以供客户访问. 在ceph的官网上,可以看到它提供了多种语言的访问范本,例如python的(http://docs.ceph ...

  10. iptables基本命令到深入

    1.关闭firewalld,安装iptables-server并启动服务 systemctl stop firewalld systemctl disable firewalld yun -y ins ...