Java EE javax.servlet中的Servlet接口
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接口的更多相关文章
- Java EE javax.servlet中的ServletContext接口
ServletContext接口 public interface ServletContext (https://docs.oracle.com/javaee/7/api/javax/servlet ...
- Java EE javax.servlet中的RequestDispatcher接口
RequestDispatcher接口 public interface RequestDispatcher 一.介绍 定义一个对象,从客户端接收请求并将其发送到服务器上的任何资源(例如servlet ...
- JAVA学习之 Model2中的Servlet与.NET一般处理程序傻傻分不清楚
时隔多日,多日合适吗,应该是时隔多月.我又想起了一般处理程序.这都是由于近期在实现的DRP系统中经经常使用到jsp+servlet达到界面与逻辑的分离.servlet负责处理从jsp传回的信息:每当这 ...
- 【Java EE 学习 78 中】【数据采集系统第十天】【Spring远程调用】
一.远程调用概述 1.远程调用的定义 在一个程序中就像调用本地中的方法一样调用另外一个远程程序中的方法,但是整个过程对本地完全透明,这就是远程调用.spring已经能够非常成熟的完成该项功能了. 2. ...
- 【Java EE 学习 69 中】【数据采集系统第一天】【SSH框架搭建】
经过23天的艰苦斗争,终于搞定了数据采集系统~徐培成老师很厉害啊,明明只是用了10天就搞定的项目我却做了23天,还是模仿的...呵呵,算了,总之最后总算是完成了,现在该好好整理该项目了. 第一天的内容 ...
- Java EE javax.servlet.http中的HttpSession接口
HttpSession接口 public interface HttpSession (https://docs.oracle.com/javaee/7/api/javax/servlet/http/ ...
- Java EE javax.servlet中的ServletResponse接口
ServletResponse接口 public interface ServletResponse 子接口:HttpServletResponse 实现类:HttpServletResponseWr ...
- Java EE javax.servlet中的ServletRequest接口
ServletRequest接口 public interface ServletRequest 子接口:HttpServletRequest 实现类:HttpServletRequestWrappe ...
- Java EE javax.servlet中的ServletConfig接口
ServletConfig接口 public interface ServletConfig 实现类:GenericServlet.HttpServlet 一.介绍 一个供servlet容器使用配置对 ...
随机推荐
- 预处理、const、static与sizeof-#pragma pack的作用
1:有如下代码: #include <iostream.h> #pragma pack(1) struct test{ char c; short s1; short s2; int i; ...
- swoole入门简介
原文:https://www.cnblogs.com/dormscript/p/4811921.html 本文主要记录一下学习swoole的过程.填过的坑以及swoole究竟有多么强大! 首先说一下对 ...
- VMware配置NAT方式下的静态ip
一.VMware上NAT模式工作原理 原理图如下: 说明: 1.虚拟主机与本地主机通信时,直接通过虚拟交换机访问(不管是虚拟主机的ip是静态ip还是动态分配的ip) 2.虚拟主机与外网通信时,虚拟主机 ...
- LeetCode 146. LRU缓存机制(LRU Cache)
题目描述 运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制.它应该支持以下操作: 获取数据 get 和 写入数据 put . 获取数据 get(key) - 如果密钥 (k ...
- Python接口测试-利用登录后的session用到登录后的接口中
有些接口是在登录后才能调用的,例如“立即出借”只有在登录后才能到出借窗口,解决: 主要是添加了: s =requests.session() 完整代码: '''登录 ''' print('*'*100 ...
- 数据中心网络架构的问题与演进 — 云网融合与 SD-WAN
目录 文章目录 目录 前文列表 云网融合 云网融合的应用场景 SD-WAN SD-WAN 的应用场景 企业组网互联 SD-EN 数据中心互联 SD-DCI 云间互联 SD-CX 企业用户接入云 数据中 ...
- 关于JavaWeb面试
什么是JavaWeb? Java web 是指有Java语言开发出来可以在万维网上访问浏览的程序. Java Web,是用Java技术来解决相关web互联网领域的技术总和.web包括:web服务器和 ...
- 一百一十九:CMS系统之将短信验证码和图形验证码放到memcached缓存中
将两个验证码的视图都放到common蓝图下 from flask import Blueprint, request, make_responsefrom exts import alidayufro ...
- centos6 安装docker
docker 安装要求内核大于3.10 , 而centos6 机器上内核一般是2.6 , 除了升级内核外, 还可以安装低版本的docker , 本文介绍docker 1.7的安装. 机器 环境 [ro ...
- MySQL时间相关操作
本文主要介绍MySQL使用过程中有关时间处理的相关操作: MySQL时间更新(加上或减去一段时间) MySQL毫秒数和日期之间的转换 一.MySQL时间更新(加上或减去一段时间) 1.1 MySQL时 ...