Javaweb之 Request和Resonse
Javaweb之 Request和Response详解
1. Request与Response
1.1. Web应用运行机制
到目前为止,我们已经掌握了Web应用程序的运行机制,现在学习的就是Web应用程序运行机制中很重要的内容 —— Request与Response。
首先,我们先来看一看Request与Response在Web应用程序运行时,是怎么样的。
通过上图的Web应用程序运行机制,我们可以知道关于Request与Response的信息:
- Web应用程序接收一次请求,就创建一个Request对象和Response对象。
- 通过Request对象可以在服务器端获取客户端发送的请求数据内容。
- 通过Response对象可以生成服务器端向客户端响应的数据内容。
- Request对象和Response对象并不是Web应用程序所创建的,而是由Tomcat服务器创建(JavaEE并没有Request与Response的实现类)。
- JavaEE提供了javax.servlet.http包中提供了HttpServletRequest和HttpServletResponse接口,这两个接口是继承于javax.servlet包中的ServletRequest和ServletResponse接口。
- javax.servlet包中的ServletRequest和ServletResponse接口是与协议无关的,而javax.servlet.http包中的HttpServletRequest和HttpServletResponse接口是与Http协议有关的。
1.2. 百度百科
- Request
Request这个对象不用事先声明,就可以在JSP网页中使用,在编译为Servlet之后,它会转换为javax.servlet.http.HttpServletRequest形态的对象,HttpServletRequest对象是有关于客户端所发出的请求的对象,只要是有关于客户端请求的信息,都可以藉由它来取得,例如请求标头、请求方法、请求参数、客户端IP,客户端浏览器等等信息。
- Response
Response对象用于动态响应客户端请示,控制发送给用户的信息,并将动态生成响应。Response对象只提供了一个数据集合cookie,它用于在客户端写入cookie值。若指定的cookie不存在,则创建它。若存在,则将自动进行更新。结果返回给客户端浏览器。
2. 掌握Response
2.1. Response概述
Response是Web应用程序用来封装向客户端响应信息的,是Servlet接口的service()方法的一个参数,类型为javax.servlet.http.HttpServletResponse。客户端每次发送请求时,服务器都会创建一个Response对象,并传递给Servlet接口的service()方法,来完成向客户端的响应工作。
下列是javax.servlet.http.HttpServletResponse常用的API列表:
Method Summary | |
---|---|
void | [addDateHeader](https://www.cnblogs.com/aaron911/p/7832055.html#addDateHeader(java.lang.String, long))(String name, long date) Adds a response header with the given name and date-value. |
void | [addHeader](https://www.cnblogs.com/aaron911/p/7832055.html#addHeader(java.lang.String, java.lang.String))(String name, String value) Adds a response header with the given name and value. |
void | sendRedirect(String location) Sends a temporary redirect response to the client using the specified redirect location URL. |
void | [setDateHeader](https://www.cnblogs.com/aaron911/p/7832055.html#setDateHeader(java.lang.String, long))(String name, long date) Sets a response header with the given name and date-value. |
void | [setHeader](https://www.cnblogs.com/aaron911/p/7832055.html#setHeader(java.lang.String, java.lang.String))(String name, String value) Sets a response header with the given name and value. |
void | setStatus(int sc) Sets the status code for this response. |
下列是javax.servlet.ServletResponse常用的API列表:
Method Summary | |
---|---|
ServletOutputStream | getOutputStream() Returns a ServletOutputStream suitable for writing binary data in the response. |
PrintWriter | getWriter() Returns a PrintWriter object that can send character text to the client. |
void | setCharacterEncoding(String charset) Sets the character encoding (MIME charset) of the response being sent to the client, for example, to UTF-8. |
void | setContentType(String type) Sets the content type of the response being sent to the client, if the response has not been committed yet. |
针对HttpServletResponse与ServletResponse常用的API,我们进行逐一讨论。
2.2. Response重定向
在学习Http响应协议时,我们曾做过重定向案例,但那时我们并不清楚其原理,下面我们就讨论一下利用HttpServletResponse来完成重定向的功能。
- 创建一个Servlet来完成重定向功能。
[](javascript:void(0)
Javaweb之 Request和Resonse相关推荐
- JavaWeb:request.setAttribute()和session.setAttribute()的区别
在编写javaweb中的servlet层程序时,为了实现前后端的交互,我们通常会使用request.setAttribute()和session.setAttribute()保存一些信息,用于其他页面 ...
- JavaWeb:request.getSession().invalidate()与request.getSession().removeAttribute()的区别
一.Session是什么? Session对象存储特定用户会话所需的属性及配置信息. 当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个会话中一直存在下去.当 ...
- JavaWeb(part2)--request
学习笔记,仅供参考,有错必纠 文章目录 request Request的功能 举个例子 获取请求参数通用方式(get,post都可用) 举个例子 中文乱码问题 请求转发 请求转发的特点 举个例子 re ...
- 【JavaWeb】Request对象详解
HTTP之Request:接上一篇博文HTTP协议详细. 本文目录 一.Request请求 1.Request对象和Response对象的原理 2.Request对象继承体系结构 3.Request功 ...
- javaweb:request请求对象(5)
1.请求和响应的概述: 什么请求:在浏览器地址栏输入地址,点击回车请求服务器,这个过程就是一个请求过程. 什么响应:服务器根据浏览器发送的请求,返回数据到浏览器在网页上进行显示,这个过程就称之为响应. ...
- java 请求响应_java http接口请求响应 request response
接口类: 1 package org.sunshine.dcda.epg.wechat.controller.niao; 2 3 import javax.servlet.http.HttpServl ...
- 【JavaWeb开发】Referer防盗链的详解
1. 什么是Referer? Referer 是 HTTP 请求(requset) header 的一部分,当浏览器(或者模拟浏览器行为)向web 服务器发送请求的时候,头信息里就有包含 Refere ...
- javaWeb综合案例
商城案例分模块:用户模块→ 分类模块 → 商品模块→购物车模块(最难)→ 订单模块后台模块(往前台的数据的增删改查)今日任务: 1用户注册a注册完成b给注册人发邮件2用户激活a 去邮箱激活发送的邮件3 ...
- sqlbulkcopy mysql_c# SqlBulkCopy实现批量从数据集中把数据导入到数据库中
今天遇到了一个导入类第一次见 SqlBulkCopy 可以实现从一个数据集导入到数据库中的表中 本来想从数据集中一条条遍历insert到库中 有了这个后发现: 只在把表与数据集的列做一下对应关系,再走 ...
最新文章
- WMI技术介绍和应用——查询快捷方式、映射磁盘和虚拟内存信息
- NodeList 和 HTMLCollection
- 关系数据库范式粗略理解
- 上传图片时 , 返回 nginx 出现413 Request Entity Too Large 问题
- php跳转传值,php如何跳转页面并传值?
- Windows 8 系列 --Block Game --随笔
- 18寒假最后一测+dijistra模板
- java中堆栈的基本操作_玩儿转队列和栈的基本操作及其应用:Java 版
- sqlyog for MySQL远程连接的时候报错mysql 1130的解决方法
- “创新”,我们应该如何去做?
- MySQL之逻辑架构和存储引擎
- matlab利用图像减法实现找茬
- linux环境下snap安装vscode
- 文章,记录按内容分页显示,根据文章内容按字数进行分页(转)
- JAVA使用RXTX编写串口调试工具-代码分析
- SMMS:一个不错的免费图床
- 【日成海外营销】如何利用TikTok进行红人营销?
- Android Studio基础输入文本框EditText
- 星环科技数据中台解决方案,助力某政府机构建设新型智慧城市
- matlab 模拟风,【Matlab实现】风场仿真