response(设置头信息、跳转、Cookie)

来源:互联网 发布:js控制audio播放 编辑:程序博客网 时间:2024/05/16 06:17
 

response的主要作用:设置头信息、跳转、Cookie

Response表示服务器对客户端的回应,response本身是HttpServletResponse的对象。HttpServletResponse本身也是ServletResponse的子接口,这点与request对象非常相似。

Response方法中的最主要作用:设置头信息、跳转、Cookie

NO

方法

描述

1

Public void setHeader(String name,String value)

设置头信息名字和内容

2

Public void sendRedirect(String location)throws IOException

跳转,由一个页面跳转到另一个页面

3

Public void addCookic(Cookie cookie)

向客户端加入Cookie

4

Public void setContentType(String type)

设置内容的返回类型

 

 

 

两种跳转的区别:

·服务器的跳转<jsp:forward>

·客户端跳转:response.sendRedirect()、response.setHead("refresh","2",URL="XX.jsp")

Response的跳转特点:等页面中所有内容执行完毕后才跳转。但是不能传递request范围的属性。

Forward属于无条件跳转,只要执行到此语句,就马上跳转。但是可以传递request属性。

经过比较后,可以总结出以下的一个应用问题:

·如果现在一个页面中使用了JDBC,则应该在forward跳转之前关闭数据库连接,而使用response则可以在任意的位置关闭。

 

 

Cookie是服务器端保存在客户端的一组数据。

主要方法有:

NO

方法

描述

1

Public Cookie(String name,String value)

实例化Cookie对象

2

Public String getName()

获取Cookie

3

Public void setValue(String newValue)

修改Cookie

4

Public void setMaxAge(int expiry)

设置Cookie的最大保存时间

 

如果想设置Cookie,则肯定使用response对象


。范例:向客户端增加Cookie

<%@ page contentType="text/html;charset=GBK"%>

<%

    // 准备好了两个Cookie

    Cookie c1 = new Cookie("username","LXH") ;

    Cookie c2 = new Cookie("userpass","www.mldnjava.cn") ;

    // 通过response设置到客户端上去

    response.addCookie(c1) ;

    response.addCookie(c2) ;

%>

 

 

如果想获取Cookie,则必须依靠request传递,客户端在每一次提交是时候都会将Cookie作为头信息一次性提交过去,使用request.getCookie()方法进行获取

<%@ page contentType="text/html;charset=GBK"%>

<%

    // 取得全部设置的Cookie对象

    Cookie c[] = request.getCookies() ;

    System.out.println(c) ;

    for(int i=0;i<c.length;i++){

%>

        <h3><%=c[i].getName()%> --> <%=c[i].getValue()%></h3>

<%

    }

%>

 

运行得到:

username --> LXH

userpass --> www.mldnjava.cn

JSESSIONID --> D1D63E6D46280B8784E2C8FB08853529

其中JSESSIONID是服务器自己设置上到客户端上的。

 

既然Cookie是保存在客户端上的一组信息,一个Cookie默认的情况下只能保存在当前打开的浏览器中,而如果希望让其真正的保存在本地的话,则必须将其保存时间进行设置。

<%@ page contentType="text/html;charset=GBK"%>

<%

    // 准备好了两个Cookie

    Cookie c1 = new Cookie("username","LXH") ;

    Cookie c2 = new Cookie("userpass","www.mldnjava.cn") ;

    // 设置Cookie的保存时间

    c1.setMaxAge(20) ;

    c2.setMaxAge(60) ;

    // 通过response设置到客户端上去

    response.addCookie(c1) ;

    response.addCookie(c2) ;

%>