我们已经对servlet有了基本的认识了。接着我们来简单看看对客户端向服务器端发送的一次请求的响应中,我们可以做哪些事。至于对于客户端的请求我们可以怎么处理,明天再讲。
通过HttpAnalyzer这个软件,对请求和响应进行跟踪后,我们可以发现:
Response Headers Value
(Status-Line) HTTP/1.1 200 OK
Content-type text/html
Content-Length 100
Date Thu, 14 Jul 2011 14:48:23 GMT
Server lighttpd
Connection Keep-Alive
第一行是状态行,包含http协议版本信息,这个是服务器端来自动决定的。200是响应码,指示本次响应是什么样的状态,200代表成功。ok是对这个状态码的一个描述。我们常见的状态码有:404(客户端引发的错误,如请求一个不存在的资源)、500(服务器端引发的错误,如语法错误)、302(告知用户要向发过来的Location指定的URL发起请求,这个和Location配合使用)。。。等等。
接下来的叫响应头,这里面包含了当前发送回来的数据是什么类型、长度是多少、发送的时间是什么时候等等。这里面的信息,我们是可以设置(添加、删除、修改)的。
那么,我们在servlet中如何来修改或者设置响应码和响应头的信息呢?
我们在重写对应的doGet或者doPost或者其他的方法的时候,都会得到一个由容器创建的HttpServletRequest和HttpServletResponse对象。我们可以调用response的不同方法来设置我们想要的响应状态。
//设置响应码
response.setStatus(int);
//设置响应码并设置响应描述
response.sendError(int,"描述");
//我们常用的一个响应头的设置
response.setCharacterEncoding("GBK"); 告诉容器,以GBK编码的形式发送数据
response.setContentType("application/vnd.ms-excel"); 告诉客户端,当前发送到数据是什么格式,客户端就可以进行相应的处理
//设置响应头相关信息
response.setHeader("", ""); 很明显,这是一种键值对的形式。和我们上面捕获的信息格式一致。
//添加一个响应头
response.addHeader("", "");
当我们的响应头设置完毕以后,接着就要向客户端发送数据了。
在servlet中,我们可以选择对两种类型的数据发送使用不同的类。
字符型我们用PrintWriter
PrintWriter pw = response.getWriter();
pw.println("数据");
字节型我们用ServletOutputStream
ServletOutputStream sos = response.getOutputStream();
sos.write(bytes,0,length);
下面说一下请求重定向(请求转发以后说)和定时刷新/跳转
对于请求的重定向只需要依据代码:
response.sendRedirect("要转向到的网址");
这句代码其实内部做了两件事:1、将响应码设置为302; 2、将响应头中的Location的值设置为我们指定的网址。
定时刷新/跳转
response.setHeader("Refresh", "5;URL=跳转到的网址"); 等待5秒,自动跳转到我们制定的网址上。
分享到:
相关推荐
MVC架构关键技术,请求分派去重定向。精辟的内容再次,学习就是要掌握重点 难点,其他的就轻松了
Linux下对任意Http请求重定向.pdf
请求转发与重定向
servlet请求转发、请求重定向、请求包含 获取form数据
标题编辑器 可以修改请求的扩展,包括请求标头,响应标头,重定向请求和取消请求。 有关更多文档,请访问获取此扩展 。 。 安装我们的。关于权限标头编辑器需要这些权限: 标签:打开链接或切换到标签webRequest,...
利用HttpSession实现Ajax请求重定向
java servlet请求转发重定向 适合于初学者更好的了解页面跳转和原理
HttpServletResponse对象、HttpServletResponse应用、请求重定向
request和response实现跳转和重定向的区别
web中经常会使用到刷新页面,访问url、重定向请求的功能。 javascript提供了许多方法访问,修改当前用户在浏览器中访问的url.所有的这些技术都是基于location对象的。它是作为window对象的属性。你可以生成一个包含...
spring mvc controller间跳转 重定向 传参
主要介绍了java实现响应重定向发送post请求操作,结合实例形式分析了java请求响应、重定向及数据处理相关操作技巧,需要的朋友可以参考下
我们都知道,在写SPA的时候,我们可以通过配置vue-router来实现路由的重定向。 官方文档(以及ts类型)的定义中给出了这一选项: interface RouteConfig = { path: string, redirect?: string | Location | ...
html如何在刷新网页面时重定向到另一个网页或网站域名.纯前端代码,无需后台JAVA,PHP配合
http://open.****.cn/v1/getAvatar?id=3&sign=cdeab1c37e9ea2b3c42628db4ab8d5f5&appkey=a63eb2115ea940a69d10feac79a57a25 当图片资源师以上重定向的图片时候、当图片资源修改后此地址不变、获取不到最新图片、此包...
I/O重定向简明教程(命令使用) I/O重定向简明教程(命令使用)
JavaWeb开发技术-实现请求重定向.pptx
重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊...
Header Editor是一款管理浏览器请求的Chrome扩展,包括修改请求头、修改响应头、重定向请求、取消请求。 您可以从Redirector导入规则 规则说明: 1、匹配类型 规则会应用到满足相应匹配条件的URL上 全部:...
请求转发与重定向的区别,和对学习法的小建议,