response代表服务器对客户端的响应。大部分时候,程序无须使用response来响应客户端请求,因为有个更简单的响应对象-out。它是页面输出流,是JstWriter的实例。JspWriter是Writer的子类,Writer是字符流,无法输出非字符内容-即无法输出字节流。

假如需要在JSP页面中动态生成一幅位图,使用out作为响应将无法完成,此时必须使用response作为响应输出。

1.response响应生成图片

image.jsp在客户端生成一张图片。其源代码如下:

<%@ page import="java.awt.image.*, javax.imageio.*, java.io.*, java.awt.*"  %>
<%
//创建BufferedImage对象
BufferedImage image=new BufferedImage(400,400,BufferedImage.TYPE_INT_RGB);
//以Image对象获取Graphics对象
Graphics g=image.getGraphics();
//使用Graphics画图,所画的图像将会出现在image对象中
g.fillRect(0,0,400,400);
//设置颜色:红
g.setColor(new Color(255,0,0));
//画出一段弧
g.fillArc(20,20,100,100,30,120);
//设置颜色绿
g.setColor(new Color(0,255,0));
g.fillArc(20,20,100,100,150,120);
//设置颜色蓝
g.setColor(new Color(0,0,255));
g.fillArc(20,20,100,100,270,120);
//设置颜色黑
g.setColor(new Color(0,0,0));
//画出3个字符串
g.drawString("red:climb",300,80);
g.drawString("green:swim",300,120);
g.drawString("blue:jump",300,160);
g.dispose();
//将图像输出到页面响应
ImageIO.write(image,"bmp",response.getOutputStream());
%>

在页面image2.jsp中显示image.jsp生成的图片。image2.jsp的源代码如下:

<%@ page contentType="text/html; charset=gb2312" language="java"  %>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”>
<HTML>
<BODY>
<img src="data:image.jsp">
<BODY>
<HTML>

其运行结果截图如下:

2.重定向

重定向是response的另外一个用处,与forward不同的是,重定向会丢失所有的请求参数及请求属性。

3.增加cookie

Cookie通常用于网站记录客户的某些信息,比如客户的用户名及客户的喜好等。
Cookie与session的不同之处在于:session关闭浏览器后就失效,但Cookie会一直存放在客户端机器上,直到超出Cookie的生命期限。
response提供了一个方法增加cookie:
void addCookie(Cookie cookie)
增加cookie的步骤如下:
(1)创建cookie实例;
(2)设置cookie的生命期限;
(3)向客户端写cookie。
页面AddCookie.jsp向客户端写一个username的cookie。其代码如下:

<%@ page contentType="text/html; charset=gb2312" language="java"  %>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”>
<HTML>
<BODY>
<%
//获取请求参数
String name=request.getParameter("name");
//以获取到的请求参数为值,创建一个cookie对象
Cookie c=new Cookie("username",name);
//设置cookie对象的生存期限为60s
c.setMaxAge(60);
//向客户端增加cookie对象
response.addCookie(c);
%>
<BODY>
<HTML>

如果浏览器没有阻止cookie,在地址栏输入http://localhost:8080/Me/AddCookie.jsp?name=christy ,执行该页面后,网站已经将客户端的username的cookie写入客户端机器。

通过request对象的getCookies()方法来访问Cookie,该方法将返回Cookie的数组,遍历数组的每个元素,找出希望访问的Cookie即可。页面GetCookie.jsp负责访问Cookie,其源代码如下:

<%@ page contentType="text/html; charset=gb2312" language="java"  %>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”>
<HTML>
<BODY>
<%
//获取本站在客户端上保留的所有Cookie
Cookie[] cookies=request.getCookies();
//遍历客户端上的每个Cookie
for(Cookie c:cookies)
{//如果Cookie的名为username,表明该Cookie是我们需要访问的Cookieif(c.getName().equals("username"))out.println(c.getValue());
}
%>
<BODY>
<HTML>

运行页面AddCookie.jsp之后60s内运行GetCookie.jsp,可以得到刚才在客户端写入的cookie。结果如下:

JSP的9个内置对象-response相关推荐

  1. JSP的9个内置对象(隐含对象)

    JSP的9个内置对象(隐含对象) JSP内置对象是指在JSP页面系统中已经默认内置的Java对象,这些对象不需要开发人员声明即可使用. 9个内置对象如下: page:代表当前JSP页面 request ...

  2. JSP的概念||原理||JSP的脚本||JSP的内置对象||response.getWriter()和out.write()的区别||案例:改造Cookie案例

    1. 概念 * Java Server Pages: java服务器端页面         * 可以理解为:一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码         * ...

  3. jsp的9个内置对象

    Jsp提供了request.response.session.application.out.page.config.exception.pageContext9个内置对象.1. Request Re ...

  4. JSP的9个内置对象-application

    JSP页面中包含9个内置对象,这9个内置对象都是Servlet API的类或者接口的实例,只是JSP规范将它们完成了默认初始化,即它们已经是对象,可以直接使用. application:javax.s ...

  5. Java Web学习总结(16)——JSP的九个内置对象

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

  6. JSP页面元素,内置对象及request详解

    JSP的页面元素: a. 脚本Scriptlet 1.<% 局部变量,Java语句 %> 2.<%! 全局变量,定义方法 %> 3.<%= 输出表达式 %> 一般而 ...

  7. JSP内置对象-response

    response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端.response对象也具有作用域,它只在JSP页面内有效.

  8. jsp内置对象--response

    response:响应对象 提供的方法:void addcookie(Cookie cookie);服务端向客户端增加一个cookie对象 void sendRedirect(String locat ...

  9. jsp内置对象*response

    response对象 基本概念: 包含了响应客户请求的有关信息.它是HttpServletResponse类的实例. response对象具有页面作用域,即访问一个页面时,该页面内的response对 ...

最新文章

  1. dotnet文件操作
  2. 网站SEO优化之如何发布外链
  3. 如何快速完成整理笔记?
  4. React开发(185):ant design table控制居中和宽度
  5. 一加Nord或在国内上市:骁龙765G+90Hz双孔OLED屏
  6. OpenJS 基金会推出 Node.js 证书,JS 开发者可以“考证”了
  7. shell(九)几个字符转换命令
  8. Windows Tips
  9. linux硬盘格式哪个好,linux使用哪种硬盘分区格式会比较好
  10. linux mkdir基础命令总结
  11. Word 中几个较有用的宏
  12. Core、处理器(CPU)核、处理器(CPU)、处理器(CPU)架构、微结构、指令集、指令集架构、ARMv7 内核架构
  13. MyBatis注册映射文件(resource、class、package 三者区别)
  14. python scratch unity_极客晨星:少儿编程热门语言,除了Scratch还有哪些
  15. CSAPP第89章家庭作业(部分)
  16. DP-LeetCode714. 买卖股票的最佳时机含手续费
  17. git登陆用户的配置
  18. 江苏大学和南京工业大学计算机哪个好,江苏大学和浙江大学,哪个好?
  19. 10-3 B1-5查询客户的订单情况
  20. 全国职业技能计算机考试教案,内江职业技术学院2017年中职类—信息技术二类技能测试大纲...

热门文章

  1. mysql加锁后怎么解除_Mysql查看死锁与解除死锁的深入讲解
  2. Web前端期末大作业-响应式唯美婚庆公司网站网页设计(HTML+CSS+JavaScript)
  3. java周期_java 周期时期计算
  4. Jsoup从元素中抽取属性 文本和HTML
  5. r语言如何读取matlab数据类型,[转载]R语言数据类型解析[转]
  6. python基础入门(5)之运算符
  7. ios android 字体颜色,iOS-修改导航栏文字字体和颜色
  8. android notification自动消失,Notification点击事件和点击消失
  9. 令xtu3service开机时立即启动_Mac开机时可以使用的快捷键 苹果电脑快捷键使用介绍...
  10. java 连接mysql工具类_java连接Mysql数据库的工具类