javascript
JSP的9个内置对象-response
假如需要在JSP頁(yè)面中動(dòng)態(tài)生成一幅位圖,使用out作為響應(yīng)將無(wú)法完成,此時(shí)必須使用response作為響應(yīng)輸出。
1.response響應(yīng)生成圖片
image.jsp在客戶端生成一張圖片。其源代碼如下:
<%@ page import="java.awt.image.*, javax.imageio.*, java.io.*, java.awt.*" %> <% //創(chuàng)建BufferedImage對(duì)象 BufferedImage image=new BufferedImage(400,400,BufferedImage.TYPE_INT_RGB); //以Image對(duì)象獲取Graphics對(duì)象 Graphics g=image.getGraphics(); //使用Graphics畫圖,所畫的圖像將會(huì)出現(xiàn)在image對(duì)象中 g.fillRect(0,0,400,400); //設(shè)置顏色:紅 g.setColor(new Color(255,0,0)); //畫出一段弧 g.fillArc(20,20,100,100,30,120); //設(shè)置顏色綠 g.setColor(new Color(0,255,0)); g.fillArc(20,20,100,100,150,120); //設(shè)置顏色藍(lán) g.setColor(new Color(0,0,255)); g.fillArc(20,20,100,100,270,120); //設(shè)置顏色黑 g.setColor(new Color(0,0,0)); //畫出3個(gè)字符串 g.drawString("red:climb",300,80); g.drawString("green:swim",300,120); g.drawString("blue:jump",300,160); g.dispose(); //將圖像輸出到頁(yè)面響應(yīng) ImageIO.write(image,"bmp",response.getOutputStream()); %> 在頁(yè)面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> 其運(yùn)行結(jié)果截圖如下:
2.重定向
重定向是response的另外一個(gè)用處,與forward不同的是,重定向會(huì)丟失所有的請(qǐng)求參數(shù)及請(qǐng)求屬性。
3.增加cookie
Cookie通常用于網(wǎng)站記錄客戶的某些信息,比如客戶的用戶名及客戶的喜好等。
Cookie與session的不同之處在于:session關(guān)閉瀏覽器后就失效,但Cookie會(huì)一直存放在客戶端機(jī)器上,直到超出Cookie的生命期限。
response提供了一個(gè)方法增加cookie:
void addCookie(Cookie cookie)
增加cookie的步驟如下:
(1)創(chuàng)建cookie實(shí)例;
(2)設(shè)置cookie的生命期限;
(3)向客戶端寫cookie。
頁(yè)面AddCookie.jsp向客戶端寫一個(gè)username的cookie。其代碼如下:
通過request對(duì)象的getCookies()方法來(lái)訪問Cookie,該方法將返回Cookie的數(shù)組,遍歷數(shù)組的每個(gè)元素,找出希望訪問的Cookie即可。頁(yè)面GetCookie.jsp負(fù)責(zé)訪問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(); //遍歷客戶端上的每個(gè)Cookie for(Cookie c:cookies) {//如果Cookie的名為username,表明該Cookie是我們需要訪問的Cookieif(c.getName().equals("username"))out.println(c.getValue()); } %> <BODY> <HTML>運(yùn)行頁(yè)面AddCookie.jsp之后60s內(nèi)運(yùn)行GetCookie.jsp,可以得到剛才在客戶端寫入的cookie。結(jié)果如下:
總結(jié)
以上是生活随笔為你收集整理的JSP的9个内置对象-response的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中华黑豹增强版木马分析
- 下一篇: JSP的三个编译指令-page,incl