`

jsp--------response

阅读更多
response表示服务器端对客户端的一种回应.------是HttpServletResponse接口的实现

1.最常用的三种操作:
设置头信息,跳转,Cookie

public void setHeader(String name,String value); //设置头信息
public void sendRedirect(String location)   //跳转,由一个页面跳转到另一个页面
public void addCookie(Cookie cookie);    //向客户端加入cookie

public void setContentType(String type); //设置内容的返回类型(所谓返回是指服务器端返回给客户端)


1.1 什么是头信息?
头信息就是随着具体的内容一起提交到服务器端,或者从服务器端随着内容一起提交到客户端,对内容进行补充说明的东西。。。

当然在JSP中可以通过request对象取得全部头信息,HTTPServletRequest中定义了一个可以得到取得头信息的方法
getHeaderNames(); //得到全部头信息名字
getHeader(String name);取得头信息的内容

最有用的头信息就是定时刷新,如果要想完成定时刷新,则头信息名称为refresh

<%@ page contentType="text/html;charset=GBK"%>
<%!    //注意:这里一定要加!,因为如果不加的话,是局部变量,每次都重新声明
   int temp = 0;
%>
<%
   response.setHeader("refresh",“1”); //告诉浏览器,每隔一秒刷新一次
%>
<h1><%=temp++%><h1>

一般刷新的频率是2秒一刷新

定时刷新也可以完成跳转功能
<%
   response.setHeader("refresh","2;URI=ResponseDemo01.jsp");
%>

<h2>本页面2秒后跳转到首页</h2>
<h2>如果没有跳转,请按<a href="ResponseDemo01.jsp">这里</a></h2>

<%
   response.setHeader("refresh","2;URI=ResponseDemo01.jsp");
%>
这句话我们还可以换成另外一句话
<META HTTP-EQUIV="refresh" CONTENT="2;URL=aa.jsp">

为什么要写这样的东西呢,因为这是为了防止用户回退或者刷新,使得自动跳转没了,所以我们经常有这样的需求需要手动跳转

注意:HTTP-EQUIV类似于Http的头部协议的名,CONTENT是头信息的值
<Meta http-equiv="Content-Type" Content="text/html;Charset=gbk" />
<Meta http-equiv="Expires" Content="Wed,26 Feb 1997 08:21:57 GMT" />

pragma----编译指示
<Meta http-equiv="Pragma" Content="No-cach" />
注意:网页不保存在缓存中,每次访问都刷新页面,这样设定,访问者无法脱机浏览   
main.jsp
<%
  response.sendRedirect("aa.jsp?ref=helloworld");
%>
aa.jsp
<%=request.getParameter("ref")%>

注意:这是可以拿到值的。。。区别于setAttribute(),因为参数是随着链接传递的,当然可以获得,他没有捆绑在某个request中,而是随着链接一起跑


注意:两种跳转
1。服务器端跳转 <jsp:forward />
2.客户端跳转: response.sendRedirect() 等效于
 response.setHeader("refresh","0;URL=XXX.jsp");
等效于<meta http-equiv="refresh" Content="2;URL=XXX" />
response跳转的特点:
 所有页面的代码执行完成之后,然后发给客户端,然后跳转

forward:是无条件的跳转,也就是他下面的语句是不会被执行的,执行到<jsp:forward/>后就直接跳转了

经过比较之后,可以这样总结:
   1.如果现在一个页面中使用了JDBC,则应该在forward跳转之前关闭数据库连接,而使用response 则可以在任意位置处关闭


3。 Cookie的基本使用
服务器端保存在客户端的一组数据。
由于Cookie保存在了客户端,所以安全性差。
javax.servlet.http.Cookie

Cookie类中实现了Cloneable接口,可以被克隆啊
方法                                                                
public Cookie(String name,String value)      
public String getName();
public void setValue(String value) ;//修改内容
public void setMaxAge(int expiry); //Cookie的最大保存时间

下面看使用:
<%
   //准备好两个Cookie
   Cookie c1 = new Cookie("username","zwz");
   Cookie c2 = new Cookie("password","www.mldn.java.cn");
  
   //通过response 设置到客户端上去
   response.addCookies(c1);
   response.addCookies(c2);
%>

如果想要取得Cookie,那么肯定使用request, 因为我们总是编写服务器端程序,那么我们取得的Cookie一定是客户端发送过来的,那么客户端怎么发我们局不用管了

<%
   Cookie[] c = request.getCookies();
   for(int i=0;i<c.length;i++){
%>
   <h3><%=c[i].getName()%>---><%=c[i].getValue()%></h3>
<%
   }
%>
注意:服务器端会自动生成一个Cookie,
比如:Tomcat会生成名叫 JSessionId的Cookie, Session表示一个普通用户的会话,这个东西是用来区分不同的用户的


3.1深入研究
既然Cooie是保存在客户端上的一组信息,那么就意味着,浏览器关闭之后依然可以取得Cookie,但是发现错误出现的地方时没有取得客户端设置的Cookie,因为一个Cookie在默认情况下只能保存在当前所打开的浏览器之中。而如果现在希望真正保存在本地的话,则必须将其保存时间进行设置

setMaxAge(int expire)
下面例子:
<%
   //准备好两个Cookie
   Cookie c1 = new Cookie("username","zwz");
   Cookie c2 = new Cookie("password","www.mldn.java.cn");
  
   //设置Cookie的保存时间
   c1.setMaxAge(20); //20秒
   c2.setMaxAge(60); 

   //通过response 设置到客户端上去
   response.addCookies(c1);
   response.addCookies(c2);
%>

由此可知:服务器端自动生成的那个Cookie只能用于一次会话,似乎我们没法设置它的时间什么的

分享到:
评论

相关推荐

    实例详解JSP内置对象--response对象

    在用java做基于Web的开发时,不可避免的需要和request&response这两个对象打交道,因此,对它们的学习和掌握就显得至关重要。

    Servlet与JSP核心编程第二版.pdf

    06-Response-Headers-Chinese.pdf 07-Cookies-Chinese.pdf 08-Session-Tracking-Chinese.pdf 09-JSP-Intro-Chinese.pdf 10-JSP-Scripting-Elements-Chinese.pdf 11-page-Directive-Chinese.pdf 12-File-Inclusion-...

    JavaWeb新版教程. jsp--out和response输出的区别.avi

    JavaWeb新版教程. jsp--out和response输出的区别.avi

    jsp response.sendRedirect不跳转的原因分析及解决.docx

    jsp response.sendRedirect不跳转的原因分析及解决.docx

    JSP request&response;&out;.ppt

    什么是JSP的内置对象 JSP的内置对象有哪些? request对象 与 response对象 session对象 application对象 out对象

    Jsp利用response.sendRedirect、cookie传参

    Jsp利用response.sendRedirect、cookie传参

    基于JAVAJSP的网上书店系统.

    2-3-2 request、out & response——与访问者的交互 2-3-3 session——保持访问者的会话状态 2-3-4 JSP其它基本内置对象 2-4 用JSP开发Web应用的几种主要方式 2-4-1 直接使用JSP 2-4-2 JSP + JavaBeans ...........

    javaweb开发JSP资料大全

    JSP安全编程实例浅析、JSP编程进度条设计实例、JSP的运行内幕、JSP和IIS的最佳解决方案实例分析...-response对象和application对象、JSP连接各类数据库大全(上)、JSP内置对象、JSP技巧发送动态图像、jsp计数器制作手册

    JavaWeb02-request与response.rar

    JSP+servlet+javabean学习 里面有PDF文件对该章节的详细讲解,培训老师才讲的到的,非常详细......资源内容如下: JavaWeb02-request与response.rar JavaWeb03-会话跟踪cookie与session.rar JavaWeb04-内置对象与...

    javaBean和JSP标准动作.rar

    request response out ---- 输入输出对象 pageContext session application ---- 应用作用域对象 page config ---- Servlet对象 exception ---- 异常处理对象 了解区分并使用隐式对象 JSP强有力的一个方面...

    response jsp 中的重要知识点

    response jsp 中的重要知识点

    jsp Response对象页面重定向、时间的动态显示.docx

    jsp Response对象页面重定向、时间的动态显示.docx

    JSP程序设计实用教程-源码

     第三节 response对象  第四节 session对象  第五节 application对象  第六节 out对象  第七节 exception对象  实训  习题  第四章ccjsp中使用数据库  第一节 jdbc技术的工作原理  第二节 jdbc四种...

    JSP的response对象的实例详解

    JSP的response对象的实例详解 一 response对象 response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。response对象具有页面作用域,即访问一个页面时,该页面内...

    JSP2.0技术手册pdf(带示例源码).zip

    11-5 ServletRequest 和 ServletResponse 之 Wrapper 类 11-6 使用 Filter 来解决中文问题 11-7 Listener 接口简介 11-8 ServletContext Listener 11-9 HttpSession Listener 11-10 ServletRequest Listener 第十二...

    WEB17Project-jsp.rar 源代码

    contentType:response.setContentType(text/html;charset=UTF-8) session:是否jsp在翻译时自动创建session import:导入java的包 errorPage:当当前页面出错后跳转到哪个页面 isErrorPage:当前页面是一个处理错误...

    JAVAJsp的网上书店系统

    2-3-2 request、out & response——与访问者的交互 2-3-3 session——保持访问者的会话状态 2-3-4 JSP其它基本内置对象 2-4 用JSP开发Web应用的几种主要方式 2-4-1 直接使用JSP 2-4-2 JSP + JavaBeans 2-4-3 ...

    a1_response3.jsp

    a1_response3.jsp

    jsp response.sendRedirect()用法详解.docx

    jsp response.sendRedirect()用法详解.docx

Global site tag (gtag.js) - Google Analytics