摘要:的學(xué)習(xí)與內(nèi)置對象對象代表服務(wù)器對客戶端的響應(yīng)。在增加之前必須先創(chuàng)建對象。一次會話的含義是從客戶端瀏覽器連接服務(wù)器開始,到客戶端服務(wù)與斷開為止。范圍內(nèi)的屬性可以在多個頁面的跳轉(zhuǎn)之間共享。
Java Server Page的學(xué)習(xí)(resopnse與session)
response的三個作用:respone代表服務(wù)器對客戶端的響應(yīng)。如果要在JSP頁面中動態(tài)生成一副位圖
或者輸出一個PDF文檔,要用response作為響應(yīng)輸出。
1、響應(yīng)生成非字符響應(yīng)
response是HttpServletResponse接口的實例,該接口提供了一個getOutputStream()方法,
該方法返回響應(yīng)輸出字節(jié)流
<%@page contentType="image/png" language="java"%> <%@page import="java.awt.image.*,javax.imageio.*,java.io.*,java.awt.*"%> <% //創(chuàng)建BufferedImage對象 BufferedImage image = new BufferedImage(340,160,BufferedImage.TYPE_INT_RGB); //以Image對象獲取Graphics對象 Graphics g = image.getGraphics(); //使用Graphics畫圖,所畫的圖像將會出現(xiàn)在image中 g.fillRect(0, 0, 400, 400); //設(shè)置顏色,畫弧 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); //設(shè)置顏色畫出三個字符串 g.setColor(new Color(0,0,0)); g.setFont(new Font("Arial Black",Font.PLAIN,16)); g.drawString("red:climb", 200,60); g.drawString("green:swim", 200,100); g.drawString("blu:jump",200,140); g.dispose(); //將圖像輸出到頁面的響應(yīng) ImageIO.write(image, "png", response.getOutputStream()); %>
2、重定向
和forward不同的是,response重定向會丟失所有的請求參數(shù)和request范圍的屬性,因為重定向?qū)⑸傻诙握埱?。HttpServletResponse提供了一個sendRedirect(String path)方法,該方法用于重定向到path資源。
<%@ page contentType="text/html; charset=utf-8" language="java" errorPage=""> <% //生成頁面響應(yīng) out.println("===="); //重定向到redirect-result.jsp頁面 response.setRedirect("redirect-result.jsp"); %>
3、向客戶端增加cookie
response提供方法void addCookie(Cookie cookie)來增加cookie。在增加cookie之前必須先創(chuàng)建Cookie對象。創(chuàng)建Cookie實例,Cookie的構(gòu)造器為Cookie(String name,String value)
設(shè)置Cookie的生命期限,即該Cookie在多長時間內(nèi)有效
向客戶端寫Cookie
添加cookie:
<%@ page contentType="text/html; charset=utf-8" language="java" errorPage="">增加Cookie <% //獲取請求參數(shù) String name = request.getParameter("name"); //以獲取到的請求參數(shù)為值,創(chuàng)建一個Cookie對象 Cookie c = new Cookie("username",name); //設(shè)置Cookie對象的生存期限 c.setMaxAge(24*3600); //向客戶端增加Cookie對象 response.addCookie(c); %>
讀取cookie:
<%@ page contentType="text/html; charset=utf-8" language="java" errorPage="">讀取Cookie <% //獲取本站在客戶端上保留的所有cookie Cookie[] cookies = request.getCookies(); //遍歷客戶端上的每個Cookie for(Cookie c : cookies) { //如果Cookie的名為username,表明該Cookie是需要訪問的Cookie if(c.getName().equals("username")) { out.println(c.getValue()); } } %>
session的作用session對象代表一次用戶會話。一次會話的含義是從客戶端瀏覽器連接服務(wù)器開始,到客戶端服務(wù)與斷開為止。(session里的屬性必須是可序列化的)
通常用于跟蹤用戶的會話信息,如判斷用戶是否登錄系統(tǒng)。session范圍內(nèi)的屬性可以在多個頁面的跳轉(zhuǎn)之間共享。
session對象是HttpSession的實例,HttpSession常用的兩個方法:setAttribute(String attName,Object attValue):設(shè)置session范圍內(nèi)attName屬性的值為attValue
getAttribute(String attName):返回session范圍內(nèi)attName屬性的值
表單頁面:
<%@ page contentType="text/html; charset=utf-8" language="java" errorPage=""%>表單頁面
處理頁面:
<%@ page contentType="text/html; charset=utf-8" language="java"%> <%@ page import="java.util.*" %> <% //取出session范圍的itemMap屬性 MapitemMap = (Map )session.getAttribute("itemMap"); //如果Map對象為空,則初始化Map對象 if(itemMap == null) { itemMap = new HashMap (); itemMap.put("書",0); itemMap.put("水",0); itemMap.put("人",0); } //獲取上一個頁面的請求參數(shù) String[] buys = request.getParameterValues("item"); //遍歷數(shù)組的各元素 for(String item:buys) { //如果item為book,表示書籍 if(item.equals("book")) { int num1 = itemMap.get("書").intValue(); //將書的數(shù)量加1 itemMap.put("書",num1+1); }else if(item.equals("water")) { int num2 = itemMap.get("水").intValue(); //將水的數(shù)量加1 itemMap.put("水",num2+1); }else if(item.equals("people")) { int num3 = itemMap.get("人").intValue(); //將人的數(shù)量加1 itemMap.put("人",num3+1); }else } //將itemMap對象放到設(shè)置成session范圍的itemMap屬性 session.setAttribute("itemMap",itemMap); %> new document 書:<%=itemMap.get("書")%>
水:<%=itemMap.get("水")%>
人:<%=itemMap.get("人")%>
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/67779.html
摘要:對象具有請求域,即完成客戶端的請求之前,該對象一直有效。提交的數(shù)據(jù)量最多不超過。安全性較低但效率比方式高。適合提交數(shù)據(jù)量大,安全性高的用戶信息。除非本次會話的所有頁面都關(guān)閉后再重新訪問某個或者,將會創(chuàng)建新的會話。 JSP 簡介 全名為Java Server Pages,其根本是一個簡化的Servlet設(shè)計,實現(xiàn)了在Java當(dāng)中使用HTML標(biāo)簽。JSP是一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),也是Java...
摘要:元素用于指定過濾器的完整的限定類名。除此之外,過濾器不會被調(diào)用。參數(shù)用于訪問后續(xù)過濾器。還可以為指定目標(biāo)資源為某個,例如當(dāng)用戶訪問時,會執(zhí)行名字為的,這時會執(zhí)行過濾器。防止中文亂碼過濾器項目使用框架時。 文章首發(fā)在CSDN博客,轉(zhuǎn)載請務(wù)必注明以下所有鏈接,否則考慮法律追究責(zé)任。 CSDN地址:http://blog.csdn.net/tzs_1041218129/article/det...
摘要:一基本語法聲明聲明語句成員變量或方法聲明語句聲明局部變量注意區(qū)分二者區(qū)別。局部變量在每次調(diào)用方法時都會重新初始化。注意此時代碼是被原封不動地導(dǎo)入,所以變量的作用域仍然在這個中。動作,運行期間的命令廣義的擁有私有變量,和等方法的工具類。 JSP(JAVA Server Pages):一種特殊的Servlet,直接在HTML中內(nèi)嵌JSP代碼,由JSP Engine自動轉(zhuǎn)為Servlet代碼...
摘要:方法的參數(shù)不但可以使相對于上下文根的路徑,而且可以是相對于當(dāng)前的路徑。如和都是合法的路徑。 轉(zhuǎn)發(fā)與重定向區(qū)別是什么 在調(diào)用方法上 轉(zhuǎn)發(fā) 調(diào)用 HttpServletRequest 對象的方法 request.getRequestDispatcher(test.jsp).forward(req, resp); 重定向 調(diào)用 HttpServletResponse 對象的方法 res...
閱讀 3387·2021-11-18 10:02
閱讀 2803·2019-08-30 13:56
閱讀 487·2019-08-29 12:36
閱讀 569·2019-08-28 18:07
閱讀 777·2019-08-27 10:51
閱讀 3516·2019-08-26 12:13
閱讀 3385·2019-08-26 11:46
閱讀 3381·2019-08-23 12:00