jsp指令編譯,jsp操作指令

本文目錄一覽:

如何編譯jsp

保存時選文件類型選”所有文件”,

然後文件名要加上”.jsp”,

如果你只有一個jsp文件的話,

放到tomcat的webapps下的root下,

然後啟動tomcat,

然後在瀏覽器運行

jsp編譯過程是什麼樣的

每一個JSP頁面都會被Web容器編譯成一個Java類,供web容器調用,並且生成HTML葉面回饋給用戶。而了解其中的變異方法和規則,對我們學習JSP是非常有好處的,可以說學習好了這個編譯原理,就已經學習好了大部分的JSP知識,剩下的工作就只剩下熟記一些tablib和反覆應用以使自己更加熟練而已了JSP會被編譯成.java放Tomcat/work/Catalina/localhost/***/org/apache/jsp/page

然後編譯成.classjsp = java + html

servlet = java + out.print(html)

1.客戶端發送請求給web容器

2.web容器將jsp首先轉譯成servlet源代碼

3.web容器將servlet源代碼編譯成.class 文件

4.web容器執行.class 文件

5.web容器將結果響應給客戶端

第二個問題,會.

參考資料:

JSP的三個編譯指令

1、JSP的編譯指令是同志引擎的消息,它不直接生成輸出。編譯指令都有默認值,因此開發人員無須為每個指令設置值。常見的編譯指令:

     page:該指令是針對當前頁面的指令

     include:用於指定包含另一個頁面

     taglib:用於定義和訪問自定義標籤

     使用編譯指令語法格式:%@ 編譯指令名 屬性名=”屬性值”…%

2、page指令

     page指令位於JSP頁面的頂端,一個JSP頁面可以使用多條page指令。page指令屬性:

     language:聲明當前JSP頁面使用的腳本語言的種類,因為頁面是JSP頁面,所以通常都是java,默認值也是java,所以通常無須設置。

     extends:指定JSP頁面編譯所產生的Java類所繼承的父類,或所實現的接口。

     import:用來導入包。默認導入的包:java.lang.*,javax.servlet.*、javax.servlet.jsp.*、javax.servlet.http.*。

     session:設定這個JSP頁面是否需要HTTP Session。

     buffer:指定輸出緩衝區的大小。輸出緩衝區的JSP內部對象:out用於緩存JSP頁面對客戶瀏覽器的輸出,默認值為8KB,可設為none。

     autoFlush:當輸出緩衝區即將溢出時,是否需要強制輸出緩衝區內容。true時輸出,false會在buffer溢出時產生一個異常。

     info:設置該JSP程序的信息,也可以看作其說明,可通過Servlet.getServletInfo()方法獲取該值。

     errorPage:指定錯誤處理頁面。

     isErrorPage:設置本JSP頁面是否為錯誤處理程序。

     contentType:用於設定生成網頁的文件格式和編碼字符集,即MIME類型和頁面字符集類型,默認的MIME類型是text/html,默認的字符集是ISO-8859-1。

     pageEncoding:指定生成網頁的編碼字符集。

註:因為JSP內建了異常機制支持,所以JSP可以不處理異常,即使是checked異常。

3、include指令:可以將一個外部文件嵌入到JSP文件中,同時解析這個頁面的JSP語句。include既可以包含靜態的文本,也可以包含動態的JSP頁面。語法格式:%@include file=”relativeURLSpec”%

如果嵌入的文件經常改變,建議使用操作指令,因為它是動態的include語句。

需要注意的是,靜態包含還會將被包含頁面的編譯指令也包含進來,如果兩個頁面的編譯指令衝突,那麼頁面就會報錯。

jsp如何編譯

下載tomcat

將在tomcat/webapps/

下建立文件夾如test

將file.jsp放入test下

tomcat的bin目錄中打開startup(開服務器)

再打開IE

輸入

一般就可以了

如果是servlet 的話

還要編寫web.xml部署

具體的你找書看吧

jsp的常用指令,jsp的指令有什麼作用

Jsp包含三個編譯指令和七個動作指令。

三個編譯指令為:page、include、taglib。

七個動作指令為:jsp:forward、jsp:param、jsp:include、jsp:plugin、jsp:useBean、jsp:setProperty、jsp:getProperty。

一、編譯指令

1、 page指令

a. 通常位於jsp頁面的頂端,同一個頁面可以有多個page指令。語法格式如下:

〈% @page

[language=”Java”]

[extends=”package.class”]

[import= “package. class I package. *},…”]

[session=”true I false”]

[buffer=”none I 8kb I size kb” 1

[autoFlush=”true I false”]

[isThreadSafe=”true I false”]

[info=”text”]

[errorPage=”relativeURL”]

[contentType=”mimeType[ ;charset=characterSet]” I”text/html;charset= “808859-1”]

[isErrorPage=” true I false”]

%〉

1)language屬性,一般情況就是java,代表jsp頁面使用的腳本語言。

2)Extends屬性,確定 JSP 程序編譯時所產生的 Java 類,需要繼承的父類,或者需要實現的接口的全限定類名。

1.import屬性,用來導入包,下面幾個包是默認自動導入的,不需要顯式導入。默認導入的包有:

java.lang.*

javax.servlet.*

javax.servlet.jsp.*

javax.servlet.http.*

2.Session屬性,設定這個 JSP 頁面是否需要 HTIP session 。

3.buffer屬性,指定輸出緩衝區的大小。輸出緩衝區的 JSP 內部對象: out 用於緩存 JSP頁面對客戶瀏覽器的輸出,默認值為 8kb,可以設置為 none ,也可以設置為其他值,單位為kb

4.autoFlush屬性,當輸出緩衝區即將溢出時,是否需要強制輸出緩衝區的內容。設置為true 時為正常輸出;如果設置為 false ,會在 buffer 溢出時產生一個異常。

5.Info屬性,設置該 JSP 程序的信息,也可以看做其說明,可以通過 Servlet. getServletInfo()方法獲取該值。如果在 JSP 頁面中,可直接調用 getServletInfoO方法獲取該值,因為 JSP 頁面的實質就是 Servlet 。

errorPage屬性,指定錯誤處理頁面。如果本程序產生了異常或者錯誤,而該 JSP 頁面沒有對應的處理代碼,則會自動調用該指令所指定的 JSP 頁面。使用 JSP 頁面時,可以不處理異常,即使是 checked 異常。(重定向到對應的錯誤處理頁面,但是URL還是原來的URl,並不發生變化)如果這個頁面不存在這個屬性,那麼一旦代碼出現問題,就會在開發環境和IE瀏覽器上提示錯誤。可見這條屬性控制異常處理的效果在表現形式上要好的多。

6.IsErrorPage屬性,設置本 JSP 頁面是否為錯誤處理程序。如果該頁面本身己是錯誤處理頁面,則無須使用 errorPage 屬性。

7.ContentType屬性,用於設定生成網頁的文件格式和編碼方式,即 MIME 類型和頁面字符集類型,默認的 MIME 類型是 text/html; 默認的字符集為 ISO-8859-1 。

2、 include指令

使用 include 指令,可以將一個外部文件嵌入到當前 JSP 文件中,同時解析這個頁面中的 JSP 語句(如果有的話)。這是個靜態的 include 語旬,不會檢查所包含 JSP 頁面的變化。

include 既可以包含靜態的文本,也可以包含動態的 JSP 頁面。靜態的編譯指令include ,是將被包含的頁面加入進來,生成一個完整的頁面。

include 編譯指令的語法:

〈% @include file=”relativeURLSpec” %〉

如果被嵌入的文件經常需要改變,建議使用jsp:include操作指令,因為它是動態的 include 語句。

包含include指令的jsp頁面在部署後,經過訪問編譯生成java文件,在tomcat的 work\Catalina\localhost\project\org\apache\jsp目錄下會生成對應的java文件,這些文件與jsp的名字相同,他包含了編譯後的代碼,甚至include包含的另外一個jsp的代碼也被相應的加入了進來。

二、 動作指令

1、 forward指令:forward 指令用於將頁面響應控制轉發給另外的頁面。既可以轉發給靜態的 HTML頁面,也可以轉發到動態的 JSP 頁面,或者轉發到容器中的 Servlet。

JSP 的 forward 指令的格式如下:

對於 JSP 1. 0 ,使用如下語法:

jsp:forward page=」{relativeURL |%=expression%}」 /

可使用如下語法:

jsp:forward page=」{relativeURL |%=expression%}」

{jsp:param…/}

/jsp:forward

第二種語法用於在轉發時增加額外的請求參數。增加的請求參數的值可以通過HttpServletRequest 類的 getParameter方法獲取。

2、 include指令,它是一個動態的指令,可以用於導入某個頁面。它的導入會每次檢查被導入頁面的改變。下面是include指令的使用格式:

jsp:include page=」{relativeURL |%=expression%}」 flush=」true」 /

或者:

jsp:include page=」{relativeURL |%=expression%}」 flush=」true」

jsp:param name=」paramName」 value=」paramValue」/

/jsp:include

flush 屬性用於指定輸出緩存是否轉移到被導入文件中。如果指定為劇。則包含在被導入文件中;如果指定為false,則包含在原文件中。對於JSP 1.1以下的舊版本,只能設置為false。

include和jsp:include分別為靜態導入和動態導入。他們的的區別:靜態導入是將被導入頁面的代碼完全插入,兩個頁面生成一個整體的 Servlet; 而動態導入則在 Servlet 中使用動態導入,從而將頁面引入。

3、 useBean、setProperty和getProperty指令

這三個指令都是與JavaBean相關的指令,其中useBean用於在jsp頁面初始化一個java實例,setProperty用於修改JavaBean實例的屬性,getProperty用於獲取JavaBean實例的屬性。

useBean的語法格式:

jsp:useBean id=」」 class=」」 scope=」page | request |session | application」

Id是JavaBean的實例名,class屬性確定JavaBean的實現類。Scope屬性確定生存範圍【頁面、請求、會話、應用】

setProperty的語法格式:

jsp:setProperty name=」」 property=」」 value=」」 /

Name屬性確定需要設定

4、 plugin指令

plugin 指令主要用於下載服務器端的 JavaBean 或 Applet 到客戶端執行。由於程序在客戶端執行,因此客戶端必須安裝虛擬機。

plugin 的語法格式如下:

jsp:plugin type=」bean | applet”

code=”classFileName”

codebase=”classFileDiretoryName”

[name=” instanceName”]

[archive=”URLtoArchive”]

[align= “bottom I top I middle I left I right”]

[heigh=”displayPixels”]

[width=”displayPixels”]

[hspace=”leftRightPixels”]

[vspace=”topBottomPiexels”]

[jreversion=JREVersionNumber|1.2″]

[nspluginurl=”URLToPlugin”]

[iepluginurl=”URLToPlugin”]

[jsp:parames

[jsp:param name=”parameterName” value=”parameterValue” /]

/jsp:params]

[jsp:fallbacktext message for user that can no see the plugin

/jsp:fallback ]

/jsp:plugin

這些屬性的說明如下:

Type: 指定被執行的java程序的類型,是一個bean還是一個applet

Code: 指定被執行的文件名,該屬性值必須以「.class」擴展名結尾

Codebase: 指定被執行的文件目錄。

Name: 給該程序起一個名字用來標識該程序。

Archive: 指向一些要預先載入的將要使用到的類的路徑。

Hspace,Vspace: 顯示左右上下的留白。

jreversion: 能正確運行改程序必須的JRE版本。

Nsplugin,ieplugin: Netscape Navigator, Internet Exploer 下載運行所需JRE 的地址。

jsp:fallback指令:當不能正確顯示該applet時,代替顯示的提示信息。

5、 param指令

param指令用於設置參數值,這個指令本身不能單獨使用,因為單獨使用沒有意義。它可以和以下幾個指令合起來使用

jsp:include

jsp:forward

jsp:plugin

在jsp程序中只有3種編譯指令,分別是加載指令,標記數據庫指令和什麼

兩者的作用都是處理所需要的文件,但處理方式和處理時間不同。

include指令標記是在編譯階段就處理所需要的文件,被處理的文件在邏輯和語法上依賴於當前的jsp頁面,優點是執行速度快。

include動作標記在jsp頁面運行時才被處理的文件,被處理的文件在邏輯和語法上獨立與當前的JSP頁面,其優點是可以使用param子標記更靈活的處理所需要的文件,缺點是執行要慢一點

原創文章,作者:PTMS,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/140402.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
PTMS的頭像PTMS
上一篇 2024-10-04 00:23
下一篇 2024-10-04 00:23

相關推薦

  • Python棧操作用法介紹

    如果你是一位Python開發工程師,那麼你必須掌握Python中的棧操作。在Python中,棧是一個容器,提供後進先出(LIFO)的原則。這篇文章將通過多個方面詳細地闡述Pytho…

    編程 2025-04-29
  • Python操作數組

    本文將從多個方面詳細介紹如何使用Python操作5個數組成的列表。 一、數組的定義 數組是一種用於存儲相同類型數據的數據結構。Python中的數組是通過列表來實現的,列表中可以存放…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • Python代碼實現迴文數最少操作次數

    本文將介紹如何使用Python解決一道經典的迴文數問題:給定一個數n,按照一定規則對它進行若干次操作,使得n成為迴文數,求最少的操作次數。 一、問題分析 首先,我們需要了解迴文數的…

    編程 2025-04-29
  • Python磁盤操作全方位解析

    本篇文章將從多個方面對Python磁盤操作進行詳細闡述,包括文件讀寫、文件夾創建、刪除、文件搜索與遍歷、文件重命名、移動、複製、文件權限修改等常用操作。 一、文件讀寫操作 文件讀寫…

    編程 2025-04-29
  • Python元祖操作用法介紹

    本文將從多個方面對Python元祖的操作進行詳細闡述。包括:元祖定義及初始化、元祖遍歷、元祖切片、元祖合併及比較、元祖解包等內容。 一、元祖定義及初始化 元祖在Python中屬於序…

    編程 2025-04-29
  • 如何用Python對數據進行離散化操作

    數據離散化是指將連續的數據轉化為離散的數據,一般是用於數據挖掘和數據分析中,可以幫助我們更好的理解數據,從而更好地進行決策和分析。Python作為一種高效的編程語言,在數據處理和分…

    編程 2025-04-29
  • Python列表的讀寫操作

    本文將針對Python列表的讀取與寫入操作進行詳細的闡述,包括列表的基本操作、列表的增刪改查、列表切片、列表排序、列表反轉、列表拼接、列表複製等操作。 一、列表的基本操作 列表是P…

    編程 2025-04-29
  • Python序列的常用操作

    Python序列是程序中的重要工具,在數據分析、機器學習、圖像處理等很多領域都有廣泛的應用。Python序列分為三種:列表(list)、元組(tuple)和字符串(string)。…

    編程 2025-04-28
  • Python獲取Flutter上內容的方法及操作

    本文將從以下幾個方面介紹Python如何獲取Flutter上的內容: 一、獲取Flutter應用數據 使用Flutter提供的Platform Channel API可以很容易地獲…

    編程 2025-04-28

發表回復

登錄後才能評論