HttpServletRequest和HttpServletResponse详解
请求与响应相关的类和接口非常多,下表是主要的与请求和接口相关的类以及接口。
主要的与请求和接口相关的类及接口
|
方 法 |
说 明 |
|
ServletInputStream |
Servlet的输入流 |
|
ServletOutputStream |
Servlet的输出流 |
|
ServletRequest |
代表Servlet请求的一个接口 |
|
ServletResponse |
代表Servlet响应的一个接口 |
|
ServletRequestWrapper |
该类实现ServletRequest接口 |
|
ServletResponseWrapper |
该类实现ServletResponse接口 |
|
HttpServletRequest |
继承了ServletRequest接口,表示HTTP请求 |
|
HttpServletResponse |
继承了ServletResponse接口,表示HTTP请求 |
|
HttpServletRequestWrapper |
HttpServletRequest的实现 |
|
HttpServletResponseWrapper |
HttpServletResponse的实现 |
在上面给出的类和接口中,最主要的是HttpServletRequest和HttpServletResponse接口,下面将详细介绍这两个接口。
1.HttpServletRequest
HttpServletRequest接口最常用的方法就是获得请求中的参数,这些参数一般是客户端表单中的数据。同时,HttpServletRequest接口可以获取由客户端传送的名称,也可以获取产生请求并且接收请求的服务器端主机名及IP地址,还可以获取客户端正在使用的通信协议等信息。下表是接口HttpServletRequest的常用方法。
说明:HttpServletRequest接口提供了很多的方法。
接口HttpServletRequest的常用方法
|
方 法 |
说 明 |
|
getAttributeNames() |
返回当前请求的所有属性的名字集合 |
|
getAttribute(String name) |
返回name指定的属性值 |
|
getCookies() |
返回客户端发送的Cookie |
|
getsession() |
返回和客户端相关的session,如果没有给客户端分配session,则返回null |
|
getsession(boolean create) |
返回和客户端相关的session,如果没有给客户端分配session,则创建一个session并返回 |
|
getParameter(String name) |
获取请求中的参数,该参数是由name指定的 |
|
getParameterValues(String name) |
返回请求中的参数值,该参数值是由name指定的 |
|
getCharacterEncoding() |
返回请求的字符编码方式 |
|
getContentLength() |
返回请求体的有效长度 |
|
getInputStream() |
获取请求的输入流中的数据 |
|
getMethod() |
获取发送请求的方式,如get、post |
|
getParameterNames() |
获取请求中所有参数的名字 |
|
getProtocol() |
获取请求所使用的协议名称 |
|
getReader() |
获取请求体的数据流 |
|
getRemoteAddr() |
获取客户端的IP地址 |
|
getRemoteHost() |
获取客户端的名字 |
|
getServerName() |
返回接受请求的服务器的名字 |
|
getServerPath() |
获取请求的文件的路径 |
2.HttpServletResponse
在Servlet中,当服务器响应客户端的一个请求时,就要用到HttpServletResponse接口。设置响应的类型可以使用setContentType()方法。发送字符数据,可以使用getWriter()返回一个对象。下表是接口HttpServletResponse的常用方法。
接口HttpServletResponse的常用方法
|
方 法 |
说 明 |
|
addCookie(Cookie cookie) |
将指定的Cookie加入到当前的响应中 |
|
addHeader(String name,String value) |
将指定的名字和值加入到响应的头信息中 |
|
containsHeader(String name) |
返回一个布尔值,判断响应的头部是否被设置 |
|
encodeURL(String url) |
编码指定的URL |
|
sendError(int sc) |
使用指定状态码发送一个错误到客户端 |
|
sendRedirect(String location) |
发送一个临时的响应到客户端 |
|
setDateHeader(String name,long date) |
将给出的名字和日期设置响应的头部 |
|
setHeader(String name,String value) |
将给出的名字和值设置响应的头部 |
|
setStatus(int sc) |
给当前响应设置状态码 |
|
setContentType(String ContentType) |
设置响应的MIME类型 |
HttpServletRequest和HttpServletResponse详解的更多相关文章
- HttpServletRequest 和 HttpServletResponse详解
用HttpServletRequest,现在整理如下,以便以后查阅 请求与响应相关的类和接口非常多,下表是主要的与请求和接口相关的类以及接口. 主要的与请求和接口相关的类及接口 方 法 说 ...
- java HttpServletRequest和HttpServletResponse詳解
這篇文章主要介紹瞭java HttpServletRequest和HttpServletResponse詳解的相關資料,需要的朋友可以參考下 java HttpServletRequest和HttpS ...
- 深入分析JavaWeb Item7 -- HttpServletResponse详解
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...
- HttpServletRequest request方法详解
//1.获取请求参数 //获取参数的单个值,如有多个则只返回第一个 String parameter1 = request.getParameter("demo"); //获取参数 ...
- HttpServletResponse和HttpServletRequest详解.RP
HttpServletResponse,HttpServletRequest详解 1.相关的接口 HttpServletRequest HttpServletRequest接口最常用的方法就是获得 ...
- JAVAWEB开发之HttpServletResponse和HttpServletRequest详解(下)(各种乱码、验证码、重定向和转发)
HttpServletRequest获取请求头信息 (1)获取客户机请求头 String getHeader(String name) Enumeration<String> getHe ...
- JAVAWEB开发之HttpServletResponse和HttpServletRequest详解(上)(各种乱码、验证码、重定向和转发)
HttpServletResponse简介 Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象 request和re ...
- (14)javaWeb中的HttpServletResponse类详解
如果希望了解请求和响应的详细内容,可以看我的“HTTP协议”系列文章 响应体的简单概述: a,响应报文结构: b,常见的状态码,返回服务器处理的结果: c,常见的响应头: HttpServletRes ...
- (13)javaWeb中HttpServletRequest详解
关于HTTP请求和响应,可以参考 HTTP协议 系列文章 导学,请求概述: a,GET和POST请求报文格式: b,常见的请求头 在servlet中,相应的doGet方法和doSet方法中的reque ...
随机推荐
- MSSQL为单独数据库创建登录账户
如果要为一个数据库创建一个独立的账号需要这个数据库为包含数据库 当前(非包含)的数据库所面临的问题在描述什么是包含数据库之前,先了解一下为什么会出现包含数据库.当前的数据库有一些问题,如下:1.在数据 ...
- docker容器中文件的上传与下载
原文地址:传送门 1.上传文件 docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH [OPTIONS]:保持源目标中的链接,例: docker cp ...
- C++中正确使用PRId64
http://blog.csdn.net/win_lin/article/details/7912693
- cocos2dx 大地图分块加载的研究(初)
http://blog.csdn.net/dinko321/article/details/46739563 http://blog.csdn.net/u012812482/article/detai ...
- CentOS7编译安装PostgreSQL
创建组和用户 groupadd postgres useradd -g postgres postgres passwd postgres 编译安装 yum install -y gcc gcc-c+ ...
- Unity做360度的全景照片
这里推荐两种方法,第一种是用鼠标滑动,第二种是用手机的陀螺仪进行全景查看 第一种: 1.新建一Sphere,然后为其赋予材质,注意材质的Shader类型为:Mobile/particles/Alpha ...
- 关于windows环境下cordova命令行无法启动adb.exe的解决办法
使用phonegap开发手机APP,常常需要更改代码之后进行调试,使用安卓模拟器每次启动非常缓慢,而且不能保证最终在真机上的效果.所以一般都采用真机进行调试. 搭建真机的调试环境这里就不再赘述了,网上 ...
- Now Task
1. Java 多线程 首先整理基本功,如线程的状态,和调度 多线程的经典例子,包括代码在内 多线程死锁的问题,要结合数据库的例子来整理 JDK1.5的若干要点 多线程的设计模式 2. NIO 需要掌 ...
- Java小对象的解决之道——对象池(Object Pool)的设计与应用
一.概述 面向对象编程是软件开发中的一项利器,现已经成为大多数编程人员的编程思路.很多高级计算机语言也对这种编程模式提供了很好的支持,例如C++.Object Pascal.Java等.曾经有大量的软 ...
- Topcoder Srm 671 Div2 1000 BearDestroysDiv2
\(>Topcoder \space Srm \space 671 \space Div2 \space 1000 \space BearDestroysDiv2<\) 题目大意 : 有一 ...