導航:首頁 > 編程語言 > jsp繼承

jsp繼承

發布時間:2023-08-29 12:52:37

jsp嵌套html代碼,然後直接以html方式輸出代碼

直接以html方式輸出代碼,需要用servlet的out.print輸出。

out對象的類型是JspWriter。JspWriter繼承了java.io.Writer類。

1)print方法是子類JspWriter,write是Writer類中定義的方法;

2)重載的print方法可將各種類型的數據轉換成字元串的形式輸出,而重載的write方法只能輸出字元、字元數組和字元串等與字元相關的數據;

3)JspWriter類型的out對象使用print方法和write方法都可以輸出字元串,但是,如果字元串對象的值為null時,print方法將輸出內容為「null」的字元串,而write方法則是拋出NullPointerException異常。例如:

下面的test.jsp文件

<% String str=null;

out.print(str);

//out.write(str);

%>
##################################
示例一、
<% out.print("<font color='red'>你好,world2!</font>"); %>
<% out.write("<font color='green'>你好,world3!</font>"); %>
瀏覽器輸出結果:

㈡ 哪個屬性可以指明編譯JSP文件時所繼承的類

Jsp包含三個編譯指令和七個動作指令。
三個編譯指令為:page、、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:fallback>text 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

㈢ servlet和jsp之間的關系

1.JSP是Servlet技術的擴展,本質上是Servlet的簡易方式,更強調應用的外表表達。
2.JSP編譯後是"類版servlet"。
3.Servlet和JSP最主要的不權同點在於,Servlet的應用邏輯是在Java文件中,並且完全從表示層中的HTML里分離開來。而JSP的情況是Java和HTML可以組合成一個擴展名為.jsp的文件。JSP側重於視圖,Servlet主要用於控制邏輯。

㈣ JSP中要自定義空標簽,需要繼承什麼類或實現哪些介面

自定義標記有2種 簡單標簽和傳統標簽
簡單標記需要繼承 javax.servlet.jsp.SimpleTagSupport
傳統 javax.servlet.jsp.TagSupport
功能上說傳統標簽的能力要比簡單的強大 但是使用很復雜 基本屬於被淘汰狀態.
使用自定義標記還有寫 .tag文件

㈤ can't find bean preIndexForm in any scope

在動態ActionForm聲明的時候,屬性tpye的值是struts提供的org.apache.struts.action.DynaActionForm
struts會自動調用這個類來進行封裝,所以只要在*.xml文件里配置好就可以了,不用再寫一個繼承ActionForm的類。

動態ActionForm的優點是:如果在頁面上添加了一個request(例如:讓用戶輸入信息的文本框)的話,直接改*.xml文件就可以了,而靜態ActionForm就要再編譯.java文件,重啟伺服器才能有效。

缺點是:不能在*.jsp文件中用EL語句了(${}),如果要在*.jsp頁面上用到form的話,就要在Action類的execute()方法中進行強轉:
DynaActionForm dForm = (DynaActionForm)form;

然後用DynaActionForm中的get()方法,方法中傳<form-property/>標簽中屬性name的值來獲得封裝request的數據。如果頁面多的話,代碼量會非常的大,所以一般在實際項目中都不會用到動態ActionForm。

下面是一個例子:
作用是在struts-config.xml配置了一個動態ActionForm,然後通過Action類把form轉發到頁面上。

struts-config.xml的配置:
<form-bean name="dform" type="org.apache.struts.action.DynaActionForm">
<form-property name="name" type="java.lang.String"/>
</form-bean>

Action類中execute()方法:
DynaActionForm dForm = (DynaActionForm)form;
String dName = (String)dForm.get("name");
request.setAttribute("name",dName);
return mapping.findForward("view");

view.jsp:
${name}

㈥ 請問javaweb開發中的servlet到底怎麼用的它就是一個java類嗎,用繼承它的類可以實現請求轉發

首先要明白,JSP和Servlet都是位於伺服器端,平時我們做開發,自己的機器充當了客戶機和伺服器的雙重角色。在典型的MVC開發模式中,JSP充當了視圖層,Servlet充當控制層,JavaBeen充當模型層。
每一個JSP頁面一般都會對應一個Sevlet,(在web.xml中可以看到有關配置),JSP頁面如果是以post方式發出請求給Servlet,就會調用Servlet中的doPost()方法,如果是以get方式發出請求,就會調用其doGet()方法,一般這兩個方法只具體實現一個,可以在另一個方法調用有具體實現的那個方法。至於JSP頁面是以get方式發出請求,還是以post方式發出請求,最簡單的方式是看地址欄又沒有像?name=xxxx&id=xxxx的鍵值對字元串,如果jsp網頁中包含form表單,還可以看其method屬性是get還是post,不過一般表單都是用post方式提交給後台Servlet。當請求傳給Servlet時,同時也會把相關數據傳過去,這樣才可以在後台獲取這些數據。一般使用request.getParameter()方法
由於Servlet是控制層,顧名思義,它當然可以控制請求的轉發操作。使用request.getRequestDispatcher("xxx,jsp").forward(request,response)
就先說這些吧,要具體說挺多的。我也有段時間沒弄這些了,可能有些單詞沒寫對,不過不影響閱讀,還有什麼不明白的,繼續問。

㈦ Java的類的繼承中,子類與非子類是什麼有什麼區別

1. 繼承,是對有著共同特性的多類事物,進行再抽象成一個類。這個類就是多類事物的父類。父類的意義在於可以抽取多類事物的共性。子類中有和父類中可訪問(可繼承到子類)的同名同返回類型同參數表的方法,就會覆蓋從父類繼承來的方法。
2.(1)standalone applications,或稱為applications:可獨立執行的程序
針對用戶介面的不同,可分為:
a) console application
b) windows application
(2)embedded applications:嵌入式應用程序,必須依附在其它程序里執 行
a)applets:內嵌於網頁並通過網際網路傳遞,在用戶端使用支持Java的瀏 覽器內動態地由伺服器端下載並執行的小程序
b)JSP、Java Servelet:以網頁的形式存在於伺服器端並且通過網路下載 至支持Java的瀏覽器內執行
c)MIDlet:利用J2ME MIDP所開發而成,執行環境為行動電話及PDA等
d)Spotlet:利用J2ME CLDC所開發而成,執行環境為PDA等。
3.FlowLayout,流式布局管。嘗試在一行中按增加順序擺放組件,窗體大小改變時,組件位置會相應發生改變

BorderLayout,按方位進行布局管理,(North,South,East,West,Middle)不明確指定,就會默認載入在中間(Middle),每個部分只能放一個組件

GridLayout,網格布局,通過行列,間距,來用網格分割,把組件放入如網格中,先行後列擺放組件。可以保證每個組件的大小都是一樣的

CardLayout,卡片布局,組件重疊放置。
GridBagLayout,組件可以跨行跨列的網格布局。

Frame的默認布局管理器borderlayout

Panel的默認布局管理就是FlowLayout

閱讀全文

與jsp繼承相關的資料

熱點內容
90版本升級不送 瀏覽:186
工具箱英文 瀏覽:382
南翔嘉定編程課哪裡好 瀏覽:853
win10改變文件格式 瀏覽:475
linux中的物理地址和虛擬地址 瀏覽:493
有哪些app可以接游戲訂單 瀏覽:472
蘋果硬碟數據恢復要多少錢 瀏覽:394
js綁定下拉框資料庫數據 瀏覽:448
cad文件怎麼復制到另一個文件里邊 瀏覽:858
dxp鑽孔文件 瀏覽:631
iphone大悅城換機 瀏覽:538
找結婚對象上什麼網站 瀏覽:974
學生信息管理系統程序設計報告 瀏覽:640
微信文件怎麼刪除怎麼恢復 瀏覽:407
編程程序怎麼復制 瀏覽:467
文件更改 瀏覽:327
冰點文件路徑 瀏覽:730
軟體一點開文件就關閉 瀏覽:88
網路如何把人捧紅 瀏覽:961
軟體傳輸文件 瀏覽:184

友情鏈接