现在的位置: 首页 > 综合 > 正文

对response对象的认知

2013年12月03日 ⁄ 综合 ⁄ 共 3193字 ⁄ 字号 评论关闭

总结一下response 对象的有三个作用:设置头信息,客户端跳转,cookie操作

一:设置头信息

       头信息是指随着具体的内容一起提交到服务器端,或者从服务器端随着内容一起发送到客户端。在JSP中可以通过request对象,取得全部的头信息:

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

       <%@ page import="java.util.*"%>

       <%

                        Enumeration enu = request.getHeaderNames();

                        while(enu.hasMoreElements()){

                                   String name = (String) enu.nextElement();

       %>

                                     <h3><%=name%>--------<%=request.getHeader(name)%></h3>

       <%

                           }

        %>

        当然 用户可以自己定制头信息,最为常用的一个就是定时刷新。

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

        <%!

                         int temp = 0;

         %>

          <%

                        //设置每隔两秒刷新一次

                         response.setHeader("refresh","1");

           %>

          <h1><%=temp++%></h1>

         定时刷新经过适当的设置,可以完成定时跳转功能,可以让一个页面经过多少秒之后跳转到其他的页面。

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

        <%

                   response.setHeader("refresh","2,URL=demo02.jsp")

       %>

        <h2>本页面2秒后跳回首页!</h2>

        <h2>如果没有跳转,请按<a href="demo02.jsp">这里</a></h2>

                注意HTTP本身也提供了这样的跳转操作,可以通过头信息的方式设置完成。

                <META HTTP-EQUIV="refresh" CONTENT="2;URL=index.jsp">

               <h2>本页面2秒后跳回首页!</h2>

                <h2>如果没有跳转,请按<a href="demo02.jsp">这里</a></h2>

二:客户端跳转

            在response对象中提供了专门的跳转执行,使用reponse.sendRedirect("hello.jsp?ref1=hell0")就可以完成。

             两种跳转的区别:

                    服务器端跳转:<jsp:forward page="">

                    客户端跳转:response.sendRedirect()  set Header();

                    总结:<jsp:forward page="">属于无条件跳转,只要执行到此语句之后则立刻进行跳转,它是可以传递request属性的,(对于一些资源必须在jsp:forward之前关闭)reponse跳转的特点:所有页面执行完后再进行跳转,是不能够传递request范围的属性(在本页面的任何地方都可关闭)。

三:Cookie操作

                     cookie属于一个单独的类,此类定义在:javax.servlet.http.*;

                      客户端在每次提交的时候都会将Cookie作为头信息一次行的提交过去,所以使用request的:

                      cookie.jsp

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

                                  <%

                                                      Cookie c1 = new Cookie("userName","zhanqiong");

                                                      Cookie c2 = new Cookie("password","123");

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

                                                     response.addCookie(c1);

                                                     response.addCookie(c2);

                                  %>

                       demo1.jsp

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

                                    <%

                                                     Cookie []c = request.getCookies();

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

                                     %>

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

                                     <%

                                                      }    

                                       %>

                                      为了安全行的考虑,当浏览器关闭后,该cookie信息是要取消的。有时为了需要设置cookie的保存日期setMaxAge(200);

                                    cookie一般保存在:c:\Documents and Settings\Administator\Cookies

抱歉!评论已关闭.