日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

大数据WEB阶段(十三)JSP(一)JSP基础、JSP指令详解、四大域九大隐式对象总结

發布時間:2024/4/30 javascript 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大数据WEB阶段(十三)JSP(一)JSP基础、JSP指令详解、四大域九大隐式对象总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JSP基礎、指令、四大作用域九大隱式對象總結

(一)JSP基礎

一、JSP概述

  • jsp其實是java動態頁面技術
  • HTML可以用來組織頁面但是HTML是一種靜態web資源技術無法嵌入動態數據。
  • Servlet是動態web資源技術 但是本質上是一段java代碼 不方便在其中組織頁面結構。
  • 于是jsp技術被提出來 寫起來就像在寫一個html,但是內部可以嵌入java代碼,本質上是一種動態web資源 但是可以直接寫html標簽 非常便于組織頁面結構。
  • Jsp解決了動態頁面開發的問題
  • 真正開發中 , 往往使用servlet來處理業務邏輯 , 將處理好的結構 帶到jsp頁面 由jsp頁面負責展示。
  • 二、JSP原理

  • jsp會在第一次被訪問時被翻譯成一個Servlet , 之后對這個jsp的訪問本質上都是這個servlet在執行 。
  • 所以看見是一個jsp , 但是jsp本質上是一個servlet 。
  • 三、JSP基本組成結構

  • 模板元素
  • 直接書寫在JSP中的HTML內容 , 看起來就像寫HTML一樣方便 ,這些HTML內容被稱為JSP模板元素
  • 原理:但是最終會在被翻譯成Servlet的過程中以out.write();的形式原樣輸出到瀏覽器顯示 。
  • 腳本表達式

    <%= java表達式 %>
  • 在JSP頁面中可以通過腳本表達式來將一個java表達式的計算結果輸出到頁面中展示
  • 原理:在被翻譯成Servlet的過程中 , 直接將計算結果的值用out.write()輸出
  • 腳本片段

    <% 若干java代碼 %>
  • 在JSP頁面中可以直接通過腳本片段寫入一段java代碼
  • 原理: 在<% %>中的內容會被原樣翻譯到servlet中的對應位置后執行
  • 注意:在同一個JSP頁面中 , 多個腳本片段的情況下 , 后面的可以直接訪問之前定義的變量
  • 注意:在同一JSP頁面中 , 多個腳本片段的情況下 , 單個腳本片段的java語法可以不完整 , 但是要保證JSP頁面翻譯成servlet之后java語法是完整的 。
  • JSP聲明

    <%! %>
  • 通過JSP聲明來聲明一個全局的變量
  • 原理: 當JSP被翻譯為servlet之后JSP聲明中的內容將被放置到與service方法同級的位置 , 成為類的成員 。
  • JSP注釋

    <%-- 注釋內容 --%>
  • 可以通過JSP注釋將jsp中的部分內容注釋掉 , 被注釋 的內容將不會被翻譯到servlet中 。
  • 注意區別:

  • JSP注釋中的內容不會被翻譯為servlet , 更不會輸出到頁面中去
  • JSP腳本片段中的java注釋的內容 , 將會被翻譯到servlet中 , 但是不會執行

    <% //被注釋的java代碼 %>
  • 被html注釋注釋掉的內容 , 將會被翻譯到servlet中 , 并且前后的注釋標簽被當做模板元素直接輸出 , 但是瀏覽器不會顯示 , 而注釋中的內容仍然會執行

    JSP代碼 ... <% int i = 100; %> <!-- i = 0; --> <%=i %> ... 被翻譯成servlet之后 ... int i = 100; out.write("<!--"); i = 0; out.write("-->"); out.write(i); ... 結果: i 為 0 。
  • (二)JSP指令

    一、JSP指令概述

  • 格式:

    <%@ 指令名 若干屬性 %>
  • JSP指令不產生任何直接的輸出 , 是用來控制JSP解析引擎如何解析JSP頁面中的其他部分內容的
  • 二、指令詳解

  • page指令

    <%@ page .... %>
  • 聲明當前JSP的基本屬性 , 指揮JSP翻譯引擎如何翻譯JSP頁面中的其他內容為servlet
  • page指令的屬性:

  • [ language=”java” ] 當前JSP使用的開發語言 , 目前也支持java
  • [ extends=”package.class” ] 當前jsp翻譯成servlet后要繼承的類,注意此值必須是一個servlet的子類,一般情況下不要改
  • !![ import=”{package.class | package.*}, …” ] 導入需要使用到的包

    如:java.lang.*;javax.servlet.*;javax.servlet.jsp.*;javax.servlet.http.*;
  • !![ session=”true | false” ] 用來指定當前頁面是否使用session,如果設置為true,則翻譯過來的servlet中將會有對session對象的引用,于是可以直接在jsp中使用session隱式對象。但是這將導致一旦訪問jsp就會調request.getSession()方法,可能導致不必要的空間浪費。如果確定jsp中不需要session可以設為false
  • [ buffer=”none | 8kb | sizekb” ] out隱式對象所使用的緩沖區的大小
  • [ autoFlush=”true | false” ] out隱式對象是否自動刷新緩沖區,默認為true,不需要更改
  • !![ errorPage=”relative_url” ] 如果頁面出錯,將要跳轉到的頁面,除了在jsp中使用此屬性指定錯誤頁面外也可以在web.xml中配置整個web應用的錯誤頁面,如果兩個都設置則jsp中的此屬性起作用
  • !![ isErrorPage=”true | false” ] 如果設置此屬性為true,翻譯過來的servlet中將含有Exception隱式對象,其中封裝的就是上一個頁面中拋出的異常對象
  • [ contentType=”mimeType [ ;charset=characterSet ]” | “text/html ; charset=ISO-8859-1” ] 和jsp亂碼相關的指令,用來指定jsp輸出時,設置的Content-Type響應頭用來指定瀏覽器打開的編碼
  • !
  • [ isELIgnored=”true | false” ] 當前頁面是否使用el表達式,設置為false時表示啟用el,j2ee4.0開始默認支持,j2ee4.0以下做開發時,如果要使用el表達式,需將此屬性設置為false
  • 注意:

  • 指令中errorPage屬性可以為當前頁面制定錯誤提示頁面 , 但是如果整個站點的jsp頁面都需要配時會很繁瑣 , 這時可以在web.xml文件中進行統一配置

    <error-page><exception-type>java.lang.Throwable</exception-type><location>/error/error.jsp</location> </error-page> <error-page><error-code>404</error-code><location>/error/404.jsp</location> </error-page> <error-page><error-code>500</error-code><location>/error/500.jsp</location> </error-page>
  • 如果配置全局友好錯誤提示頁面 又為某個jsp單獨指定過錯誤提示頁面 則單獨指定的起作用

  • include指令

    <%@ include file="xxxx"%>
  • 實現頁面包含
  • taglib指令

    <%@ taglib uri="" prefix="" %>
  • 引入標簽庫
  • (三)四大作用域九大隱式對象總結

    一、四大作用域

  • 域對象: 一個對象具有一個可被看見的范圍 , 并且利用該對象上的map可以在整個范圍內實現資源的共享
  • PageContext域

  • 生命周期 :
  • 訪問JSP頁面時創建 , 訪問JSP頁面結束后銷毀
  • 作用范圍
  • 當前JSP界面
  • 主要功能

  • 在當前JSP頁面中共享數據 , 在PageContext域中的屬性可以被整個頁面共享

    設置屬性 setAttribute(String name , Object value); 獲取屬性 getAttribute(String name); 移除屬性 removeAttribute(String name);
  • 作為入口對象操作四大作用域中的數據

    向指定域中添加屬性 setAttribute(String name, Object value,int scope) 獲取指定域中的指定屬性 getAttribute(String name,int scope) 移除制定域中的制定屬性 removeAttribute(String name,int scope)其pageContext中代表域的常量: PageContext.APPLICATION_SCOPE --> ServletContext域 PageContext.SESSION_SCOPE --> Session域 PageContext.REQUEST_SCOPE --> Request域 PageContext.PAGE_SCOPE --> PageContext域 額外提供了一個便捷的方法: //按照由小到大的順序搜尋四大作用域 , 查找指定名稱的屬性 , 找到則返回對應的值 , 找不到則返回null findAttribute(String name);
  • 提供了便捷的方法實現請求轉發、包含:

    pageContext.forward("/index.jsp"); pageContext.include("/index.jsp");
  • request域

  • 詳細解析請看 :http://blog.csdn.net/chou_out_man/article/details/78700720 第七部分
  • 生命周期
  • 請求開始時創建 , 請求結束時死亡
  • 作用范圍:
  • 一次請求鏈
  • 主要功能:

  • 在作用范圍內共享數據
  • 域對象提供的方法(可以操作map中的數據)

    setAttribute(String name,Object value) :用來存儲一個對象,也可以稱之為存儲一個域屬性 getAttribute(String name); 用來獲取request中的數據 removeAttribute(String name); 用來移除request中的域屬性 getAttributeNames(); 獲取所有域屬性的名稱
  • Session域
  • 詳細解析請看:http://blog.csdn.net/chou_out_man/article/details/78725938 第三部分
  • ServletContext域
  • 詳細解析請看:http://blog.csdn.net/chou_out_man/article/details/78705014 第三部分
  • 四大作用域由小到大排序為: PageContext–>Request–>Session–>ServletContext
  • 二、九大隱式對象

  • 九大隱式對象概述

  • 在JSP翻譯成servlet時, JSP翻譯引擎在翻譯過來的servlet中 , 預先定義了一些變量 , 可以不需要再JSP中預先定義就可以直接使用 , 共9個 , 統稱為JSP九大隱式對象 。 分別是:

    page --- 由JSP翻譯引擎翻譯出的Servlet config --- ServletConfig 當前servlet的配置信息 application --- ServletContext 當前web應用 request --- HttpServletRequest請求 response --- HttpServletResponse響應 out --- response.getWriter()得到的輸出流 , 可以通過他輸出數據 session --- HttpSession當前會話 exception --- Excception 如果將isErrorPage設置為true , 才會有一個代表當前頁面異常的對象 pageContext --- 代表當前JSP頁面
  • 其中七大對象已經做過詳解
  • page 、request http://blog.csdn.net/chou_out_man/article/details/78700720
  • application、 config 、 response http://blog.csdn.net/chou_out_man/article/details/78705014
  • session http://blog.csdn.net/chou_out_man/article/details/78725938
  • out對象
  • 可以將他理解成response.getWriter()獲得的PrintWriter.
  • 它自帶一個緩沖區,其大小收page指令中的buffer的設定限制。當緩沖區滿或緩沖區被關閉或當前jsp頁面結束,則此緩沖區中的內容將被刷新到response.getWriter()的緩沖區中。
  • pageContext對象

  • 作為入口對象獲取其他八大隱式對象

    getException方法返回exception隱式對象 getPage方法返回page隱式對象 getRequest方法返回request隱式對象 getResponse方法返回response隱式對象 getServletConfig方法返回config隱式對象 getServletContext方法返回application隱式對象 getSession方法返回session隱式對象 getOut方法返回out隱式對象
  • 獲取其他域中的數據

    pageContext操作所有域中屬性的方法getAttribute(String name,int scope)setAttribute(String name, Object value,int scope) removeAttribute(String name,int scope)其中pageContext中代表域的常量:PageContext.APPLICATION_SCOPEPageContext.SESSION_SCOPEPageContext.REQUEST_SCOPEPageContext.PAGE_SCOPE findAttribute方法: 在四大域中搜尋屬性,搜尋的順序是page域、request域、session域、application域,從小域到大域開始搜索,如果搜索到就直接獲取該值,如果所有域中都找不到,返回一個null
  • 作為域對象使用
  • 跳轉到其他資源
  • 它的身上提供了forward方法和include方法 。
  • 總結

    以上是生活随笔為你收集整理的大数据WEB阶段(十三)JSP(一)JSP基础、JSP指令详解、四大域九大隐式对象总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 青青草青娱乐 | 在线观看亚洲 | 黑人干亚洲女 | 伊人国产视频 | 欧美性视频一区二区 | 久久不射视频 | 国产精品成人va在线观看 | 日本黄页网站免费大全 | 亚洲国产97| 99热这里只有精品9 日韩综合在线 | 久久久久久国产精品三级玉女聊斋 | 色乱码一区二区三在线看 | 国产美女裸体无遮挡免费视频 | 114国产精品久久免费观看 | 在线观看日本中文字幕 | 少妇人妻偷人精品视频蜜桃 | 亚洲免费成人 | 日韩在线视频二区 | 欧美日韩国产成人精品 | 台湾少妇xxxx做受 | 男人桶进美女尿囗 | 日本污视频在线观看 | 欧美综合日韩 | 六月激情 | 成人一级生活片 | 免费观看视频一区二区 | 国产成人精品网站 | av黄色在线免费观看 | 久久精品| 欧美性生活精品 | 91高清免费 | 在线观看一二三区 | 日本午夜免费 | 欧美黑人又粗又大的性格特点 | www.香蕉视频.com | 国产在线精品播放 | 色婷婷精品国产一区二区三区 | 国产精品人妻 | 日韩精品在线免费观看视频 | 国产午夜精品一区二区三区嫩草 | www.偷拍.com | 人妻 丝袜美腿 中文字幕 | 女人性做爰69片免费看 | 黄色91免费版 | 成人av资源站 | 亚洲成人一区二区在线观看 | 在线观看视频一区二区三区 | 亚洲一区二区三区影院 | 色涩涩 | 亚洲精品中文字幕乱码三区91 | 人妻丰满熟妇av无码区免 | 欧美怡红院视频一区二区三区 | 综合在线亚洲 | 国产精品成人99一区无码 | 国产精品区一区二 | 亚欧美一区二区三区 | 国产精品高潮呻吟视频 | 麻豆国产网站 | 东京热无码av一区二区 | 亚洲伦理影院 | 黄色av电影网址 | 重口变态虐黄网站 | 欧美亚洲国产一区二区三区 | 精品乱码一区二区三四区视频 | 欧美黄色片免费看 | 一级特黄录像免费看 | 欧美一区二区高清 | 色88久久久久高潮综合影院 | 日韩毛片网 | 99视频久| 免费观看日本 | 性史性dvd影片农村毛片 | 日韩欧美中文字幕一区 | free性娇小hd第一次 | 香蕉视频一区二区三区 | 91麻豆精品国产午夜天堂 | 日日精| 亚洲精品一区二区三区精华液 | 欧美一区二区国产 | 国产精品-色哟哟 | 91麻豆影视 | 久久精品视频在线免费观看 | 欧美日韩精品一区二区三区视频播放 | 国产美女网 | 日本专区在线 | 中国国产精品 | 国产精品久久国产精品99 | 秋霞网av| 深夜福利电影 | wwwwww在线观看 | 特及毛片| 毛茸茸毛片| 欧美日韩另类一区 | 久久国产亚洲 | 村姑电影在线播放免费观看 | 中文字幕在线国产 | 午夜试看120秒 | 无遮挡毛片| 久久久午夜电影 |