99久久精品国产片-99久久精品国产免费-99久久精品国产麻豆-99久久精品国产国产毛片-99久久精品国产高清一区二区-99久久精品费精品国产一区二区

JSP的刨根問底

2020-3-22    前端達(dá)人

JSP的刨根問底

  • 一.概念
  • 二.原理
  • 三.腳本
  • 四.內(nèi)置對象
  • 五.注釋
  • 六.編譯指令
  • 七.動作指令


  • 點擊查看原圖


    這篇文章從一個初學(xué)者的角度,復(fù)習(xí)一波JSP。






    一.概念
    Java Server Pages: java服務(wù)器端頁面

    可以理解為:一個特殊的頁面,其中既可以指定定義html標(biāo)簽,又可以定義java代碼
    用于簡化書寫!!!
    二.原理
    本質(zhì)是一個Servlet

    三.腳本
    定義:Jsp定義java代碼的方式

    <% 代碼 %>:定義的java代碼,在service方法中。service方法中可以定義什么,該腳本中就可以定義什么。
    <%! 代碼 %>:定義的java代碼,在jsp轉(zhuǎn)換后的java類的成員位置。
    <%= 代碼 %>:定義的java代碼,會輸出到頁面上。輸出語句中可以定義什么,該腳本中就可以定義什么。
    四.內(nèi)置對象
    對象名 實現(xiàn)接口或繼承類 作用
    PageContext 當(dāng)前頁面共享數(shù)據(jù),還可以獲取其他八個內(nèi)置對象
    request HttpServletRequest 一次請求訪問的多個資源(轉(zhuǎn)發(fā))
    session HttpSession 一次會話的多個請求間
    application ServletContext 所有用戶間共享數(shù)據(jù)
    response HttpServletResponse 響應(yīng)對象
    page Object 當(dāng)前頁面(Servlet)的對象 this
    out JspWriter 輸出對象,數(shù)據(jù)輸出到頁面上
    config ServletConfig Servlet的配置對象
    expection Throwable 異常對象
    五.注釋
    1.html注釋
    <!-- -->:只能注釋html代碼片段
    2.jsp注釋
    <%-- --%>:可以注釋所有

    六.編譯指令
    作用
    用于配置JSP頁面,導(dǎo)入資源文件

    格式
    <%@ 指令名稱 屬性名1=屬性值1 屬性名2=屬性值2 ... %>
    分類
    1.page
    配置JSP頁面的
    1. contentType:等同于response.setContentType()
    *設(shè)置響應(yīng)體的mime類型以及字符集
    * 設(shè)置當(dāng)前jsp頁面的編碼(只能是高級的IDE才能生效,如果使用低級工具,則需要設(shè)置pageEncoding屬性設(shè)置當(dāng)前頁面的字符集)
    2.import:導(dǎo)包
    3. errorPage:當(dāng)前頁面發(fā)生異常后,會自動跳轉(zhuǎn)到指定的錯誤頁面
    4.isErrorPage:標(biāo)識當(dāng)前也是是否是錯誤頁面。
    * true:是,可以使用內(nèi)置對象exception
    * false:否。默認(rèn)值。不可以使用內(nèi)置對象exception
    2.include
    頁面包含的。導(dǎo)入頁面的資源文件

     <%@include file="top.jsp"%>
    3.導(dǎo)入資源
    導(dǎo)入資源

     <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
      prefix:前綴,自定義的
    1
    七.動作指令
    作用
    動作指令與編譯指令不間,編譯指令是通知 Servlet 引擎的處理消息,而動作指令只是運行時的腳本動作。編譯指令在將JSP 編譯成 Servlet 時起作用:處理指令通常可替換成 Java腳本,是 JSP腳本的標(biāo)準(zhǔn)化寫法。

    分類
    指令 作用
    jsp:forward 執(zhí)行頁面轉(zhuǎn)向,將請求的處理轉(zhuǎn)發(fā)到下一個頁面。
    jsp:param 用于傳遞參數(shù),必須與其他支持參數(shù)曲標(biāo)簽一起使用。
    jsp:include 用于動態(tài)引入一個 JSP 頁面。
    jsp:plugin 用于下載 JavaBean 或 Applet 到客戶端執(zhí)行。
    jsp:useBean 使用 JavaBean。
    jsp:setProperty 修改 JavaBean 實例的屬性值。
    jsp:getProperty 獲取 JavaBean 實例的屬性值。
    具體細(xì)節(jié):
    jsp:forward:
    動作把請求轉(zhuǎn)到另外的頁面。可以轉(zhuǎn)發(fā)靜態(tài)的HTML頁面,也可以轉(zhuǎn)發(fā)動態(tài)的JSP頁面,或者轉(zhuǎn)發(fā)到容器中的servlet jsp:forward標(biāo)記只有一個屬性page。 page屬性包含的是一個相對URL。 page的值既可以直接給出,也可以在請求的時候動態(tài)計算。

    jsp:param
    用于設(shè)定參數(shù)值,這個指令不能單獨使用 可以與以下三個指令結(jié)合使用:
    jsp:include :用于將參數(shù)值出入被導(dǎo)入頁面
    jsp:forword : 用于將參數(shù)值傳入被轉(zhuǎn)向頁面
    jsp:plugin : 用于將參數(shù)值傳入頁面中javaBean的實例

    jsp:include
    (拿目標(biāo)頁面插入原有頁面)該動作是一個動態(tài)的include指令,也用于帶入某個頁面,他不會導(dǎo)入被include頁面的編譯指令,僅僅導(dǎo)入頁面的body內(nèi)容插入到本頁面
    該動作把指定文件插入正在生成的頁面。其語法如下:   flush:用于指定輸出緩存是否轉(zhuǎn)移到被導(dǎo)入的文件中, true:包含在被導(dǎo)入的文件中 false:包含在源文件中
    前面已經(jīng)介紹過include指令,它是在JSP文件被轉(zhuǎn)換成Servlet的時候引入文件,而這里的jsp:include動作不同,插入文件的時間是在頁面被請求的時候。j
    sp:include動作的文件引入時間決定了它的效率要稍微差一點,而且被引用文件不能包含某些JSP代碼(例如不能設(shè)置HTTP頭),但它的靈活性卻要好得多。
    jsp:plugin

    用于下載服務(wù)器端的javaBean或applet到客戶端)
    jsp:plugin動作用來根據(jù)瀏覽器的類型,插入通過Java插件運行Java Applet所必需的OBJECT或EMBED元素。

    <jsp:plugin  
      type="bean | applet"   : 被執(zhí)行的java程序的類型
      code="classFileName" :被執(zhí)行的文件名,必須以  .class 結(jié)尾
      codebase="classFileDirectoryName"   :被執(zhí)行文件的所在目錄
      [ name="instanceName" ] :給程序起一個名字用來標(biāo)識該程序
      [ archive="URIToArchive, ..." ] :指向一些要預(yù)先載入的將要使用到的類
      [ align="bottom | top | middle | left | right" ] :
      [ height="displayPixels" ]
      [ width="displayPixels" ]
      [ hspace="leftRightPixels" ] 
      [ vspace="topBottomPixels" ]
      [ jreversion="JREVersionNumber | 1.1" ]   :能正確運行改程序必須的JRE的版本
      [ nsplug inurl="URLToPlugin" ]  
      [ iepluginurl="URLToPlugin" ] >
      [ <jsp:params>
      [ <jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" /> ]+
      </jsp:params> ]
      [ <jsp:fallback> text message for user </jsp:fallback> ]  :當(dāng)不能正確顯示該Applet時,顯示該指令中的文本提示
     <jsp:plugin>
    



    jsp:useBean
    useBean:用于在jsp頁面中初始化一個java實例(如果多個jsp中需要重復(fù)使用某段代碼,可以把這段代碼定義成java類在頁面中引用)
    jsp:useBean動作用來裝載一個將在JSP頁面中使用的JavaBean。這個功能非常有用,因為它使得我們既可以發(fā)揮Java組件重用的優(yōu)勢,同時也避免了損失JSP區(qū)別于Servlet的方便性。
    jsp:useBean動作最簡單的語法為:<jsp:useBean id=“JavaBean的名稱” class=“package.class"包名.類名” scope=“有效范圍”/>

    這行代碼的含義是:“創(chuàng)建一個由class屬性指定的類的實例,然后把它綁定到其名字由id屬性給出的變量上”。不過,就象我們接下來會看到的,定義一個scope屬性可以讓Bean關(guān)聯(lián)到更多的頁面,它可接受四個值:request、session、page、application。此時,jsp:useBean動作只有在不存在同樣id和scope的Bean時才創(chuàng)建新的對象實例,同時,獲得現(xiàn)有Bean的引用就變得很有必要。
    獲得Bean實例之后,要修改Bean的屬性既可以通過jsp:setProperty動作進(jìn)行,也可以在Scriptlet中利用id屬性所命名的對象變量,通過調(diào)用該對象的方法顯式地修改其屬性。這使我們想起,當(dāng)我們說“某個Bean有一個類型為X的屬性foo”時,就意味著“這個類有一個返回值類型為X的getFoo方法,還有一個setFoo方法以X類型的值為參數(shù)”。  有關(guān)jsp:setProperty動作的詳細(xì)情況在后面討論。但現(xiàn)在必須了解的是,我們既可以通過jsp:setProperty動作的value屬性直接提供一個值,也可以通過param屬性聲明Bean的屬性值來自指定的請求參數(shù),還可以列出Bean屬性表明它的值應(yīng)該來自請求參數(shù)中的同名變量。
    在JSP表達(dá)式或Scriptlet中讀取Bean屬性通過調(diào)用相應(yīng)的getXXX方法實現(xiàn),或者更一般地,使用jsp:getProperty動作。
    注意,包含Bean的類文件應(yīng)該放到服務(wù)器正式存放Java類的目錄下,而不是保留給修改后能夠自動裝載的類的目錄。例如,對于Java Web
    Server來說,Bean和所有Bean用到的類都應(yīng)該放入classes目錄,或者封裝進(jìn)jar文件后放入lib目錄,但不應(yīng)該放到servlets下。
    id:javaBean的實例名 class: javaBean的實現(xiàn)類 scope:指定javaBean實例的生存范圍
    page:javaBean僅在該頁面有效 request:javaBean在本次請求中有效 session:
    javaBean在本次session內(nèi)有效 application:
    javaBean在本應(yīng)用內(nèi)一直有效  下面是一個很簡單的例子,它的功能是裝載一個Bean,然后設(shè)置/讀取它的message屬性。
    關(guān)于jsp:useBean的進(jìn)一步說明   使用Bean最簡單的方法是先用下面的代碼裝載Bean:   <jsp:useBean id=“name” class=“package.class” />
    然后通過jsp:setProperty和jsp:getProperty修改和提取Bean的屬性。 不過有兩點必須注意。   第一,我們還可以用下面這種格式實例化Bean: <jsp:useBean …>   Body   </jsp:useBean>
    它的意思是,只有當(dāng)?shù)谝淮螌嵗疊ean時才執(zhí)行Body部分,如果是利用現(xiàn)有的Bean實例則不執(zhí)行Body部分。正如下面將要介紹的,jsp:useBean并非總是意味著創(chuàng)建一個新的Bean實例。
    第二,除了id和class外,jsp:useBean還有其他三個屬性,即:scope、type、beanName。
    id:命名引用該Bean的變量。如果能夠找到id和scope相同的Bean實例,jsp:useBean動作將使用已有的Bean實例而不是創(chuàng)建新的實例。
    class:指定Bean的完整包名。
    scope:指定Bean在哪種上下文內(nèi)可用,可以取下面的四個值之一:page、request、session和application。  默認(rèn)值是page,表示該Bean只在當(dāng)前頁面內(nèi)可用(保存在當(dāng)前頁面的PageContext內(nèi))。
    request表示該Bean在當(dāng)前的客戶請求內(nèi)有效(保存在ServletRequest對象內(nèi))。
    session表示該Bean對當(dāng)前HttpSession內(nèi)的所有頁面都有效。
    最后,如果取值application,則表示該Bean對所有具有相同ServletContext的頁面都有效。
    scope之所以很重要,是因為jsp:useBean只有在不存在具有相同id和scope的對象時才會實例化新的對象;
    如果已有id和scope都相同的對象則直接使用已有的對象,此時jsp:useBean開始標(biāo)記和結(jié)束標(biāo)記之間的任何內(nèi)容都將被忽略。
    type:指定引用該對象的變量的類型,它必須是Bean類的名字、超類名字、該類所實現(xiàn)的接口名字之一。請記住變量的名字是由id屬性指定的。
    beanName:指定Bean的名字。如果提供了type屬性和beanName屬性,允許省略class屬性。

    jsp:setProperty
    jsp:setProperty用來設(shè)置已經(jīng)實例化的Bean對象的屬性,有兩種用法。
    首先,你可以在jsp:useBean元素的外面(后面)使用jsp:setProperty,    …

    第二種用法是把jsp:setProperty放入jsp:useBean元素的內(nèi)部, …

    jsp:setProperty動作有下面四個屬性:name:表示要設(shè)置屬性的是哪個Bean。  property:表示要設(shè)置哪個屬性。有一個特殊用法:如果property的值是"",表示所有名字和Bean屬性名字匹配的請求參數(shù)都將被傳遞給相應(yīng)的屬性set方法。  value:value屬性是可選的。該屬性用來指定Bean屬性的值。字符串?dāng)?shù)據(jù)會在目標(biāo)類中通過標(biāo)準(zhǔn)的valueOf方法自動轉(zhuǎn)換成數(shù)字、boolean、Boolean、byte、Byte、char、Character。例如,boolean和Boolean類型的屬性值(比如“true”)通過Boolean.valueOf轉(zhuǎn)換,int和Integer類型的屬性值(比如"42")通過Integer.valueOf轉(zhuǎn)換。  value和param不能同時使用,但可以使用其中任意一個。  Param:param是可選的。它指定用哪個請求參數(shù)作為Bean屬性的值。如果當(dāng)前請求沒有參數(shù),則什么事情也不做,系統(tǒng)不會把null傳遞給Bean屬性的set方法。因此,你可以讓Bean自己提供默認(rèn)屬性值,只有當(dāng)請求參數(shù)明確指定了新值時才修改默認(rèn)屬性值。  例如,下面的代碼片斷表示:如果存在numItems請求參數(shù)的話,把numberOfItems屬性的值設(shè)置為請求參數(shù)numItems的值;否則什么也不做。    如果同時省略value和param,其效果相當(dāng)于提供一個param且其值等于property的值。進(jìn)一步利用這種借助請求參數(shù)和屬性名字相同進(jìn)行自動賦值的思想,你還可以在property(Bean屬性的名字)中指定“”,然后省略value和param。此時,服務(wù)器會查看所有的Bean屬性和請求參數(shù),如果兩者名字相同則自動賦值。  下面是一個利用JavaBean計算素數(shù)的例子。如果請求中有一個numDigits參數(shù),則該值被傳遞給Bean的numDigits屬性;numPrimes也類似。  JspPrimes.jsp

    20200321215032100.jpg
    jsp:getProperty
    jsp:getProperty動作提取指定Bean屬性的值,轉(zhuǎn)換成字符串,然后輸出。
    jsp:getProperty有兩個必需的屬性,即:name,表示Bean的名字;property,表示要提取哪個屬性的值。

    END!!!有什么意見可以提出來!
    長路漫漫,JAVA為伴!!!
    ————————————————
    版權(quán)聲明:本文為CSDN博主「福爾摩東」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
    原文鏈接:https://blog.csdn.net/qq_43688587/article/details/105017469

日歷

鏈接

個人資料

藍(lán)藍(lán)設(shè)計的小編 http://www.lapeinture.cn

存檔

麻豆污视频| 国产成人精品综合久久久| 亚欧成人乱码一区二区| 欧美1区| 99热精品一区| 黄色福利片| 欧美α片无限看在线观看免费| 亚洲天堂免费| 日韩专区一区| 精品久久久久久免费影院| 久久成人亚洲| 99久久精品国产免费| 国产视频一区二区在线观看| 精品视频在线观看视频免费视频| 日日爽天天| 日日夜人人澡人人澡人人看免| 日本伦理黄色大片在线观看网站| 台湾毛片| 高清一级淫片a级中文字幕| 日韩一级黄色片| 欧美大片毛片aaa免费看| 久久国产精品永久免费网站| 国产一区二区精品在线观看| 午夜在线影院| 欧美大片毛片aaa免费看| 韩国三级香港三级日本三级la| 国产精品免费久久| 午夜在线亚洲| 四虎影视精品永久免费网站 | 国产成a人片在线观看视频| 国产成人精品影视| 国产成+人+综合+亚洲不卡| 日韩中文字幕一区| 四虎久久影院| 黄视频网站在线免费观看| 欧美国产日韩一区二区三区| 色综合久久天天综合绕观看| 四虎久久影院| 欧美α片无限看在线观看免费| 日本特黄一级| 日韩在线观看免费完整版视频| 精品国产香蕉在线播出| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 日韩中文字幕在线播放| 国产a毛片| 国产成人精品综合久久久| 九九干| 亚洲 国产精品 日韩| 国产视频久久久| 日韩专区第一页| 亚洲女初尝黑人巨高清在线观看| 免费国产在线观看不卡| 国产91素人搭讪系列天堂| 一级片片| 成人高清免费| 九九免费高清在线观看视频| 日韩一级黄色| 免费国产一级特黄aa大片在线| 91麻豆爱豆果冻天美星空| 国产a视频精品免费观看| 日本特黄特色aa大片免费| 国产a视频| 精品毛片视频| 色综合久久天天综线观看| 亚洲精品永久一区| 精品在线观看国产| 夜夜操天天爽| 成人a大片高清在线观看| 一级毛片视频播放| 成人高清视频免费观看| 精品在线观看国产| 91麻豆精品国产自产在线| 精品视频在线观看一区二区三区| 国产美女在线一区二区三区| 国产视频一区在线| 91麻豆高清国产在线播放| 国产a视频| 999精品在线| 午夜欧美成人久久久久久| 成人影视在线观看| 可以在线看黄的网站| 精品在线观看国产| 成人免费高清视频| 91麻豆国产| 国产91丝袜高跟系列| 99久久精品国产麻豆| 91麻豆精品国产自产在线观看一区| 91麻豆国产| 可以在线看黄的网站| 欧美激情一区二区三区在线 | 欧美日本免费| 日本伦理片网站| 亚洲第一色在线| 精品国产三级a∨在线观看| 国产91精品露脸国语对白| 久久精品店| 国产亚洲男人的天堂在线观看| 国产国语对白一级毛片| 国产91丝袜高跟系列| 午夜在线亚洲| 台湾毛片| 日韩专区一区| 91麻豆精品国产高清在线| 午夜欧美成人久久久久久| 美女免费精品高清毛片在线视 | 成人影院久久久久久影院| 亚洲精品影院| 九九久久99| 韩国毛片免费| 四虎影视库| 国产福利免费视频| 国产不卡福利| 久久国产精品自由自在| 日韩在线观看视频网站| 美女免费精品视频在线观看| 日韩综合| 国产麻豆精品| 久久精品免视看国产明星| 999久久狠狠免费精品| 成人a级高清视频在线观看| 国产亚洲男人的天堂在线观看| 91麻豆精品国产高清在线| 四虎影视库国产精品一区| 国产网站免费视频| 欧美另类videosbestsex高清 | 亚洲爆爽| 九九九国产| 免费毛片播放| 日韩中文字幕一区二区不卡| 国产伦精品一区三区视频| 99久久精品国产免费| 精品国产一区二区三区国产馆| 精品毛片视频| 一本高清在线| 日韩av片免费播放| 你懂的日韩| 美女免费黄网站| 在线观看成人网 | 国产麻豆精品| 国产精品自拍在线| 中文字幕一区二区三区精彩视频| 91麻豆精品国产综合久久久| 你懂的福利视频| 青青青草视频在线观看| 欧美爱爱网| 高清一级毛片一本到免费观看| 高清一级片| 国产成人啪精品| 国产a毛片| 国产麻豆精品hdvideoss| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 韩国三级香港三级日本三级la| 四虎影视久久久| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 精品国产三级a| 国产亚洲精品aaa大片| 天天做日日爱| 欧美日本二区| 欧美1区2区3区| 美女免费毛片| 99色播| 成人高清视频免费观看| 二级片在线观看| 日韩在线观看视频黄| 欧美激情一区二区三区中文字幕| 九九久久99综合一区二区| 亚洲www美色| 日韩免费在线| 午夜在线亚洲| 国产韩国精品一区二区三区| 欧美a级片免费看| 精品国产亚洲人成在线| 欧美a免费| 精品国产香蕉伊思人在线又爽又黄| 精品久久久久久中文| 国产一区免费在线观看| 日韩欧美一及在线播放| 99色视频在线观看| a级毛片免费观看网站| 九九久久99| 午夜欧美成人久久久久久| 九九热国产视频| 美女免费黄网站| 国产成人女人在线视频观看 | 91麻豆爱豆果冻天美星空| 美国一区二区三区| 成人在免费观看视频国产| 高清一级做a爱过程不卡视频| 成人高清视频免费观看| 欧美电影免费看大全| 午夜久久网| 日本免费乱理伦片在线观看2018| 国产a视频精品免费观看| 成人影视在线观看| 免费国产在线观看不卡| 免费毛片播放| 九九干| 99久久精品国产麻豆| 日韩专区第一页| 精品国产香蕉伊思人在线又爽又黄|