JSP response对象

来源:互联网 发布:英国贝德福德大学 知乎 编辑:程序博客网 时间:2024/06/07 04:10

response对象

response对象的主要作用是用于对客户端的请求进行回应,将WEB服务器处理后的结果发回给客户端。response对象属于javax.servlet.http.HttpServletResponse接口的实例,HttpServletResponse接口的定义如下:
public interface HttpServletResponse extends ServletResponse

response对象常用方法:


方法

类型

描述

1

public void addCookie(Cookie cookie)

普通

向客户端增加Cookie

2

public void setHeader(String name,String value)

普通

设置回应的头信息

3

public void sendRedirect(String location) throws IOException

普通

页面跳转


设置刷新头信息

客户端在进行请求的时候会发送许多额外的信息,那么这些就是头信息,服务器端也可以根据需要向客户端设置头信息,在所有的头信息的设置中,定时刷新页面的头信息使用的是最多的,直接使用setHeader()方法,将头信息名称设置为refresh,同时指定刷新的时间。 

<%@  page language="java" contentType="text/html; charset=utf8" pageEncoding="utf8"  %><%! int count=0; %><% response.setHeader("refresh", "2"); %>visit time:<%=count++ %>

<%@ page language="java" contentType="text/html;charset=utf8"  pageEncoding="utf8"%><% response.sendHeader("refresh","2;URL="hello.jsp") %>


页面跳转

在JSP中除了可以通过头信息的方式完成跳转,也可以使用response对象的sendRedirect()方法直接完成页面的跳转。 

两种跳转的区别

  1. <jsp:forward>属于服务器端跳转,跳转之后地址栏的信息并不会有任何的改变,而response.sendRedirect()属于客户端跳转,跳转之后地址栏是会改变的,变为跳转之后的页面地址。
  2. 在使用request范围属性的时候,只有是服务器端跳转才能够将request属性保存到跳转页,而如果是客户端跳转,则无法进行属性的传递。
  3. 如果使用的是服务器端跳转的话,则执行到跳转语句之后会立刻进行跳转,如果使用的是客户端跳转,则是在整个页面执行完之后才执行跳转。
操作Cookie

  1. Cookie是浏览器所提供的一种技术,这种技术让服务器端的程序能将一些只须保存在客户端,或者在客户端进行处理的数据,放在使用中本身的计算机,不须通过网络的传输,因而提高网页处理的效率,而且也能够减少服务器端的负载。但是由于Cookie是服务器端保存在客户端的信息,所以其安全性也是很差的。
  2. 在JSP中专门提供了javax.servlet.http.Cookie的操作类
Cookie定义的常用操作方法


方法

类型

描述

1

public Cookie(String name,String value)

构造

实例化Cookie对象,同时设置名字和内容

2

public String getName()

普通

取得Cookie的名字

3

public String getValue()

普通

取得Cookie的内容

4

public void setMaxAge(int expiry)

普通

设置Cookie的保存时间,以秒为单位


设置Cookie
所有的Cookie是由服务器端设置到客户端上去的,所以要向客户端增加Cookie的话,必须使用response对象的以下方法:
public void addCookie(Cookie cookie) 

设置cookie
/*setCookie.jsp*/<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%><% Cookie cookie=new Cookie("name","zhang");response.addCookie(cookie); %> <jsp:forward page="getCookie.jsp"></jsp:forward>

获取cookie
/*getCookie.jsp*/<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %><% Cookie[] cookies=request.getCookies();for(int i=0;i<cookies.length;i++){ %>name=<%=cookies[i].getValue() %><% }%>
response表示的是服务器端对客户端的回应
可以通过setHeader()方法设置一个响应的头信息
通过response可以向客户端设置cookie,通过request可以取得客户端设置的全部Cookie
response对象属于的sendRedirect()方法属于客户端跳转,而<jsp:forward>属于服务器端跳转





0 0
原创粉丝点击