Servlet API 详解
创始人
2024-03-24 16:18:06
0

 

 

目录

一、HttpServlet

① init() 方法

② service() 方法

③ destroy() 方法

④ doGet()方法

⑤ doPost()方法

⑥ doPut/deDelete/doOptions

常见面试题: 请你谈谈Servlet的生命周期

二、Http请求:HttpServletRequest

1. 获取请求行信息

2. 获取请求头信息(header信息)

3. 获取 form 表单的数据(queryString或者body信息)

三、Http响应:HttpServletResponse

1. 设置响应行的信息

2. 设置响应头信息

 3. 设置响应体信息

四、大致总结


 

一、HttpServlet

 

① init() 方法

在 Servlet 的生命期中,仅执行一次 init() 方法。它是在服务器装入 Servlet 时执行(也就是HttpServlet实例化之后)。 无论有多少客户机访问 Servlet,都不会重复执行 init() 。

② service() 方法

service() 方法是 Servlet 的核心。每当一个客户请求一个HttpServlet 对象,该对象的service() 方法就要被调用,而且传递给这个方法一个"请求"(ServletRequest)对象和一个"响应"(ServletResponse)对象作为参数。 在 HttpServlet 中已存在 service() 方法。缺省的服务功能是调用与 HTTP 请求的方法相应的 do 功能。

③ destroy() 方法

destroy() 方法仅执行一次,即在服务器停止执行该方法。有可能会调用不到,比如杀进程或者电脑直接断电。

④ doGet()方法

收到GET请求的时候调用(由service方法调用,Tomcat收到请求,会先调用Service,再调用doxxx,实际开发中很少重写Service,一般重新doxxx方法即可)

⑤ doPost()方法

收到POST请求的时候调用(由service方法调用)

⑥ doPut/deDelete/doOptions

收到其他请求的时候调用 (由service方法调用)

 

常见面试题: 请你谈谈Servlet的生命周期

二、Http请求:HttpServletRequest

1. 获取请求行信息

返回值方法名描述
StringgetMethod()该方法用于获取 HTTP 请求方式(如 GET、POST 等)
StringgetRequestURI()该方法用于获取请求行中的资源名称部分,即位于 URL 的主机和端口之后,参数部分之前的部分
StringgetQueryString()该方法用于获取请求行中的参数部分,也就是 URL 中“?”以后的所有内容
StringgetContextPath()返回指示请求上下文的请求URI部分
StringgetRemoteAddr()该方法用于获取客户端的 IP 地址

2. 获取请求头信息(header信息)

返回值类型方法声明

描述

EnumerationgetHeaderNames()返回一个枚举,包含请求中所有的头名(.header的头名)
StringgetHeader(String name)通过头名返回头名的值(如这个头名有多个,只返回第一个)
EnumerationgetHeaders(String name)该方法返回指定头名所有的值(适用于有这个头名有多个)
返回值类型方法声明

描述

StringgetContentType()该方法用于获取 Content-Type 头字段的值。
intgetContentLength()该方法用于获取 Content-Length 头字段的值 。
StringgetCharacterEncoding()该方法用于返回请求消息的字符集编码 。

3. 获取 form 表单的数据(queryString或者body信息)

返回值类型方法声明功能描述
Enumeration getParameterNames ( )以枚举集合的形式返回请求中所有参数名
String getParameter(String name)返回指定参数名的参数值
String [ ] getParameterValues (String name)以字符串数组的形式返回指定参数名的所有参数值(HTTP 请求中可以有多个相同参数名的参数)

三、Http响应:HttpServletResponse

1. 设置响应行的信息

返回值类型方法描述
voidsetStatus(int status)

用于设置 HTTP 响应消息的状态码,并生成响应状态行。

2. 设置响应头信息

返回方法描述
voidaddHeader(String name,String value)添加一个有名称和值的header,存在也不覆盖,继续添加
voidsetHeader (String name,String value)添加一个有名称和值的header,存在直接覆盖
voidaddIntHeader(String name,int value)增加 值为 int 类型的响应头字段,不覆盖
voidsetIntHeader(String name, int value)设置 值为 int 类型的响应头字段,覆盖
voidsetContentType(String type)设置 Servlet 输出内容的 MIME 类型 和 字符编码格式。
voidsetCharacterEncoding(String charset)设置输出内容 的字符编码格式。

 3. 设置响应体信息

返回值类型方法描述
voidsendRedirect重定向URL
OutputStreamgetOutputStream()向body中写入二进制格式数据
PrintWritergetWriter()向body中写入  文本 格式数据

四、大致总结

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...