亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

java學習筆記—JSP3(34)

2019-11-14 23:50:08
字體:
來源:轉載
供稿:網友
java學習筆記—jsp3(34)JSP內置對象

JSP在進行編譯的時候動態的創建了很多的內置對象,那么如果開發者知道,可以直接在JSP頁面中使用這些對象。我們將這些內置的對象稱之為JSP內置九大對象。

如果需要將以下的九大內置對象直接獲取出來,那么可以這樣做:

編寫一個錯誤處理頁面,那么請求查看翻譯好的jsp文件。

public void _jspService(HttpServletRequest request, HttpServletResponse response)        throws java.io.IOException, ServletException {    PageContext pageContext = null;    Httpsession session = null;    Throwable exception = org.apache.jasper.runtime.JsPRuntimeLibrary.getThrowable(request);    if (exception != null) {      response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);    }    ServletContext application = null;    ServletConfig config = null;    JspWriter out = null;    Object page = this;    JspWriter _jspx_out = null;    PageContext _jspx_page_context = null;    ......}

因為在JSP中編寫JSP腳本以及JSP輸出表達式都會默認翻譯在_jspService()那么以上該方法中定義的九大對象開發者可以任意使用。

JSP九大對象

Servlet類型

request

HttpServletRequest

response

HttpServletResponse

session

HttpSession

config

ServletConfig

application

ServletContext

out

JspWriter

page

Object

pageContext

PageContext

exception

Throwable

1 out對象

同時使用out和response的輸出字符流給頁面輸出數據。

<%     out.write("jack<br/>");    response.getWriter().write("lucy<br/>");%>

輸出結果是lucy jack。因為以上兩個都是字符流且帶有自己的緩沖區,因此JSPWriiter的緩沖區數據在JSP執行完畢之后才將數據刷新給Response字符流的緩沖區,因此out對象輸出的數據在后面。如果需要提前輸出,那么需要進行緩沖區數據的強行刷新。

<%      out.write("jack<br/>");     out.flush();     response.getWriter().write("lucy<br/>");%>

2 使用JspWriiter和response的字節流同時輸出數據。

<%     out.write("jack<br/>");    out.flush();    response.getOutputStream().write("lucy<br/>".getBytes());%>

以上代碼運行結果是jack然后拋出異常getWriter() has already been called for this response。在JSP中不能同時使用字節流和字符流。

3. 如何使用JSP實現圖片的下載。

<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="UTF-8"%><%          // 獲取圖片資源         InputStream in = application.getResourceAsStream("/imgs/0004.jpg");         // 指定處理方式         response.setHeader("content-disposition","attachment;filename=0004.jpg");         // 獲取字節輸出流         byte [] b = new byte[1024];         int len = 0;         // 邊讀邊寫         OutputStream output = response.getOutputStream();         while((len = in.read(b)) != -1){            output.write(b,0,len);         }         // 釋放資源         in.close();%>

為了避免頁面JSP中使用out對象,那么需要將JSP的所有的模板元素全部刪除掉包括頁面中的回車和換行。

4. 使用out隱含對象的write方法和println方法。

<%        String str1 = "data";       String str2 = null;       int a = 65;       out.write(str1);// data       out.write(str2);// 不顯示       out.write(a);// A       out.write("<hr/>");       out.println(str1);// data       out.println(str2);// null       out.println(a);// 65%>

二 pageContext對象

PageContext類主要的描述的是的JSP頁面的上下文環境,可以獲取servlet的信息、也可以將當前JSP的上下文環境傳遞給指定的類實現對JSP頁面的操作。

1. 獲取JSP中所有的數據

<% out.write( (pageContext.getRequest() == request ) + "<br/>");out.write( (pageContext.getResponse() == response ) + "<br/>");out.write( (pageContext.getSession() == session ) + "<br/>");out.write( (pageContext.getServletConfig() == config ) + "<br/>");out.write( (pageContext.getServletContext() == application ) + "<br/>");out.write( (pageContext.getPage() == page ) + "<br/>");out.write( (pageContext.getException() == exception ) + "<br/>");out.write( (pageContext.getOut() == out ) + "<br/>");%>

思考:為什么SUN需要將其他八大對象通過pageContext也要進行獲???

因為以后如果需要一個普通的java類來處理JSP頁面數據那么直接將PageContext類傳遞過去即可。如:自定義標簽。

2. 常見的域

我們將可以使用setAttribvute()/getAttribute()方法存儲和獲取數據的對象稱之為域對象。

域對象

生命周期

page

在當前頁面中有效

request

請求轉發

session

默認半小時

application

服務器關閉的時候

3. 設置和獲取不同域屬性

<%-- 給不同的域對象設置屬性 --%><% pageContext.setAttribute("page","this is current page");       pageContext.setAttribute("name","lucy",PageContext.REQUEST_SCOPE);pageContext.setAttribute("age","38",PageContext.SESSION_SCOPE);String likes[] = {"football","sleep","basketball"};        pageContext.setAttribute("likes",likes,PageContext.APPLICATION_SCOPE);%><%-- 獲取域屬性 --%><%= pageContext.getAttribute("page") %><br/><%= pageContext.getAttribute("name",PageContext.REQUEST_SCOPE) %><br/><%= pageContext.getAttribute("age",PageContext.SESSION_SCOPE) %><br/><%= Arrays.toString( (String[])pageContext.getAttribute("likes",PageContext.APPLICATION_SCOPE) ) %><br/>

總結:

使用pageContext設置和獲取域屬性的時候可以顯示的指定域,如果沒有指定域,那么默認該域是page域。

問題:

在實際的開發中設置屬性和獲取屬性是分別由不同的程序員開發的程序,那么如果在獲取的時候開發者不明確這樣的屬性名到底存儲在哪一個域中,那么應該怎么辦?

解決方案:可以使用以下語句

<%= pageContext.findAttribute("test") %>

該語句默認從pageàrequestàsessionàapplication逐個查找需要的屬性,如果找到直接返回。

因此該語句就是EL表達式的底層實現原理。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品www| 欧美成人黄色小视频| 91精品国产自产在线| 精品视频www| 国产91精品久| 精品久久久久国产| 国产精品久久久久久超碰| 国产成人精品一区二区在线| 亚洲欧美日韩中文在线制服| 日本久久精品视频| 欧洲亚洲在线视频| 欧美精品videosex牲欧美| 国产一区二区三区在线看| 欧美午夜片欧美片在线观看| 黑人巨大精品欧美一区二区三区| 久久99国产综合精品女同| 欧美极品少妇全裸体| 精品一区精品二区| 成人久久久久久久| 亚洲欧美日韩精品久久亚洲区| 中文欧美在线视频| 国产精品99久久久久久人| 欧美诱惑福利视频| 欧美极品少妇xxxxⅹ裸体艺术| 欧美在线中文字幕| 亚洲人成绝费网站色www| 俺去了亚洲欧美日韩| 亚洲男人天天操| 在线看日韩av| 精品亚洲一区二区三区在线观看| 欧美裸体xxxx极品少妇| 中文字幕亚洲第一| 久久视频在线免费观看| 亚洲午夜久久久久久久| xvideos成人免费中文版| 久热爱精品视频线路一| 国产精品日韩专区| 日韩性xxxx爱| 欧美性生活大片免费观看网址| 亚洲欧美日韩高清| 国产一区二区精品丝袜| 中文字幕在线国产精品| 国产亚洲综合久久| 国产精自产拍久久久久久| 亚洲精品久久久久| 亚洲深夜福利视频| 川上优av一区二区线观看| 久久久亚洲成人| 日韩av高清不卡| 91av免费观看91av精品在线| 亚洲成年人影院在线| 欧美一级黑人aaaaaaa做受| 欧美激情国产日韩精品一区18| 欧洲成人免费aa| 成人做爽爽免费视频| 国产美女被下药99| 91精品久久久久久综合乱菊| 日韩中文综合网| 国产精品久久久久久久久久久不卡| 亚洲免费一级电影| 亚洲精品99久久久久中文字幕| 97精品欧美一区二区三区| 日韩在线视频中文字幕| 中文字幕av一区| 久久97精品久久久久久久不卡| 亚洲欧美成人一区二区在线电影| 日本精品一区二区三区在线播放视频| 精品久久中文字幕| 日韩精品视频在线播放| 欧美日韩国产精品专区| 综合网日日天干夜夜久久| 欧美国产视频日韩| 欧美性猛交xxxx乱大交极品| 国产精品日韩在线观看| 91久热免费在线视频| 亚洲电影在线观看| 91亚洲国产成人精品性色| 91精品久久久久久久久| 欧美精品video| 人人澡人人澡人人看欧美| 国产精品999| 日韩人在线观看| 国产日本欧美一区| 正在播放国产一区| 欧美日韩国产丝袜美女| 欧美成人免费小视频| 精品在线观看国产| 亚洲欧洲高清在线| 国产在线拍揄自揄视频不卡99| 在线性视频日韩欧美| 5566成人精品视频免费| 一区二区欧美激情| 色噜噜狠狠色综合网图区| 91久久久久久久一区二区| 亚洲一区二区久久久久久久| 一区二区三欧美| 国产xxx69麻豆国语对白| 国产精品jizz在线观看麻豆| 91探花福利精品国产自产在线| 日韩av在线高清| 77777少妇光屁股久久一区| 国产精品一区av| 国产精品久久久久久久久久| 国产91精品高潮白浆喷水| 97精品一区二区视频在线观看| 精品久久久久久久大神国产| 国产在线视频91| 国产午夜精品全部视频在线播放| 国产欧美最新羞羞视频在线观看| 国产成人精品免高潮在线观看| 中文字幕久久久| 正在播放国产一区| 欧美日韩色婷婷| 中文国产成人精品久久一| 精品视频中文字幕| 亚洲一区亚洲二区亚洲三区| 久久久久久久影视| 91精品综合久久久久久五月天| www.久久色.com| 欧美日韩视频免费播放| 欧美日韩国产成人在线| 欧美在线性爱视频| 国产成人精品综合久久久| 中文字幕久热精品视频在线| 久久精品视频导航| 久久av红桃一区二区小说| 7m第一福利500精品视频| 日本久久久久久久久久久| 国产精品视频久久久久| 国产精品ⅴa在线观看h| 国产精品成人国产乱一区| 在线日韩第一页| 国产精品亚洲激情| 久久精品美女视频网站| 5566成人精品视频免费| 中文字幕亚洲一区二区三区五十路| 在线看福利67194| 亚洲欧美另类自拍| 第一福利永久视频精品| 中文字幕精品在线| 欧美人与性动交a欧美精品| 精品国产一区二区三区久久| 国产不卡视频在线| 黄色成人在线播放| 国语自产精品视频在免费| 亚洲一级一级97网| 欧美激情亚洲激情| 国内精品小视频在线观看| 久久夜色撩人精品| 97视频色精品| 国产精品中文久久久久久久| 亚洲图片在线综合| 亚洲性夜色噜噜噜7777| 91欧美精品成人综合在线观看| 日韩av一区在线观看| 亚洲一区亚洲二区亚洲三区| 91精品免费视频| 国产精品偷伦视频免费观看国产| 欧美在线观看一区二区三区| 亚洲国产欧美自拍| 2025国产精品视频| 色妞在线综合亚洲欧美| 亚洲最新av在线网站| 欧美精品电影免费在线观看|