JSP頁面的繼承 extends

2022-05-13 13:27:51 字數 2281 閱讀 2942

1.分析

運用過python django模板的應該清晰,django裡邊有乙個激動人心的功用就是模板能夠運用類的承繼聯絡。 即模板是能夠承繼的,而且不限承繼的層次。

如1. child.html extends base.html

2. grandchild.html extends child.html

這樣,咱們在base.html中界說好html規劃,然後在「子類」(咱們這樣稱號吧)重界說需求父頁面內容即可

2.jsp承繼示例

如今咱們來看jsp中怎麼完成此功用(django與下面的宣告相似)。

父頁面: base.jsp,界說規劃

<%@ taglib uri="" prefix="rapid" %>  

"head">base_head_content  

"content">base_body_content  

子頁面: child.jsp

<%@ taglib uri="" prefix="rapid" %>  

<% //重界說父頁面的內容為content的內容 %>  

"content">  

child_body_content  

<%@ include file="base.jsp" %>  

如上: 咱們運用了兩個jsp tag: block,override,還有<@include >指令.

下面描繪各個功用:

直接拜訪base.jsp輸出:

<

html

>

base_head_content  

<

body

>

<

br/>

base_body_content  

body>  

html>  

拜訪child.jsp輸出:

<

html

>

base_head_content  

<

body

>

<

br/>

child_body_content  

body>  

html>  

能夠看到,child.jsp的的body輸出內容被重界說了.

現該tag能夠完成jsp的無限級的承繼聯絡. 即 grandchild.jsp 承繼 child.jsp , child.jsp承繼 base.jsp 

3.詳細完成方法:

block tag:

public

class blocktag extends tagsupport  

@override

public

int dostarttag() throws jspexception   

@override

public

int doendtag() throws jspexception   

try  catch (ioexception e)   

return eval_page;  

}  private string getoverriedcontent()   

}  override tag:

public

class overridetag extends bodytagsupport  

@override

public

int dostarttag() throws jspexception   

@override

public

int doendtag() throws jspexception   

bodycontent b = getbodycontent();  

string varname = utils.getoverridevariablename(name);  

pagecontext.setattribute(varname, b.getstring());  

return eval_page;  

}  private

boolean isoverrided()   

}  東西類:

class utils   

}  能夠看到,完成**不需求100行,重要是的完成竅門,由此,你從此能夠拋棄運用sitemesh. 而且如上完成方法具有更高功用。

而且筆者也擴大了freemarker模板,經過自界說指令,完成如上一樣的功用。

jsp頁面的位址

1 是jsp取得絕對路徑的方法,等價於 也就是取出部署的應用程式名或者是當前的專案名稱 比如我的專案名稱是demo1在瀏覽器中輸入為 http localhost 8080 demo1 a.jsp 或取出來的就是 demo1,而 代表的含義就是http localhost 8080 故有時候專案中這...

jsp頁面的base標籤

我們在用ide工具生成jsp頁面時通常都包含下面的兩段 string path request.getcontextpath string basepath request.getscheme request.getservername request.getserverport path 它們絕對...

JSP頁面的執行過程

當客戶端瀏覽器,向伺服器發出訪問乙個jsp頁面的請求時 伺服器根據該請求載入相應的jsp頁面,並對該頁面進行編譯,然後執行 1 客戶端通過瀏覽器,向伺服器發出請求,在該請求中包含了請求的資源和路徑,這樣,當伺服器接收到該請求後,就可以知道被請求的資源 2 伺服器根據接收到的客戶端的請求,來載入被請求...