response对象表示服务器端对客户端的回应,response本身是HttpServletResponse的对象,HttpServletResponse对象本身也是ServletResponse对象的子接口,这点与reqeust是一样的
response中也有很多用法,最长用的有设置头信息、跳转、Cookie,其主要方法有:
public void setHeader(java.lang.String name, java.lang.String value) ---设置头信息的名字和内容
public void sendRedirect(java.lang.String location) throws java.io.IOException ----跳转,由一个页面跳往另外一个页面
public void addCookie(Cookie cookie) ---向客户端加入cookie
public void setContentType(java.lang.String type) ----设置内容的返回类型
头信息:随着具体的内容一起提交到服务器端,或者从服务器端随内容一起发到客户端上来,在jsp中可以使用request对象的方法可以取出头信息
取出全部头信息内容:public java.util.Enumeration getHeaderNames()
取得每一个头信息内容:public java.lang.String getHeader( java.lang.String name)
看如下实例:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ page contentType="text/html; charset=GBK" %>
My JSP 'header_demo.jsp' starting page
<%
//取得全部头信息
Enumeration enu = request.getHeaderNames();
while(enu.hasMoreElements()){
String name = (String)enu.nextElement();
%>
<%=name %>----><%=request.getHeader(name) %>
<%
}
%>
输入结果为:
accept---->*/*
referer---->http://localhost:933/javaweb/header/
accept-language---->zh-cn
ua-cpu---->x86
accept-encoding---->gzip, deflate
user-agent---->Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; QDesk 2.3.1192.202; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET4.0C; .NET4.0E)
host---->localhost:933
connection---->Keep-Alive
cookie---->JSESSIONID=227FD1BC57565FA8C959860E99A4488F
response.setHeader("refresh","2");//每隔两秒自动刷新页面一次
经常见到网站上有过几秒后就会跳转页面的现象:这种跳转成为服务器端的跳转,页面的地址会发生变化
response.setHeader("refresh","3;URL=../emp.jsp");//三秒后自动刷新并跳转到新的页面上去
在HTTP里面也可以实现这样的跳转,也是在头部信息完成的:
复杂表单的提交
response.sendRedirect("demo01.jsp");
此种跳转依然可以使用重写地址的方式向跳转页传递参数:
response.sendRedirect("demo01.jsp?ref=helloword");
接收也面依然使用request.getParameter()方法接收
两种跳转的区别:
服务器端的跳转:
客户端的跳转:response.setHeader(" ") reseponse.sendRedirect( " ") 所有页面执行完成之后在进行跳转,不能传递request范围的参数
COOKIE:是服务器端保存在客户端的一组数据,安全性较差,在JSP中,cookie属于单独的一个类,定义在javax.servlet.http.*
Cookie类的定义: public class Cookie extends java.lang.Ojbect implemnets java.lang.Cloneable
Cookie类的主要方法:
public Cookie (String name,String value):Cookie的构造方法,实例化Cookie对象,传入名称和内容
public java.lang.String getName() :取得Cookie的名字
public void setValue(java.lang.String newValue) :修改内容
pubilc void setMaxAge(int expiry):Cookie的最大保存时间