我是靠谱客的博主 负责缘分,最近开发中收集的这篇文章主要介绍response和request作用,重定向,get和post的区别response 响应对象request 请求对象,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

response(响应)request(请求)对象的作用, 重定向的特点, 请求转发和包含的特点与区别, 请求转发和重定向的区别,get和post的区别

JSP的response隐藏对象在转换bai为Servlet之后,对应于duHttpServletResponse型态对象,HttpServletResponse对象是zhi有关于对客户端请求之dao响应,您可以利用它来设定一些要响应的讯息,例如标题信息、响应状态码等.

response 响应对象

response是Servlet.service方法的一个参数,类型为HttpServletResponse

1.response的生命周期

创建时机:客户端每访问一次,请求对象就会创建一个,响应对象就创建一个

​ 当service方法执行完毕后 response对象和request对象销毁

2.response的作用

1.设置响应头信息

2.发送状态码

3.设置响应正文

4.设置重定向(典型面试问题)

3.response设置响应头信息

方法:setHeader(“headName”,“headValue”);

1.设置响应头信息

utf-8编码解析setHeader(“content-type”, “text/html;charset=utf-8”);//设置浏览器文本类型为text/html

2.设置浏览器刷新相关的

setHeader(“refresh”,“5”);//浏览器5秒刷新一次

setHeader(“refresh”,“5;http://www.baidu.com”);//浏览器5秒后刷新到百度页面

3.设置浏览器不缓存

response.setHeader(“expires”, “0”);

response.setHeader(“pragma”, “no-cache”);

response.setHeader(“cache-control”, “no-cache”);

response的常用方法总结:

setHeader():是一个通用的标头设定方法,您可以用它来设定任何「名称/值」的标头.

setIntHeader():是专门用来设定整数值标头的版本.

setDateHeader():是setHeader()的Date设定版本,第二个参数是设定Date的Long数值,0表示GMT 1970/1/1 00:00。   (Note:以上3个函数用来设置HTTP协议的表头,必须对HTTP协议有些了解才能正确使用,我现在也不清楚).

setStatus():是用来设定回应的状态码,例如404 Not Found,HttpServletResponse类中提供了一些助忆常数设定,例如SC_NOT_FOUND就是表示404状态码(可以在Servlet API文件中查询相关的助忆常数).

sendError():会根据服务器的预设错误网页回报方式显示错误讯息.

sendRedirect():设置重定向页面.

getWriter():取得PrintWriter对象,由它来写出响应至服务器的本体信息.

4.response发送状态码

方法:response.setStatus(200):设置状态码;

response.sendError(404, “您要查找的资源不存在”):当发送错误状态码时,Tomcat会跳转到固定的错误页面去,但可以显示错误信息。

5.response设置响应正文

方法:response.getWriter(); //字符流

​ response.getOutputStream(); //字节流

注意:(1)使用完成后 要注意关闭流

​ (2)字符流和字节流不能同时使用 如果同时使用触发异常

IllegalStateException (非法语句异常)

6.response重定向

原理:

​ 浏览器发送给客户端一个请求 客户端给浏览器响应一个状态码 设置一个重定向地址 浏览器再去访问新的地址 服务器再去响应浏览器的请求

a.发送一个状态码

b.设置一个重定向地址

代码实现:

​ response.setStatus(302);//发送一个状态码

​ response.setHeader(“location”,"/javaEE-05/servlet/FServlet");

实现重定向的便捷方法

response.sendRedirect(“URL地址”);

特点

1.两次请求 两次响应

2.地址栏会发生变化

3.第一次访问可能是get 也可能是post 第二次访问一定是get

4.重定向可以重定向到站外资源

5.负责重定向的servlet不要设置响应体(响应正文)

6.重定向属于客户端行为

request 请求对象

request是Servlet.servlet()方法的一个参数 类型为HttpServletRequest

1.request生命周期

诞生:客户端访问

销毁:service方法执行完成后

2.request作用

1.获得请求头(封装了请求头数据)

2.请求参数(封装了请求正文数据,如果是get请求,没有正文)

3.域对象功能(是一个域对象,可以把他当中Map来添加 获取数据)

4.请求转发和包含(提供了请求转发和包含功能)

3.request获得请求头

方法:getHeader(String name); //获取指定名称的请求头

​ getHeaderNames(); //获得所有请求头名称 返回的是一个枚举类型

​ getIntHeader(String name); //获得值为int类型的请求头

4.request获取请求参数(就是从客户端传递过来的参数)

最常见的客户端传递参数方法有两种

get请求:

​ form表单

​ 超链接

​ 地址栏追加参数

post请求:

​ form表单

get和post提交的区别

get提交:提交数据大小有限制 提交参数会以?号的形式追加到浏览器的地址栏中 多个参数以&做连接 数据不安全

post提交:提交数据大小没有限制 数据安全 效率低

方法:

​ request.getParameter(“attname”); //返回的是String类型

​ request.getParameterNames(); //获得所有参数的名字

注意:

​ (1)当指点名称不存在时 获得null

​ (2)提交的参数相同,后边提交的参数将前边提交的参数覆盖

方法:

​ request.getParameterValues(“attname”); //获得请求中所有的参数值

​ request.getParameterMap(); //返回的是一个Map集合

​ 将从请求中获得参数内容封装到map集合当中

5.request域对象功能

request是域对象!在javaWeb中一共有四个域对象,其中ServletContext是域对象 他在整个web应用中只创建一个ServletContext

request是域对象 request可以在一个请求中共享数据

一个请求会创建一个request对象 如果一个请求经历了多个Servlet 那么多个Servlet就可以request来共享数据

在一个请求中经历多个Servlet 请求转发 请求包含(作用四)

方法:setAttribute(String name,Object value);//存储一个对象

​ getAttribute(String name); //通过属性名获得属性值数据

​ removeAttribute(String name);//通过属性名移除数据

​ getAttributeNames(); //获得所有属性名 返回的是以枚举类型

6.request请求转发 请求包含

无论是请求转发 请求包含,都表示由多个servlet共同处理一个请求

请求转发方法:request.getRequestDispatcher(/servlet/BServlet).forward(request,response);

请求包含方法:request.getRequestDispatcher(/servlet/BServlet).include(request,response);

请求转发和包含的特点:

1.只有一次请求,一次响应

2.地址栏不会发生变化

3.属于服务器端行为

4.转发只能是站内资源

请求转发和请求包含的区别(面试问题):

转发:(留头不留体)

如果在AServlet中请求到BServlet,那么在AServlet中就不允许在输出响应体

即不能再使用response.getWriter()和response.getOutputStream()向客户端输出 这一工作应该由BServlet来完成

不能输出响应体但还是可以设置响应头 例如:response.setContentType(“text/html;charset=utf-8”);

包含:(留头又留体)

请求转发的限制 请求包含中没有

7.请求转发与重定向的区别(面试问题)

1.请求转发是一次请求

重定向是两次请求

2.请求转发地址栏不会发生变化

重定向地址栏会发生变化

3.请求转发属于服务端行为

重定向属于客户端行为

4.请求转发要么都是get 要么都是post

重定向第二次请求一定是get

5.请求转发只能转发站内资源

重定向可以定向站外资源

8.request获得请求相关的其他方法

与URL相关的方法

方法:getMethod(); //返回请求方法

​ getLocale(); //返回当前客户端的locale,表示国家和语言

​ getCharacterEncoding(); //获得请求编码

最后

以上就是负责缘分为你收集整理的response和request作用,重定向,get和post的区别response 响应对象request 请求对象的全部内容,希望文章能够帮你解决response和request作用,重定向,get和post的区别response 响应对象request 请求对象所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部