说一下Servlet里面得request和response
当一个servlet被调用的时候,我们一般继承带协议的httpServlet,大方向上是下图这样

在这里面request和response起了什么作用呢?

来细究一下。
request:
1.封装了客户端所有的请求数据:
请求行,请求头,请求体(get没体)
2.而当涉及到http协议时,我们还可以利用request获取协议的信息:
获取客户端ip:request.getRemoteAddr()
获取请求方式:request.getMethod()
获取http请求头:
String getHeader(String name) ,适用于单值头
int getIntHeader(String name),适用于单值int类型的请求头
long getDateHeader(String name) ,适用于单值毫秒型的请求头
Enumeration<String> getHeaders(String name) 适用于多只请求头
获取请求url

getRequestURL():获取请求url,等于不包含参数的整个请求路径
getScheme():获取请求协议
getServerName():获取服务器名
getServerPort():获取服务器端口号
getContextPath():获取项目名
getServletPath():获取Servlet路径
getRequestURI():获取请求URI,等于项目名加Servlet路径
getQueryString():获取请求参数
3.获取请求参数,请求参数有一个值或多个值的。
String getParameter(String name) 获取单值参数
String[] getParameterValues(String name) 获取多值参数
Enumeration<String> getParameterNames() 获取所有参数名
Map<String,String[]> getParameterMap() 获取所有参数,key为参数名,value为参数值
4.请求转发和请求包含
需要使用
RequestDispatcher rd=request.getRequestDispatcher(''/MyServlet'');
请求转发:rd.forward(request,response);
请求包含:rd.include(request,response):
有时候一个客户端要求分给A和B两个Servlet干同一件事,但是A和B都做不了,A是怎么做的呢,他和C说,我把这件事给你做,我设置设置响应头,你把响应体给我写了,你别告诉头,然后C做完了把响应体返回给A,A就拿着去交差了,这就是请求转发;而B呢,他会和C说,我自己做不了这件事,你和我一起做吧,我把响应头和响应体分分,你写一些我写一些,两者一起做完了,B拿着去交差了,这就是请求包含。


5.request域
在同一个请求内使用request.setAttribute(),request.getAttribute()来传值,前一个存,后一个取。
response
涉及到http协议时,
1.可以通过response发送状态码:200(成功),404(资源未找到),302(转发重定向,会伴着一个URL一起发送回去),304(浏览器有缓存),500(服务器端错误)
response.sendErr(int sc)
response.sendErr(int sc,String ms)
response.setStatus(int sc)
2.响应头
response.setHeader(String name,String value)
response.addHeader(String name,String value)
response.setIntHeader(String name,int value)
response.addIntHeader(String name,int value)
response.setDateHeader(String name,long value)
response.addDateHeader(String name,long value)
3.respone的两个流
ServletOutputStream:用来向客户端发送字节数据
PrintWriter:用来向客户端发送字符数据,需要设置编码
4.重定向
respone.sendRedirect("地址") 重定向
相当于
response.setHeader("Location","地址");
response.setStatus(302);
说一下Servlet里面得request和response的更多相关文章
- JavaWeb(一)Servlet中的request与response
一.HttpServletRequest概述 1.1.HttpServletRequest简介 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP ...
- JSP Servlet中的Request和Response的简单研究
本文参考了几篇文章所得,参考目录如下: 1.http://www.cnblogs.com/guangshan/p/4198418.html 2.http://www.iteye.com/problem ...
- 【转载】Servlet中的request与response
一.HttpServletRequest概述 1.1.HttpServletRequest简介 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时, ...
- servlet中的request和response
request对象 1.什么是请求 a.浏览器向服务器发送数据就是请求. 一.request功能1--获取数据 1.获取浏览器相关的信息 getRequestURL方法 -- 返回客户端发出请求完整U ...
- Servlet中的request与response
了解这方面的知识可以查看以下博客 https://www.cnblogs.com/zhangyinhua/p/7629221.html https://www.cnblogs.com/zhaojian ...
- Servlet(四):request和response对象
Request对象:问题: 浏览器发起请求到服务器,会遵循HTTP协议将请求数据发送给服务器. 那么服务器接受到请求的数据改怎么存储呢?不但要存,而且要保证完成性. 解决: 使用对象进行存储,服务器每 ...
- Servlet第三篇(response;request)
response对象 Tomcat收到客户端的http请求,会针对每一次请求,分别创建一个代表请求的request对象.和代表响应的response对象 那么我们获取浏览器提交过来的数据,找reque ...
- servlet dispatcher .forward(request, response); 进入其它servlet【原】
dispatcher .forward(request, response); 进入其它servlet 假如我们的web.xml配置如下 <servlet> <servlet-nam ...
- servlet中request和response
一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...
随机推荐
- Python内置模块之序列化模块
序列化模块 json dumps loads dump load pickle dumps loads dump load shelve json 1: dumps/loads import json ...
- MariaDB修改默认字符集
MariaDB修改默认字符集,以及创建数据库授权 1 . 修改server默认字符集utf8 [root@aws my.cnf.d]# vim /etc/my.cnf.d/server.cnf [my ...
- 【BZOJ3379】[Usaco2004 Open]Turning in Homework 交作业
题解: 比较容易想到二分答案+时间逆流 这样就变成了经典的路灯问题 f[a][b][0/1] 其实可以不用二分答案 根据倒着考虑我们会发现一定是先走旁边的再走中间的 计算到当前点+下课时间所需的最小时 ...
- BZOJ5084[hashit]
题解: 后缀自动机 我们可以通过建立trie 把询问变成询问一些点的并 把trie建立成SAM和广义SAM基本相同,就是在父亲和儿子之间连边 然后就变成了询问树链的并 我们可以发现答案=sigma d ...
- 【前端基础系列】slice方法将类数组转换数组实现原理
问题描述 在日常编码中会遇到将类数组对象转换为数组的问题,其中常用到的一种方式使用Array.prototype.slice()方法. 类数组对象 所谓的类数组对象,JavaScript对它们定义为: ...
- 企业级代码托管Gitlab
Gitlab概述: 一个利用Ruby on Rails开发的开元应用程序,从而实现一个代码托管项目仓库,可以通过web界面进行访问公开的或者私有的项目 Ruby on Rails是一个可以使开发,部署 ...
- 伪分布式hbase数据迁移汇总
https://www.jianshu.com/p/990bb550be3b hbase0.94.11(hadoop为1.1.2,此电脑ip为172.19.32.128)向hbase1.1.2 (ha ...
- P1330 封锁阳光大学 DFS
题目描述 曹是一只爱刷街的老曹,暑假期间,他每天都欢快地在阳光大学的校园里刷街.河蟹看到欢快的曹,感到不爽.河蟹决定封锁阳光大学,不让曹刷街. 阳光大学的校园是一张由N个点构成的无向图,N个点之间由M ...
- 如何找到fastjson.jar这个阿里开源的jar包
如何找到fastjson.jar这个阿里开源的jar包 转载 https://blog.csdn.net/AngelLover2017/article/details/84261261 Java编程中 ...
- POJ 3020 Antenna Placement (二分图最小路径覆盖)
<题目链接> 题目大意:一个矩形中,有N个城市’*’,现在这n个城市都要覆盖无线,每放置一个基站,至多可以覆盖相邻的两个城市.问至少放置多少个基站才能使得所有的城市都覆盖无线? 解题分析: ...