文档章节

jsp---->response

小强斋太
 小强斋太
发布于 2016/11/09 20:07
字数 662
阅读 7
收藏 0

response 对象:服务器端回应客户端的请求
 所属的接口:javax.servlet.http.HttpServletResponse

response 的主要功能:
 1、设置头信息:
 最有用的一个头信息:refresh:刷新
 response.setHeader("头信息内容","头信息参数") ;
 response.setHeader("refresh","2;URL=页面名称") ;

<%!
 // 此处为全局变量,初始化一次
 int i = 0 ;
 %>
 <%
 // 一秒种刷新一次,每次使i 自增
 response.setHeader("refresh","1") ;
 %>
 <h1><%=i++%></h1>

setHeader 可以实现跳转功能两秒种跳转到 responseDemo02.jsp 页面上
 response.setHeader("refresh","2;URL=页面名称") ;
 

2、response 进行跳转—— 重定向
 

response.sendRedirect(跳转路径) ;此语句执行之后,页面地址也变为跳转后的地址
 
面试中较为常见的问题:两种跳转的区别
 1、<jsp:forward page=""/>
 · 地址栏不改变跳转—— 服务器端跳转
 · 执行到跳转语句后无条件立刻跳转—— 之后的代码不再被执行
 · 注意:如果使用forward 跳转,则一定要在跳转之前释放掉全部的资源
 · 使用 forward 时,request 设置的属性依然能保留在下一个页面(setAttribute)
 · 通过<jsp:param name="" value=""/>传递参数
 2、response.sendRedirect("地址") ;
 · 地址栏改变跳转—— 客户端跳转
 · 所有代码执行完毕之后再跳转
 · 不能保存 request 属性—— 地址改变了,客户端跳转
 · 通过对 URL 地址的重写传递参数
 使用客户端跳转,可以通过重写 URL 的方式将内容传递过去
 
responsedemo3.jsp

<%@page contentType="text/html;charset=gb2312"%>
 <h1>欢迎光临:responseDemo03.jsp</h1>
 <%
  System.out.println("** 跳转之前...") ;
 %>
 <%
  // 进行跳转
  response.sendRedirect("responseDemo04.jsp?id=mldn") ;
 %>
 <!--jsp:forward page="responseDemo04.jsp"/-->
 <%
  System.out.println("** 跳转之后...") ;
 %>

responsedemo4.jsp

<%@page contentType="text/html;charset=gb2312"%>
 <h1>欢迎光临:responseDemo04.jsp</h1>
 <h1>Hello :<%=request.getParameter("id")%></h1>

3、设置Cookie

Cookie 是服务器端保存在客户端的一组资源
 登陆时会问你是否记住密码?或 XX 长的时间不用再登陆,此种功能的实现就是通过 Cookie
 public void addCookie(Cookie cookie)
 Cookie 是通过服务器端设置到客户端上去的—— response
 如果要在服务器端取得 Cookie —— request对象中有public Cookie[] getCookies()方法,在使用 request 对象取得全部Cookie 时,会出现以下的信息

JSESSIONID --> DBB82481EDA4FFBB3BB4A9EABE9CB450

 Cookie 可以设置最大保留时间—— setMaxAge
cookiedemo1.jsp

<%
  Cookie c1 = new Cookie("name","mldn") ;
  Cookie c2 = new Cookie("password","LXH") ;
 
 // 保存时间为60秒
  c1.setMaxAge(60) ;
  c2.setMaxAge(60) ;
 %>
 <%
  // 通过response对象将Cookie设置到客户端
  response.addCookie(c1) ;
  response.addCookie(c2) ;
 %>

cookiedemo2.jsp

<%
  // 通过request对象,取得客户端设置的全部Cookie
  // 实际上客户端的Cookie是通过HTTP头信息发送到服务器端上的
  Cookie c[] = request.getCookies() ;
 %>
 <%
  for(int i=0;i<c.length;i++)
  {
   Cookie temp = c[i] ;
 %>
   <h1><%=temp.getName()%> --> <%=temp.getValue()%></h1>
 <%
  }
 %>


 

 

本文转载自:http://www.cnblogs.com/xqzt/archive/2012/08/17/5637258.html

共有 人打赏支持
小强斋太
粉丝 0
博文 181
码字总数 0
作品 0
广州
私信 提问
过滤器(Fileter)执行流程

Servlet过滤器的概念: Servlet过滤器是在 java Servlet 2.3 中定义的,它能够对Servlet容器中的请求和响应对象,进行检查和修改 Servlet过滤器并不会生成request和response对象,它只起到过...

狼行-狼行
2013/11/22
0
0
访问WEB-INF目录中的JSP文件

方法1: 本来WEB-INF中的jsp就是无法通过地址栏访问的.所以安全.如果说你要访问这个文件夹中的jsp文件需要在项目的web.xml文件中去配置servlet格式差不多的配置就ok了。如下: [html] view p...

moz1q1
2015/03/31
0
0
如何针对servlet写测试用例-包括jsp请求等

通过ServletUnit,可以写测试用例。 具体用法如下: As a testing tool, HttpUnit is primarily designed for "black-box" testing of web sites. In many cases that may be all you need; ......

毛朱
2012/11/30
0
0
Servlet继承关系和生命周期

1、Servlet的继承关系 假如现有我们自定义的一个Servlet,继承HttpServlet,那么实际上它的继承链如下图: 可以看到,核心的部分在于: 两个顶级接口 Servlet ServletConfig 接口的实现类 Ge...

architect刘源源
09/10
0
0
java.lang.IllegalStateException异常产生的原因及解决办法

java.lang.IllegalStateException异常产生的原因及解决办法 错误类型大致为以下几种: java.lang.IllegalStateException:Cannot forward a response that is already committed IllegalStat......

guhai2004
2013/12/24
0
1

没有更多内容

加载失败,请刷新页面

加载更多

Node 框架接入 ELK 实践总结

我们都有过上机器查日志的经历,当集群数量增多的时候,这种原始的操作带来的低效率不仅给我们定位现网问题带来极大的挑战,同时,我们也无法对我们服务框架的各项指标进行有效的量化诊断,更...

嫣然丫丫丫
30分钟前
1
0
PostgreSQL 调用 Rust 函数内存耗用研究

开始看 PostgreSQL 的文档,以为对于那些 .so 形式的二进制扩展函数,比如用 C 语言编写的、Rust 编写的等,PG 会把它们装载到每个连接的内存里去。 因为 Rust 现在编译出来的二进制文件还比...

helloclia
31分钟前
2
0
HTTP Authorization Base64 验证

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.nio.charset.Charset;import java.util.B......

laolin23
31分钟前
1
0
Spring Cloud Finchley.SR1 的学习与应用 7 - 服务容错保护 Hystrix

Hystrix 分布式系统中经常会出现某个基础服务不可用造成整个系统不可用的情况,这种现象被称为服务雪崩效应。为了应对服务雪崩,一种常见的做法是手动服务降级。而 Hystrix 的出现,给我们提...

张shieppp
35分钟前
2
0
PHP利用多进程处理任务(一篇写得比较容易理解的多进程文章)

 PHP多进程一般应用在PHP_CLI命令行中执行php脚本,不要在web访问时使用。   多进程处理分解任务一般要比单进程更快。 php查看是否安装多进程模块: php -m | grep pcntl (pcntl是proce...

hansonwong
35分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部