1、概述

Servlet API中共有5个包,约113个接口和类:

javax.servlet
javax.servlet.http
javax.servlet.jsp
javax.servlet.annotation
javax.servlet.descriptor

2、Servlet接口

(1)所有Servlet/JSP应用必须直接或者间接实现Servlet接口, Servlet/JSP容器会将实现了Servlet接口的类加载至容器,以供访问。

(2)Servlet中共定义了5个方法:

void init(ServletConfig config)
void service(ServletRequest req,ServletResponse res)
void destroy()
String getServletInfo()
ServletConfig getServletConfig()

其中前三个为生命周期方法。

(3)一般而言,在init()中会将ServletConfig赋值给一个类级变量,以便Servlet类中的其它方法可以访问。但在httpServlet中,已经完成了此项工作,可以直接调用getServletConfig()获取即可。

(4)一个应用程序中的所有用户将共用一个Servlet实例,因此不建议使用类级变量,除非它们是只读的,或者是java.util.concurrent.atomic包中的成员。

3、ServletRequest接口与HttpServletRequest接口

(1)ServletRequest接口主要用于获取请求中的参数、内容等,如

String getContentType()
String getParameter(Stringname)

(2)HttpServletRequest接口在ServletRequest接口的基础上增加了以下方法:

String getContextPath()    //返回表示请求Context的请求URI部分
Cookie[] getCookies() //返回一个Cookies对象数据。
String getHeader(String name)
String getMethod()
String getQueryString //返回请求URL中的查询字符串
HttpSession getSession()
HttpSession getSession(Boolean create)

4、ServletResponse接口与HttpServletResponse接口

(1)在调用一个Servlet的service()方法之前,Servlet会先创建一个ServletRequest与ServletResponse,并将它们作为参数传给service方法,它们隐藏了将请求发给servlet以及响应发给浏览器的复杂性。

(2)常用方法:获取输出流、设置响应格式等。

ServletOutputStream getOutputStream() //一般用于文件的上传下载,传输二进制数据
PrintWritergetWriter() //用于文字的传送,如传输HTML等
void setLocale(Locale loc)

(3)HttpServletResponse增加了以下方法:

 voidaddCookie(Cookie cookie)
void addHeader(String name, String value)
void sendRedirect(String location)

5、GernericSerlvet类

主要完成了以下工作

将init方法中的ServletConfig赋值给一个类级变量,使它可以通过调用getServletConfig来获取。

为Servlet接口中的所有方法提供默认实现。

提供方法来包装ServletConfig中的方法。

但由于一般而言,servlet均为HttpServlet,因此GenericServlet并不常用,主要使用HttpServlet。

Servlet基础之一:Servlet基本接口与类的更多相关文章

  1. Servlet API遍程常用接口和类

    本文主要总结Servlet  API遍程常用接口和类 Servlet API http://tomcat.apache.org/tomcat-5.5-doc/servletapi/index.html ...

  2. Java第三阶段学习(十一、Servlet基础、servlet中的方法、servlet的配置、ServletContext对象)

    一.Servlet简介  1.什么是servlet: sun公司提供的一套规范(接口),用来处理客户端请求.响应给浏览器的动态资源.但servlet的实质就是java代码,通过java的API动态的向 ...

  3. Servlet基本用法(二)接口和类

    一.摘要 本文主要简单介绍开发Servlet需要用到的接口和类. 二.ServletRequest和ServletResponse接口 当客户请求到来时,由容器创建一个ServletRequest对象 ...

  4. Servlet基本用法二接口和类

    转自:http://www.cnblogs.com/xujian2014/p/4536168.html 一.摘要 本文主要简单介绍开发Servlet需要用到的接口和类. 二.ServletReques ...

  5. Servlet基础知识总结

    Servlet是JavaWeb应用开发的核心组件.Servlet运行在Servlet容器中(例如最常用的Tomcat),它可以为各种客户请求提供相应服务.Servlet可以轻松完成以下任务: 动态生成 ...

  6. JavaWeb学习——Servlet相关的接口和类

    JavaWeb学习——Servlet相关的接口和类 摘要:本文主要学习了Servlet相关的接口和类. Servlet的接口和类 三种方式 实现Servlet有三种方式: 实现javax.servle ...

  7. Servlet的接口实现类

    Sun公司提供了两个默认实现类 GenericServlet和HttpServlet HttpServlet指能够处理Http请求的Servlet,它在原有的Servlet基础上添加了与HTTp相关的 ...

  8. javaWeb学习总结(3)- Servlet总结(servlet的主要接口、类)

    Servlet总结01——servlet的主要接口.类 (一)servlet类 Servlet主要类.接口的结构如下图所示: 要编写一个Servlet需要实现javax.servlet.Servlet ...

  9. Servlet常用的接口和类

    使用接口和类的作用:Servlet也是依靠继承父类和实现接口来实现的.使用Servlet必须要引入两个包:javax.servlet和javax.servlet.http.所有的Servlet应用都是 ...

随机推荐

  1. 微信开发之门店管理{"errcode":40097,"errmsg":"invalid args hint: [xxxxxxx]"}

    最近在做微信端开发,做到门店开发部分,在创建门店的时候遇到40097问题{"errcode":40097,"errmsg":"invalid args ...

  2. Asp.Net通过SignalR实现IM即时通讯

    前言:SignalR是一种针对H5中WebSocket的解决方案,可以实现在不支持H5的浏览器中实现IM 后端: step 1:通过NuGet安装SignalR step 2:新建一个类继承于Hub, ...

  3. yii2安装与初始化-Yii2学习笔记(一)

    一.安装项目: 使用composer下载安装yii2 advanced安装包: composer create-project yiisoft/yii2-app-advanced advanced(自 ...

  4. Ubunu下安装Docker

    安装Docker步骤如下: sudo apt-get update sudo apt-get install apt-transport-https sudo apt-key adv --keyser ...

  5. 改进我们的小游戏 - 零基础入门学习Python004

    改进我们的小游戏 让编程改变世界 Change the world by program 改进我们的小游戏 很多鱼油对改善这个游戏提出了建议,小甲鱼做了一下总结,大概有以下几个方面需要改进: 猜错的时 ...

  6. opencv + numpy for python

    OpenCV的全称是:Open Source Computer Vision Library.OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows和Mac OS ...

  7. apache主目录,配置文件目录结构说明

    apache服务安装成功后,主要的目录结构如下: |-- bin 程序命令目录[apache执行文件的目录如apachectl,htpassed] |-- build |-- cgi-bin 预设给一 ...

  8. 如何使用Prism框架的EventAggregator在模块间进行通信

    目的 本文主要介绍如何使用Prism类库提供的事件机制在松耦合组件之间相互通信,Prism类库的事件机制建立在事件聚合服务之上,允许发布者和订阅者通过事件进行通信,不需要彼此之间引用. 事件聚合 Ev ...

  9. C# 将字节流转换为图片的实例方法

    usingSystem;  usingSystem.Collections.Generic;  usingSystem.Linq;  usingSystem.Text;  usingSystem.Dr ...

  10. Linux下的摄影后期处理软件

    由于喜欢摄影,在LInux上折腾,想找一款能代替lightroom的软件.发现darktable这款软件专业.于是就安装了. 以下是在Linux上安装darktable的instruction,需要添 ...