JSP的9个内置对象-response

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="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。结果如下:




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570586.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JSP的9个内置对象-session

session代表一次用户会话&#xff0c;其含义是&#xff1a;从客户端浏览器连接服务器开始&#xff0c;到客户端浏览器与服务器断开为止&#xff0c;这个过程就是一次会话。 session通常用于跟踪用户的会话信息&#xff0c;如判断用户是否登录系统&#xff0c;或者在购物车应用中…

JavaScript-Tool:jquery.qrcode.js

ylbtech-JavaScript-Tool&#xff1a;jquery.qrcode.js1.返回顶部 1、插件描述&#xff1a;jquery.qrcode.js 是一个能够在客户端生成矩阵二维码QRCode 的jquery插件 &#xff0c;使用它可以很方便的在页面上生成二维条码。如何使用它 将jquery.qrcode.min.js和jquery添加到您的…

通通玩blend美工(8)——动态绘制路径动画,画出个萌妹子~

通通玩blend美工&#xff08;8&#xff09;——动态绘制路径动画&#xff0c;画出个萌妹子~ 原文:通通玩blend美工&#xff08;8&#xff09;——动态绘制路径动画&#xff0c;画出个萌妹子~2年前我在玩Flex的时候就一直有一个疑问&#xff0c;就是如何来实现一个蚊香慢慢烧完的…

HTML 超链接

1.如何创建html超链接 <html> <body> <p> <a href"http://www.baidu.com" > website link</a> </p></body> </html>点击后跳转到baidu主页 2.超链接的title属性 <html> <body> <p> <a href&q…

用户注册信息实例

index.jsp用来接收用户输入的表单&#xff0c;其代码如下&#xff1a; <html> <body><form action"result.jsp" method"post"> 用户名&#xff1a;<input type"text" name"username"><br> 密码&#xf…

JSP调用request方法获取请求相关信息

index.jsp&#xff1a; <html> <body bgcolor"#FFFFF0"> 请求方式&#xff1a;<%request.getMethod() %><br> 请求的资源&#xff1a;<%request.getRequestURI() %><br> 请求用的协议&#xff1a;<%request.getProtocol() %&…

JSP实例-定时刷新页面

<html> <body> now the time is:<br> <% out.println(""new Date().toLocaleString()); //response对象中添加一个响应头&#xff0c;页面每20秒刷新一次 response.setHeader("Refresh","20");%> </body> </ht…

codeforces 540D Bad Luck Island (概率DP)

题意&#xff1a;会出石头、剪刀、布的人分别有r,s,p个&#xff0c;他们相互碰到的概率相同&#xff0c;输的人死掉&#xff0c;问最终活下去的人是三种类型的概率 设状态dp(i,j,k)为还有i个石头&#xff0c;j个剪刀&#xff0c;k个布时的概率&#xff0c;dp(r,s,p)1.0 状态转移…

jsp示例-response页面重定向

用户输入用户名和密码&#xff0c;如果用户名和密码分别是admin 和123&#xff0c;就重定向到success.jsp页面&#xff0c;否则重定向到登录页面。 index.jsp&#xff1a; <html> <body> 登录<br> <form action"next.jsp" method"post&qu…

day_01 解析简单的程序

就以上一节FirstProgram为例&#xff0c;请看下图&#xff1a;01、AndroidManifest.xml是整个项目的配置文件&#xff0c;非常重要&#xff0c;每个应用程序里必须存在的xml文件&#xff0c;且名字不可以改变&#xff0c;四大组件的使用必须在此处声明注册才可使用&#xff0c;…

时区与程序设计

时区的定义 我们使用经纬度[1]来标识地球上的任意一个点。 理论时区 不像纬度有赤道作为自然的起点&#xff0c;经度没有自然的起点而使用经过伦敦格林尼治天文台旧址的子午线作为起点。 理论时区的宽度是15&#xff0c;所以一共有 360 / 15 24 个时区&#xff0c;一天有 24 小…

JSP实例-彩色验证码

image.java用于产生彩色验证码&#xff0c;其代码如下&#xff1a; package test; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.OutputStream; import java.ut…

P1678 烦恼的高考志愿

题目背景 计算机竞赛小组的神牛V神终于结束了万恶的高考&#xff0c;然而作为班长的他还不能闲下来&#xff0c;班主任老t给了他一个艰巨的任务&#xff1a;帮同学找出最合理的大学填报方案。可是v神太忙了&#xff0c;身后还有一群小姑娘等着和他约会&#xff0c;于是他想到了…

Java代码实现Fibonacci数列

Fibonacci数列 1.定义&#xff1a; 0, 1, 1, 2, 3, 5, 8, 13, 21, . . .; f0 0, f1 1, fn fn−1 fn−2 for n ≥ 2. 2.两种实现算法&#xff1a; 2.1递归&#xff08;recursive&#xff09; T(n)>2n/2证明: T(n)T(n−1)T(n−2)>2T(n−2)>22T(n−4)>...>2n/2T…

套路:想戒手机?试试把屏幕变灰

简评&#xff1a;园长试过了&#xff0c;瞬间不想再看手机&#xff0c;一股浓浓的性冷淡&#xff08;无能&#xff09;风&#xff0c;此时我只想去拥抱真实的世界。 我代表原作者。 我的手机已经变灰了&#xff0c;感觉很不错&#xff0c;不再沉迷。 为了戒掉手机瘾&#xff0c…

判断一个数是否存在于一个非递减的有序数列中 算法(Ordered Search Problem)

1. Description Given a list of nnumbers in non-decreasing order A{a1,a2,⋯,an}such that a1≤a2≤⋯≤anand a number x, the objective is to determine if xis present in the list A2. Algorithm Algorithm 1. Linear Search Algorithm Iterate through nnumbers to …

(4.12)全面解析-SQL事务+隔离级别+阻塞+死锁

30分钟全面解析-SQL事务隔离级别阻塞死锁 转自&#xff1a;https://blog.csdn.net/slowlifes/article/details/52752735 2016年10月07日 23:17:46 阅读数&#xff1a;1097阅读目录 概述&#xff1a;一、事务二、锁三、阻塞四、隔离级别五.死锁以前总是追求新东西&#xff0c;发…

mac启动mysql,apache,php

在用php编写网站之前&#xff0c;先要启动之前搭建好的环境。 1.启动mysql &#xff08;1&#xff09;在system preference的最底部有mysql控制图标&#xff1a; &#xff08;2&#xff09;点击mysql图标&#xff0c;启动mysql&#xff1a; 2.启动apache&#xff1a; 在term…

如何在命令长度受限的情况下成功get到webshell(函数参数受限突破、mysql的骚操作)...

0x01 问题提出 还记得上篇文章记一次拿webshell踩过的坑(如何用PHP编写一个不包含数字和字母的后门)&#xff0c;我们讲到了一些PHP的一些如何巧妙地绕过数字和字母受限的技巧&#xff0c;今天我要给大家分享的是如何在命令长度受限的情况下成功get到webshell&#xff0c;以及关…

iOS开发造轮子 | 通用占位图

https://www.jianshu.com/p/beca3ac24031 实际运用场景&#xff1a; 没网时的提示view&#xff0c;tableView或collectionView没内容时的展示view&#xff0c;以及其它特殊情况时展示的特定view。如&#xff1a; 常见的几种情况我的目标&#xff1a; 对以上几种情况的展示view做…