Servlet接口

Servlet是运行在服务器端的Java应用程序,由Servlet容器对其进行管理,当用户对容器发送HTTP请求时,容器将通知相应的Servlet对象进行处理,完成用户与程序之间的交互,在Servlet编程中,Servlet API提供了标准的接口与类,这些对象对Servlet的操作非常重要,它们为HTTP请求与程序回应提供了丰富的方法。

Servlet的运行需要Servlet容器的支持,Servlet容器通过调用Servlet 对象提供了标准的API接口,对请求进行处理。在Servlet开发中,任何一个Servlet对象都要直接或间接地实现javax.servlet.Servlet接口。在该接口中包含5个方法,其功能及作用如下表。

一个正常实现了Servlet接口的类需要实现Servlet中的各种方法。代码如下。

import javax.servlet.*;
import java.io.IOException;public class Demo1 implements Servlet {@Overridepublic void init(ServletConfig servletConfig) throws ServletException {}@Overridepublic ServletConfig getServletConfig() {return null;}@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {}@Overridepublic String getServletInfo() {return null;}@Overridepublic void destroy() {}
}

在Servlet中,主要的方法是service(),当客户端请求到来时,Servlet容器将调用Servlet实例的service()方法对请求进行处理。

ServletConfig接口

ServletConfig接口位于javax.servlet包中,它封装了Servlet的配置信息,在Servlet初始化期间被传递,每一个Servlet都有且只有一个ServletConfig对象,该对象定义了4个方法。如下表。

HttpServletRequest接口

HttpServletRequest接口位于javax.servlet.http包中,继承了javax.servlet.ServletRequest接口,是Servlet中的种要对象,在开发过程中较为常用,其常用方法及说明如下表。

HttpServletResponse接口

HttpServletReponse接口位于javax.servlet.http包中,它继承了javax.servlet.ServletResponse接口,同样是一个非常重要的对象,其常用方法及说明如下表。

GenericServlet类

在编写一个Servlet对象时,必须实现javax.servlet.Servlet接口,在Servlet接口中包含5个方法,也就是说创建一个Servlet对象要实现这5个方法,这样操作非常不方便。javax.servlet.GenericServlet类简化了此操作,实现了Servlet接口。
GenericServlet类是一个抽象类,分别实现了Servlet接口与ServletConfig接口。该类实现了除service()之外的其他方法,在创建Servlet对象时,可以继承GenericServlet类来简化程序中的代码,但需要实现service()方法。

HttpServlet类

GenericServlet类实现了javax.servlet.Servlet接口,为程序的开发提供了方便,但在实际开发过程中,大多数的应用都是使用Servlet处理HTTP协议的请求,并对请求做出响应,所以通过继承GenericServlet类仍然不是很方便。javax.servlet.http.HttpServlet类对GenericServlet类进行了扩展,为HTTP请求的处理提供了灵活的方法。
HttpServlet类仍然是一个抽象类,实现了service()方法,并针对HTTP1.1中定义的其中请求方式提供了相应的方法。doGet(),doPost(),doPut(),doDelete(),doHead(),doTrace()和doOptions() 方法。在这7个方法中,除了对doTrace()和 doOptions() 方法进行简单实现外,HttpServlet类并没有对其他的方法进行实现,需要开发人员在使用过程中根据实际需要对其进行重写。
HttpServlet类继承了GenericServlet类,通过其对GenericServlet类的扩展,可以很方便地对HTTP请求进行处理及相应。

JavaWeb自学笔记,ServletAPI编程常用接口和类相关推荐

  1. JavaWeb自学笔记(一)

    JavaWeb自学笔记(一) 学习视频:BV12J411M7Sj 文章目录 JavaWeb自学笔记(一) 1.基本概念 1.1 web应用程序 1.2 静态web 1.3 动态web 2.web服务器 ...

  2. JDBC—01—JDBC简介;JDBC常用接口与类;

    一. JDBC 简介 1 什么是 JDBC JDBC(Java DataBase Connectivity)java 数据库连接 是 JavaEE 平台下的技术规范 定义了在 Java 语言中连接数据 ...

  3. Java教程之JDBC中的常用接口和类

    JDBC定义了一系列操作数据库的接口和类,这些接口和类位于java.sql包中.接下来,本节将详细介绍JDBC的常用API. Driver接口 Driver接口是所有JDBC驱动程序必须要实现的接口, ...

  4. JavaWeb自学笔记02

    注解 注释:用文字描述程序,给人看的 注解(JDK1.5之后的新特性):说明程序的,给计算机看的 使用分类: 1.编写文档:通过代码里标识的注解生成文档(生成doc文档)(预定义注解)2.编译检查:通 ...

  5. 【C++自学笔记 提高编程篇(二)STL初识】

    STL初识 2 STL初识 2.1 STL的诞生 2.2 STL基本概念 2.3 STL六大组件 2.4 STL中容器.算法.迭代器 2.5容器算法迭代器初识 2.5.1 vector存放内置数据类型 ...

  6. Bug bounty自学笔记1(常用工具)

    听说bug bounty 最近很流行 于是想在YouTube上找一些视频自学,记录一些学习笔记. 选择什么样的virtual hosting software VirtualBox 开始不错 但后面要 ...

  7. sys接口linux编程,网络编程常用接口的内核实现----sys_listen()

    四.reqsk_queue_alloc()函数 reqsk_queue_alloc()的源码实现及分析如下所示: /* * 用来分配连接请求块散列表,然后将其连接到所在传输控制块的请求 * 块容器中. ...

  8. 网络编程常用接口的内核实现----sys_listen()

    listen()函数仅在TCP服务器端调用,它做两个事情:将套接字转换到LISTEN状态和设置套接上的最大连接队列.listen()对应的内核实现为sys_listen(),下面开始对其实现作具体的分 ...

  9. python 栈实现 加减乘除_Python自学笔记,编程中简单的加减乘除

    日常生活中,我们都会有过很多的加减乘数的基本运算.今天我们来看看Python这么编程语言,是怎么进行简单的基本运算的.废话不多说,我们开始吧开发工具:IDLE (Python 3.7 64-bit)这 ...

最新文章

  1. angular例子笔记
  2. 【学术相关】西湖大学教授:都说不唯论文,那我们发表论文是为了什么?
  3. 在传统.NET Framework 上运行ASP.NET Core项目
  4. jQuery Mobile 1.1 : 更流畅,更快捷,更实用
  5. Kafka精华问答 | kafka节点之间如何备份?
  6. html5 box布局,使用Flexbox打造响应式网页网格布局
  7. JS基础入门篇(四)—this的使用,模拟单选框,选项卡和复选框
  8. 在php中默认访问权限修饰符是,php中访问修饰符的知识点总结
  9. HTML5初探 - 基本的HTML5模版
  10. 批量更新 elasticsearch 内指定字段状态, 先查询后更新
  11. BZOJ 3231: [Sdoi2008]递归数列
  12. canoco5主成分分析步骤_权重赋值之“主成分分析法”
  13. 计算机关闭窗口可以使用alt,电脑关闭窗口快捷键
  14. mysql stmt语法_mysqli_stmt_fetch
  15. 在html创建色块,浅谈网页制作中色块使用
  16. 何同学采访苹果CEO库克上热搜,网友表示自愧不如
  17. ios内存管理(整理篇)
  18. js layui跳转页面_Layui数据表格跳转到指定页的实现方法
  19. JAVA菜鸟驿站快递分发系统计算机毕业设计Mybatis+系统+数据库+调试部署
  20. 两天价网站背后重重迷雾:做个网站究竟要多少钱

热门文章

  1. C语言整数转字符串-递归算法
  2. 微信支付V3-SDK(已发布npm)
  3. 关于pycharm中html在页面访问的记录(授权问题)
  4. 工作中遇到的问题之android客户端自动生成带logo的二维码
  5. 学JAVA可从事的工作岗位
  6. 视频融合云服务EasyCVR平台部署在云服务器中的配置关键点
  7. DNS服务器的原理及搭建
  8. 洛谷 P2530 [SHOI2001]化工厂装箱员 解题报告
  9. 2021最新支持APP|公众号聊天在线客服程序源码
  10. C++笔记之linux下非阻塞多线程运行多个系统shell命令(popen方法)