當前位置:首頁 » 網頁前端 » velocityweb應用
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

velocityweb應用

發布時間: 2023-05-16 03:28:30

1. jquery怎麼使用velocity

Velocity的基本用法<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Velocity概述

Velocity是一個基於java的模板引擎(template engine)。它允許任何人僅僅簡單的使用模板語言(template language)來引用由java代碼定義的對象。當Velocity 應用於web開發時,界面設計人員可以和java程序開發人員同步開發一個遵循MVC架構的web站點,也就是說,頁面設計人員可以只關注頁面的顯示效果,而由java程序開發人員關注業務邏輯編碼。Velocity將java代碼從web頁面中分離出來,這樣為web站點的長期維護提供了便利,同時也 為我們在JSP和PHP之外又提供了一種可選的方案。
Velocity的能力遠不止web站點開發這個領域,例如,它可以從模板 (template)產生sql和PostScript、XML,它也可以被當作一個獨立工具來產生源代碼和報告,或者作為其他系統的集成組件使用。 Velocity也可以為Turbine web開發架構提供模板服務(template service)。Velocity+Turbine提供一個模板服務的方式允許一個web應用以一個真正的MVC模型進行開發。

一、基本語法

1、"#"用來標識Velocity的腳本語句,包括#set、#if 、#else、#end、#foreach、#end、#include、#parse、#macro等;
如:
#if($info.imgs)
<img src="$info.imgs" border=0>
#else
<img src="noPhoto.jpg">
#end

2、"$"用來標識一個對象(或理解為變數);如:$i、$msg、$TagUtil.options(...)等。

3、"{}"用來明確標識Velocity變數;
比如在頁面中,頁面中有一個$someonename,此時,Velocity將把someonename作為變數名,若我們程序是想在someone這個變數的後面緊接著顯示name字元,則上面的標簽應該改成${someone}name。

4、"!"用來強制把不存在的變數顯示為空白。
如當頁面中包含$msg,如果msg對象有值,將顯示msg的值,如果不存在msg對象同,則在頁面中將顯示$msg字元。這是我們不希望的,為了把不存在的變數或變數值為null的對象顯示為空白,則只需要在變數名前加一個「!」號即可。
如:$!msg

二、在EasyJWeb中的最佳實踐

理論上你可以在EasyjWeb模板使用所有Velocity的腳本及功能,但我們不推薦你在界面模板中使用過多過復雜的腳本表達方式,在萬不得已的情況下,不要在界面模板中加入任何復雜的邏輯,更不要在界面模板中加入變數聲明、邏輯運算符等等。
1、$!obj 直接返回對象結果。
如:在html標簽中顯示java對象msg的值。<p>$!msg</p>
在html標簽中顯示經過HtmlUtil對象處理過後的msg對象的值<p>$!HtmlUtil.doSomething($!msg)</p>

2、#if($!obj) #else #end 判斷語句
如:在EasyJWeb各種開源應用中,我們經常看到的用於彈出提示信息msg的例子。
#if($msg)
<script>
alert('$!msg');
</script>
#end
上面的腳本表示當對象msg對象存在時,輸出<script>等後面的內容。

3、#foreach( $info in $list) $info.someList #end循環讀取集合list中的對象,並作相應的處理。
如:EasyJF開源論壇系統中論(0.3)壇首頁顯示熱門主題的html界面模板腳本:
#foreach( $info in $hotList1)
<a href="/bbsdoc.ejf?easyJWebCommand=show&&cid=$!info.cid"
target="_blank">$!info.title</a><br>
#end
上面的腳本表示循環遍歷hotList1集合中的對象,並輸出對象的相關內容。
4、#macro(macroName)#end 腳本函數(宏)調用,不推薦在界面模板中大量使用。 Velocity中的宏我們可以理解為函數。 ①宏的定義 #macro(宏的名稱 $參數1 $參數2 …) 語句體(即函數體) #end
②宏的調用 #宏的名稱($參數1 $參數2 …)
說明:參數之間用空格隔開。
如:在使用EasyJWeb Tools快速生成的添刪改查示例中,可以點擊列表的標題欄進行升降排序顯示,這是我們在EasyJWeb應用中經常看到的一個排序狀態顯示的模板內容。
函數(宏)定義,一般放在最前面
#macro(orderPic $type)
#if ($orderField.equals($type))
<img src="http://images.cnblogs.com/ico/${orderType}.gif">
#end
#end
具體的調用如:<font color="#FFFFFF">頭銜#orderPic("title")</font>

5、包含文件#inclue("模板文件名")或#parse("模板文件名")
主要用於處理具有相同內容的頁面,比如每個網站的頂部或尾部內容。
如:#parse("/blog/top.html")或#include("/blog/top.html")
區別:
1 若包含的文件中有Velocity腳本標簽,將會進一步解析,而include將原樣
顯示。
2 #parse只能指定單個對象。而#include可以有多個
示範代碼:
#include ("one.gif", "two.txt", "three.htm" )
#parse ("parsefoo.vm")
三、關於#set的使用

在萬不得已的時候,不要在頁面視圖自己聲明Velocity腳本變數,也就是盡量少使用#set。有時候我們需要在頁面中顯示序號,而程序對象中又沒有包含這個序號屬性同,可以自己定義。如在一個循環體系中,如下所示:
#set ($i=0)
#foreach($info in $list)
序號:$i
#set($i=$i+1)
#end

四、Velocity腳本語法摘要

聲明:#set ($var=XXX)
變數引用,字面字元串,屬性引用,方法引用,字面數字,數組列表。
#set( $monkey = $bill ) ## variable reference
#set( $monkey.Friend = "monica" ) ## string
#set( $monkey.Blame = $whitehouse.Leak ) ## property reference
#set( $monkey.Plan = $spindoctor.weave($web) ) ## method reference
#set( $monkey.Number = 123 ) ##number
#set( $monkey.Say = ["Not", $my, "fault"] ) ## ArrayList
算術運算符
#set ( $foo = $bar + 3 ) #set ( $foo = $bar - 4 ) #set ( $foo = $bar * 6 ) #set ( $foo = $bar / 2 )

2、注釋:
單行## XXX
多行#* xxx
xxxx
xxxxxxxxxxxx*#

References 引用的類型
3、變數 Variables
以 "$" 開頭,第一個字元必須為字母。character followed by a VTL Identifier. (a .. z or A .. Z).
變數可以包含的字元有以下內容:
alphabetic (a .. z, A .. Z)
numeric (0 .. 9)
hyphen ("-")
underscore ("_")

4、Properties
$Identifier.Identifier
$user.name
hashtable user中的的name值.類似:user.get("name")

5、Methods
object user.getName() = $user.getName()

6、Formal Reference Notation
用{}把變數名跟字元串分開


#set ($user="csy"}
${user}name
返回csyname

$username
$!username
$與$!的區別
當找不到username的時候,$username返回字元串"$username",而$!username返回空字元串""

7、雙引號 與 引號
#set ($var="helo")
test"$var" 返回testhello
test'$var' 返回test'$var'
可以通過設置 stringliterals.interpolate=false改變默認處理方式

8、條件語句
#if( $foo )
<strong>Velocity!</strong>
#end
#if($foo)
#elseif()
#else
#end
當$foo為null或為Boolean對象的false值執行.

9、邏輯運算符:== && || !

10、循環語句#foreach($var in $arrays ) // 集合包含下面三種Vector, a Hashtable or an Array
#end
#foreach( $proct in $allProcts )
<li>$proct</li>
#end

#foreach( $key in $allProcts.keySet() )
<li>Key: $key -> Value: $allProcts.get($key)</li>
#end

#foreach( $customer in $customerList )
<tr><td>$velocityCount</td><td>$customer.Name</td></tr>
#end
語句的嵌套 #foreach ($element in $list) ## inner foreach 內循環 #foreach ($element in $list) This is $element. $velocityCount <br>inner<br> #end ## inner foreach 內循環結束 ## outer foreach This is $element. $velocityCount <br>outer<br> #end

11、velocityCount變數在配置文件中定義
# Default name of the loop counter
# variable reference.
directive.foreach.counter.name = velocityCount
# Default starting value of the loop
# counter variable reference.
directive.foreach.counter.initial.value = 1

12、包含文件
#include( "one.gif","two.txt","three.htm" )

13、Parse導入腳本
#parse("me.vm" )

14、#stop 停止執行並返回
停止執行模板引擎並返回,把它應用於debug是很有幫助的。

15、定義宏Velocimacros ,相當於函數 支持包含功能
#macro( d )
<tr><td></td></tr>
#end
調用
#d()

16、帶參數的宏
#macro( tablerows $color $somelist )
#foreach( $something in $somelist )
<tr><td bgcolor=$color>$something</td></tr>
#end
#end

17、Range Operator
#foreach( $foo in [1..5] )

18、轉義字元
如果reference被定義,兩個』\』意味著輸出一個』\』,如果未被定義,剛按原樣輸出。 #set($email = "foo" ) $email \$email \\$email \\\$email
輸出: foo $email....

2. web前後端的區別

詳細的解釋一下web前後端的區別

1、

前台:呈現給用戶的視覺和基本的操作。

後台:用戶瀏覽網頁時,我們看不見的後台數據跑動。後台包括前端、後端。

前端:對應我們寫的html、css、javascript等網頁語言作用在前端網頁。

後端:對應jsp、javaBean、層、action層和service層的業務邏輯代碼。(包括資料庫

為什麼jsp是後端呢?主要是jsp的運行原理是在tomcat伺服器運行的。

2、

(1)javaweb是java開發中的一個方向java有搞安卓的,搞web的,搞嵌入式的等。javaweb就是指搞web方向的,javaweb分兩塊,一塊是伺服器端叫後端,另一塊叫前端,也就是web前端。前端就是用戶能看到的部分,比如淘寶網,qq空間,網頁上你能看到的都是web前端做的。後端做的就是為前端的展示業務邏輯功能做處理。

(2)javaweb包括了jsp,servelt以及一些框架比如spring,structs以及與資料庫交互的知識,當然也涉及到了html,css等前端技術,但是更側重於後端的開發。web前端主要是html,css,javascript之類的技術。

jaweb是javaee的一個方向,Javaweb,由前端、Java代碼、和資料庫三個大方面組成,前端只是其中之一。

(3)在我們的機子上看到的界面,安裝的程序,給用戶看的,操作的就是前端;而你看不到的,幫你保存網路游戲數據,保存應用數據,處理數據的就是後端(伺服器)。比如說:我們在用的知乎就是前端,而保存這個問題,還有把這個問題推送給你的就是後端。

二、定義不同

一般來說,我們將網站分為前端和後端。前端主要負責頁面的展示,後端則是業務邏輯的實現。

1、Web前端:

顧名思義是來做Web的前端的。這里所說的前端泛指Web前端,也就是在Web應用中用戶可以看得見碰得著的東西。包括Web頁面的結構、Web的外觀視覺表現以及Web層面的交互實現。

2、Web後端:

後端更多的是與資料庫進行交互以處理相應的業務邏輯。需要考慮的是如何實現功能、數據的存取、平台的穩定性與性能等。

三、需要掌握的技術不同

1、Web前端:

精通JS,能熟練應用JQuery,懂CSS,能熟練運用這些知識,進行交互效果的開發。

(1)精通HTML,能夠書寫語義合理,結構清晰,易維護的HTML結構;

(2)精通CSS,能夠還原視覺設計,並兼容業界承認的主流瀏覽器;

(3)熟悉JavaScript,了解ECMAScript基礎內容,掌握1-2種js框架,如JQuery;

(4)對常見的瀏游乎覽器兼容問題有清晰的理解,並有可靠的解決方案;

(5)對性能有一定的要求,了解yahoo的性能優化建議,並可以在項目中有效實施。

2、Web後端:

後端開發人員:會寫Java代碼,會寫SQL語句,能做簡單的資料庫設計,會Spring和iBatis,懂一些設計模式等。

(1)精通jsp,servlet,javabean,JMS,EJB,Jdbc,Flex開發,或者對相關的工具、類庫以及框架非常熟悉,如Velocity,Spring,Hibernate,iBatis,OSGI等,對Web開發的模式有較深神乎悉的理解;

(2)練使用oracle、sqlserver、mysql等常用的資料庫系統,對資料庫有較強的設計能力;

(3)熟悉maven項目配置管理工具,熟悉tomcat、jboss等應用伺服器,同時對在高並發處理情況下的負載調優有相關經驗者優先考慮;

(4)精通面向對象分析和設計技術,包括設計模式、UML建模等;

(5)熟悉網路編程,具有設計和開發頃叢對外API介面經驗和能力,同時具備跨平台的API規范設計以及API高效調用設計能力。

四、web後端和前端是怎麼連接的?

1、web伺服器(apache、tomcat等),網路協議(http、socket等),瀏覽器(chrome、FF、IE等)。瀏覽器發起建立連接請求,通過網路協議與伺服器建立連接,伺服器保持連接,獲取瀏覽器想要的數據,伺服器通過連接返回內容給瀏覽器,瀏覽器把數據呈現出來。

2、連接的協議一般是http,也有websocket。伺服器以服務的方式存在,就像外賣店,你打個電話過去,人家就把飯菜送上門來了。

3、web伺服器訪問資料庫一樣要使用網路連接,埠只是開放服務的入口而已,就像外賣的電話。

五、JavaWeb與web前端的區別?

1、web前端,主要是給網站做靜態頁面的,也就是說你平時瀏覽的網站所看到的頁面基本都出自web前端,不過網站版面可以是美工出圖。

web前端需要掌握的技術有:DIVCSS,j,jQuery更高一層的是可以去使用一些框架去網站頁面。這樣的框架也有很多。如Bootstrap,UIkit,Kube等等。

2、javaweb一般涉及到前端。而web前端開發只是有可能涉及到java。

前端開發一般只涉及到js,html,css,有些可能會用flash,photoshop這些。框架就jquery,ext,jodo等這些。

web前端的話他的後端可能是java,也可能是.net或者php等都可能,但javaweb可以確定後端就是java,web前端其實都一樣。

前端和Javaweb的區別更多的在於一個主要負責前端的設計和效果,而Javaweb更專注於後端的內容。

3、剛開始從事web開發時,首先要選准學習方向,看是想從事前端部分還是後端程序部分。當然在工作的後期,就不會分的那麼細致了。做前端到後期也會懂一些後端的技術,反之,後端也是。

六、學習Web前端開發都需要掌握哪些技能?

1、學習html。這個是最簡單的,也是最基礎的.要熟練掌握div、formtable、ulli、p、span、font這些標簽,這些都是最常用的,特別是div和table,div用於布局、table也可以用於布局,但是不靈活,基本table是用來和數據打交道。

2、學習css。這里說的css不包括css3,一般我們看到web前端開發工程師的要求裡面,有一個會使用csshtml或者cssdiv來進行界面布局,所以css是用於輔助html來布局和展示的,我們稱之為「css樣式」,為什麼會說cssdiv呢?因為我上面說了div就是html主要用於布局的東西,所以div就是核心掌握的東西!那麼css肯定必須要配合div來使用才好.css要熟練掌握float、position、width、height,以及對於的最大最小、會使用百分百、overflow、margin、padding等等,這些都是跟布局有關系的樣式,一點要掌握。

3、學習js。可能前兩個大家覺得還過的去,看到js就傻眼了,其實吧,js入門很簡單的,不需要會很多東西的,只要會根據某個id、或者name拿到網頁dom或者樣式、或者值,然後會給某個id或者name的元素標簽賦值、或者追加數據、追html,這個是跟數據有關系的操作,然後數據邏輯判斷,效果方面的,無非就是跳轉、彈框、隱藏什麼的,把這些全部結合其他就是實際用途了,代碼一點都不難,會了這些基礎js,其他的直接網路就好了.然後看多了,用多了,就什麼都不是問題了。

4、學習jquery。jquery是相當於把js封裝了一套的一個js插件,目的就是操作起來更方便,代碼寫的更少,jquery入門也很簡單,那些是入門需要學的和js一樣,只是換成了jq的代碼.其他的一樣網路就夠了。

5、最好會點後台語言,比如java、php,為什麼呢?因為前台界面的數據都是從後台來的,如果會點後台代碼,就知道怎麼跟後台交互數據是最好的,這樣節約時間,也可以讓前端代碼更規范.不然可能因為你的寫法和後端給來的數據不能結合上,那麼前端代碼又得重新寫,那就更加麻煩了。

6、學習css3html5,可能這個對於更接手的新人來說有點困難,需要較強的代碼知識與經驗,但是如果你們是准備專門搞前端,那麼最好還是學一下,這樣對於將來的工作會有更大的幫助。

七、從事Java後端開發都需要掌握哪些技能?

對於初學Java並且有志於後端開發的同學來說,需要重點關注以下幾個部分:

1、基礎:比如計算機系統、演算法、編譯原理等等

2、Web開發:主要是Web開發相關的內容,包括HTML/CSS/js(前端頁面)、Servlet/JSP(J2EE)以及MySQL(資料庫)相關的知識。它們的學習順序應該是從前到後,因此最先學習的應該是HTML/CSS/JS(前端頁面)。還有一些前段框架比如easyui,還有js,jquery等技術。

3、J2EE:你需要學習的是Servlet/JSP(J2EE)部分,這部分是Java後端開發必須非常精通的部分,因此這部分是這三部分中最需要花精力的。關於Servlet/Jsp部分視頻的選擇,業界比較認可馬士兵的視頻。4、資料庫:你需要學會使用資料庫,mysql是個不錯的入門選擇,而且Java領域里主流的關系型資料庫就是mysql。這部分一般在你學習Servlet/Jsp的時候,就會接觸到的,其中的JDBC部分就是資料庫相關的部分。你不僅要學會使用JDBC操作資料庫,還要學會使用資料庫客戶端工具,比如navicat,sqlyog,二選一即可。

5、開發框架:目前比較主流的是SSM框架,即spring、springmvc、mybatis。你需要學會這三個框架的搭建,並用它們做出一個簡單的增刪改查的Web項目。你可以不理解那些配置都是什麼含義,以及為什麼要這么做,這些留著後面你去了解。但你一定要可以快速的利用它們三個搭建出一個Web框架,你在搭建SSM的過程中,可能會經常接觸到一個叫maven的工具。這個工具也是你以後工作當中幾乎是必須要使用的工具,所以你在搭建SSM的過程中,也可以順便了解一下maven的知識。在你目前這個階段,你只需要在網路上了解一下maven基本的使用方法即可,一些高端的用法隨著你工作經驗的增加,會逐漸接觸到的。

6、你需要去看一些JDK中的類的源碼,也包括你所使用的框架的源碼。這些源碼能看懂的前提是,你必須對設計模式非常了解。否則的話,你看源碼的過程中,永遠會有這樣那樣的疑問,這段代碼為什麼要這么寫?為什麼要定義這個介面,它看起來好像很多餘?由此也可以看出,這些學習的過程是環環相扣的,如果你任何一個階段拉下來了,那麼你就真的跟不上了,或者說是一步慢步步慢。總而言之,這個階段,你需要做的是深入了解Java底層和Java類庫(比如並發那本書就是Java並發包java.concurrent的內容),也就是JVM和JDK的相關內容。而且還要更深入的去了解你所使用的框架,方式比較推薦看源碼或者看官方文檔。

希望對您有所幫助!~

3. web頁面怎麼使用velocity

Velocity是可以在html中使用的,也是網頁前端人員都要要熟悉的一種模版引擎; Velocity是一個基於java的模板引擎(template engine)。它允許任何人僅僅簡單的使用模板語言(template language)來引用由java代碼定義的對象。 當Velocity應用於w...

4. 如何在web項目中引用velocity逡

Velocity是可以在html中使用的,也是網頁前端人員都要要熟悉的一種模版引擎;
Velocity是一個基於java的模板引擎(template engine)。它允許任何人僅僅簡單的使用模板語言(template language)來引用由java代碼定義的對象。 當Velocity應用於web開發時,界面設計人員可以和java程序開發人員同步開發一個遵循MVC架構的web站點,也就是說,頁面設計人員可以只關注頁面的顯示效果,而由java程序開發人員關注業務邏輯編碼。Velocity將java代碼從web頁面中分離出來,這樣為web站點的長期維護提供了便利,同時也為我們在JSP和PHP之外又提供了一種可選的方案。 Velocity的能力遠不止web站點開發這個領域,例如,它可以從模板(template)產生SQL和PostScript、XML,它也可以被當作一個獨立工具來產生源代碼和報告,或者作為其他系統的集成組件使用。Velocity也可以為Turbine web開發架構提供模板服務(template service)。Velocity+Turbine提供一個模板服務的方式允許一個web應用以一個真正的MVC模型進行開發。
Velocity使用,就是在這個模版內通過它現有語法和函數,然後在html中應用,一般我們結合具體的案例來使用Velocity,這里我舉個簡單的小例子:
<td colspan="3" class="tdContent2">$!obj.getDealInfo().replaceAll("\r\n", "<br></td>
Velocity就是通過這樣來實現小的換行的。

5. 如何利用spring boot做一個簡單的web應用

spring-boot適合開發web應用的靜態資源訪問在我們開發Web應用的時候,需要引用大量的js、css、圖片等靜態資源。默認配置SpringBoot默認提供靜態資源目錄位置需置於classpath下,目錄名需符合如下規則:/static/public/resources/META-INF/resources舉例:我們可以在src/main/resources/目錄下創建static,在該位置放置一個圖片文件。啟動程序後,嘗試訪問頁面的時候,要如何實現呢?模板引擎在動態HTML實現上SpringBoot依然可以完美勝任,並且提供了多種模板引擎的默認配置支持,所以在推薦的模板引擎下,我們可以很快的上手開發動態網站。SpringBoot提供了默認配置的模板引擎主要有以下幾種:建議使用這些模板引擎,避免使用JSP,若一定要使用JSP將無法實現SpringBoot的多種特性,具體可見後文:支持JSP的配置當你使用上述模板引擎中的任何一個,它們默認的模板配置路徑為:src/main/resources/templates。當然也可以修改這個路徑,具體如何修改,可在後續各模板引擎的配置屬性中查詢並修改。ThymeleafThymeleaf是一個XML/XHTML/HTML5模板引擎,可用於Web與非Web環境中的應用開發。它是一個開源的Java庫,基於ApacheLicense2.0許可,由DanielFernández創建,該作者還是Java加密庫Jasypt的作者。Thymeleaf提供了一個用於整合SpringMVC的可選模塊,在應用開發中,你可以使用Thymeleaf來完全代替JSP或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目標在於提供一種可被瀏覽器正確顯示的、格式良好的模板創建方式,因此也可以用作靜態建模。你可以使用它創建經過驗證的XML與HTML模板。相對於編寫邏輯或代碼,開發者只需將標簽屬性添加到模板中即可。接下來,這些標簽屬性就會在DOM(文檔對象模型)上執行預先制定好的邏輯。

6. velocity是怎麼用的

Velocity是一個基於java的模板引擎(template engine)。

官方網站:http://velocity.apache.org/

#formSingleSelectDictionary("accountingForm" "$!{info.accountingForm}" $!{dicData.dicAccountingForm} " class='combox' style='width:60' " "--請選擇--")

#formSingleSelectDictionary : 調用這個 formSingleSelectDictionary 方法
傳參數為 括弧裡面的

$!{info.accountingForm} : 取 info 這個對象的屬性

稍微翻下文檔就能開始用了。

加油。

7. Tomcat與JavaWeb開發技術詳解的目錄

第1篇 Java Web開發技術詳解
依據SUN的Java Servlet規范和JSP規范,深入介紹了開發Java Web應用的各種技術。
第1章 Web運作原理探析 3
利用Java套接字(Socket)實現了一個簡單的基於HTTP協議的客戶程序和伺服器程序。
1.1 Web的概念 3
1.2 HTML簡介 4
1.3 URL簡介 7
1.4 HTTP協議簡介 7
1.4.1 HTTP請求格式 9
1.4.2 HTTP響應格式 11
1.4.3 正文部分的MIME類型 13
1.5 用Java套接字創建HTTP客戶與伺服器程序 14
1.5.1 演示異構系統之間用HTTP協議通信 17
1.5.2 演示對網頁中的超級鏈接的處理過程 19
1.5.3 演示對網頁中的圖片的處理過程 20
1.6 Web發展歷程 21
1.6.1 發布靜態HTML文檔 21
1.6.2 發布靜態多媒體信息 22
1.6.3 提供瀏覽器端與用戶的動態交互功能 22
1.6.4 提供伺服器端與用戶的動態交互功能 24
1.6.5 發布Web應用 29
1.6.6 發布Web服務 30
1.6.7 Web 2.0:全民共建的Web 32
1.7 處理HTTP請求參數及HTML表單 33
1.8 客戶端向伺服器端上傳文件 36
1.9 小結 41
1.10 思考題 42
第2章 Tomcat簡介 45
Tomcat除了能夠充當運行Servlet的容器,還提供了作為Web伺服器的一些實用功能,如Tomcat管理和控制平台、安全域管理和Tomcat閥等。Tomcat已成為目前開發企業JavaWeb應用的最佳Servlet容器選擇之一。
2.1 Tomcat概述 46
2.2 Tomcat作為Servlet容器的基本功能 47
2.3 Tomcat的組成結構 48
2.4 Tomcat的工作模式 50
2.5 Tomcat的版本 52
2.6 安裝和配置Tomcat所需的資源 53
2.7 安裝Tomcat 55
2.8 啟動Tomcat並測試Tomcat的安裝 57
2.9 Tomcat的運行腳本 58
2.10 小結 59
2.11 思考題 60
第3章 第一個JavaWeb應用 63
以一個簡單的helloapp應用為例,讓初學者迅速獲得開發JavaWeb應用的實際經驗。
3.1 JavaWeb應用簡介 63
3.2 創建JavaWeb應用 64
3.2.1 JavaWeb應用的目錄結構 64
3.2.2 創建HTML文件 65
3.2.3 創建Servlet類 66
3.2.4 創建JSP文件 67
3.2.5 創建web.xml文件 68
3.3 在Tomcat中發布JavaWeb應用 70
3.3.1 Tomcat的目錄結構 70
3.3.2 按照默認方式發布JavaWeb應用 71
3.3.3 Web組件的URL 72
3.3.4 配置Tomcat的元素 75
3.3.5 配置Tomcat的虛擬主機 78
3.4 創建、配置和使用自定義JSP標簽 80
3.5 用批處理文件或ANT編譯範例 84
3.6 小結 85
3.7 思考題 86
第4章 Servlet技術(上) 89
要想精通Servlet編程,不僅要了解Servlet自身的用法,還要了解容器為它提供的十八般武器的用法。
4.1 Servlet API 90
4.1.1 Servlet介面 90
4.1.2 GenericServlet抽象類 91
4.1.3 HttpServlet抽象類 93
4.1.4 ServletRequest介面 96
4.1.5 HttpServletRequest介面 97
4.1.6 ServletResponse介面 100
4.1.7 HttpServletResponse介面 101
4.1.8 ServletConfig介面 104
4.1.9 ServletContext介面 105
4.2 JavaWeb應用的生命周期 108
4.2.1 啟動階段 108
4.2.2 運行時階段 109
4.2.3 終止階段 109
4.2.4 用Tomcat的管理平台管理Web應用的生命周期 109
4.3 Servlet的生命周期 111
4.3.1 初始化階段 111
4.3.2 運行時階段 112
4.3.3 銷毀階段 112
4.3.4 演示Servlet的生命周期的範例 113
4.4 ServletContext與Web應用范圍 115
4.4.1 在Web應用范圍內存放共享數據的範例 116
4.4.2 使用ServletContextListener監聽器 119
4.5 Servlet的服務方法拋出異常 121
4.6 防止頁面被客戶端緩存 122
4.7 小結 123
4.8 思考題 124
第5章 Servlet技術(下) 129
進一步介紹Servlet的一些高級用法。
5.1 下載文件 129
5.2 上傳文件 130
5.3 動態生成圖像 136
5.4 讀寫Cookie 139
5.5 訪問Web應用的工作目錄 145
5.6 轉發和包含 147
5.6.1 請求轉發 148
5.6.2 包含 152
5.6.3 請求范圍 154
5.7 重定向 155
5.8 訪問Servlet容器內的其他Web應用 158
5.9 避免並發問題 160
5.9.1 合理決定在Servlet中定義的變數的作用域類型 162
5.9.2 使用Java同步機制對多線程同步 164
5.9.3 被廢棄的SingleThreadModel介面 165
5.10 小結 166
5.11 思考題 169
第6章 JSP技術 171
包括JSP的運行機制和語法、JSP包含其他Web組件的方法、把請求轉發給其他Web組件的方法,以及JSP的異常處理。
6.1 比較HTML、Servlet和JSP 171
6.1.1 靜態HTML文件 171
6.1.2 用Servlet動態生成HTML頁面 171
6.1.3 用JSP動態生成HTML頁面 173
6.2 JSP語法 177
6.2.1 JSP指令(Directive) 178
6.2.2 JSP聲明 180
6.2.3 Java程序片段(Scriptlet) 181
6.2.4 Java表達式 182
6.2.5 隱含對象 184
6.3 JSP的生命周期 185
6.4 請求轉發 188
6.5 包含 190
6.5.1 靜態包含 190
6.5.2 動態包含 192
6.5.3 混合使用靜態包含和動態包含 194
6.6 JSP異常處理 200
6.7 再談發布JSP 202
6.8 預編譯JSP 203
6.9 PageContext抽象類 204
6.10 JSP技術的發展趨勢 206
6.11 小結 207
6.12 思考題 207
第7章 bookstore應用簡介 211
介紹bookstore應用的軟體結構、各個JSP網頁的功能,以及部分Web組件的實現。
7.1 bookstore應用的軟體結構 211
7.1.1 Web伺服器層 211
7.1.2 資料庫層 212
7.2 瀏覽bookstore應用的JSP網頁 212
7.3 JavaBean和實用類 217
7.3.1 實體類 218
7.3.2 購物車的實現 219
7.4 發布bookstore應用 222
7.5 小結 223
第8章 訪問資料庫 225
介紹通過JDBC API訪問資料庫、在Tomcat中配置數據源,以及在Web應用中通過數據源連接資料庫的方法。
8.1 安裝和配置MySQL資料庫 225
8.2 JDBC簡介 228
8.2.1 java.sql包中的介面和類 230
8.2.2 編寫訪問資料庫程序的步驟 234
8.2.3 事務處理 236
8.3 通過JDBC API訪問資料庫的JSP范常式序 237
8.4 bookstore應用通過JDBC API訪問資料庫 239
8.5 數據源(DataSource)簡介 243
8.6 配置數據源 244
8.6.1 在context.xml中加入元素 244
8.6.2 在web.xml中加入元素 245
8.7 程序中訪問數據源 246
8.7.1 通過數據源連接資料庫的JSP范常式序 246
8.7.2 bookstore應用通過數據源連接資料庫 248
8.8 處理中文編碼 251
8.9 分頁顯示批量數據 252
8.10 小結 256
8.11 思考題 257
第9章 HTTP會話的使用與管理 259
介紹如何通過會話來實現伺服器對客戶的狀態的跟蹤。
9.1 會話簡介 259
9.2 HttpSession的生命周期及會話范圍 263
9.3 使用會話的JSP范常式序 265
9.4 使用會話的Servlet范常式序 269
9.5 通過重寫URL來跟蹤會話 273
9.6 會話的持久化 277
9.6.1 標准會話管理器StandardManager 279
9.6.2 持久化會話管理器PersistentManager 280
9.7 會話的監聽 284
9.7.1 用HttpSessionListener統計在線用戶人數 289
9.7.2 用HttpSessionBindingListener統計在線用戶人數 291
9.8 小結 294
9.9 思考題 295
第10章 JSP訪問JavaBean 299
介紹JavaBean的概念和創建方法, JSP訪問JavaBean的語法,JavaBean在Web應用中的4種存在范圍,如何在bookstore應用中運用JavaBean。
10.1 JavaBean簡介 299
10.2 JSP訪問JavaBean的語法 300
10.3 JavaBean的范圍 302
10.3.1 JavaBean在頁面(page)范圍內 302
10.3.2 JavaBean在請求(request)范圍內 305
10.3.3 JavaBean在會話(session)范圍內 306
10.3.4 JavaBean在Web應用(application)范圍內 307
10.4 在bookstore應用中訪問JavaBean 308
10.4.1 訪問BookDB類 308
10.4.2 訪問ShoppingCart類 309
10.5 小結 313
10.6 思考題 314
第11章 開發JavaMail Web應用 317
介紹了一個JavaMail Web應用,通過它,客戶可以訪問郵件伺服器上的郵件賬號、收發郵件和管理郵件夾。
11.1 E-mail協議簡介 317
11.1.1 SMTP簡單郵件傳輸協議 317
11.1.2 POP3郵局協議 318
11.1.3 接收郵件的新協議IMAP 318
11.2 JavaMail API簡介 319
11.3 建立JavaMail應用程序的開發環境 321
11.3.1 獲得JavaMail API的類庫 321
11.3.2 安裝和配置郵件伺服器 321
11.4 創建JavaMail應用程序 324
11.5 JavaMail Web應用簡介 328
11.6 JavaMail Web應用的程序結構 328
11.6.1 重新封裝Message數據 329
11.6.2 用於保存郵件賬號信息的JavaBean 332
11.6.3 定義所有JSP文件的相同內容 334
11.6.4 登錄IMAP伺服器上的郵件賬號 336
11.6.5 管理郵件夾 339
11.6.6 查看郵件夾中的郵件信息 342
11.6.7 查看郵件內容 345
11.6.8 創建和發送郵件 346
11.6.9 退出郵件系統 348
11.7 在Tomcat中配置郵件會話(Mail Session) 349
11.7.1 在context.xml中配置Mail Session資源 349
11.7.2 在web.xml中加入對JNDI Mail Session資源的引用 350
11.7.3 在javamail應用中獲取JNDI Mail Session資源 350
11.8 發布和運行javamail應用 352
11.9 小結 352
11.10 思考題 353
第12章 EL表達式語言 355
EL(Expression Language)表達式語言是在JSP 2.0版本中引入的新特性,它用於JSP文件中的數據訪問。
12.1 基本語法 355
12.1.1 訪問對象的屬性及數組的元素 356
12.1.2 EL運算符 356
12.1.3 隱含對象 357
12.1.4 命名變數 359
12.2 使用EL表達式的JSP範例 360
12.2.1 關於基本語法的例子 360
12.2.2 讀取HTML表單數據的例子 362
12.2.3 訪問命名變數的例子 363
12.3 定義和使用EL函數 363
12.4 小結 366
12.5 思考題 367
第13章 自定義JSP標簽 369
結合具體的範例,進一步介紹自定義標簽的創建過程,以及它在JSP文件中的使用方法。
13.1 自定義JSP標簽簡介 369
13.2 JSP Tag API 370
13.2.1 JspTag介面 370
13.2.2 Tag介面 371
13.2.3 IterationTag介面 373
13.2.4 BodyTag介面 374
13.2.5 TagSupport類和BodyTagSupport類 376
13.3 創建和使用message標簽(訪問標簽屬性) 380
13.3.1 創建message標簽的處理類MessageTag 382
13.3.2 創建標簽庫描述文件 385
13.3.3 在Web應用中使用標簽 388
13.3.4 發布支持中、英文版本的helloapp應用 390
13.4 創建和使用iterate標簽(重復執行標簽主體) 391
13.5 創建和使用greet標簽(訪問標簽主體內容) 395
13.6 小結 399
13.7 思考題 400
第14章 採用模板設計網上書店應用 403
以bookstore應用為例,介紹如何通過自定義JSP標簽來為網站設計模板,從而使所有在客戶端展示的網頁都通過模板來生成。
14.1 如何設計網站的模板 403
14.2 創建負責流程式控制制的Servlet 404
14.3 創建模板標簽和模板JSP文件 406
14.3.1 標簽和其處理類 408
14.3.2 標簽和處理類 411
14.3.3 標簽和處理類 413
14.3.4 標簽和處理類 417
14.4 修改JSP文件 419
14.5 發布採用模板設計的bookstore應用 420
14.6 小結 423
第15章 JSTL Core標簽庫 425
本章對JSTL做了概要介紹,並且著重介紹了JSTL中的Core標簽庫的用法。
15.1 使用第三方提供的標簽庫的步驟 425
15.2 JSTL標簽庫簡介 426
15.3 一般用途的標簽 427
15.3.1 標簽 427
15.3.2 標簽 428
15.3.3 標簽 430
15.3.4 標簽 430
15.4 條件標簽 431
15.4.1 標簽 431
15.4.2 、和標簽 432
15.5 迭代標簽 433
15.5.1 標簽 433
15.5.2 標簽 437
15.6 URL相關的標簽 437
15.6.1 標簽 437
15.6.2 標簽 438
15.6.3 標簽 440
15.7 小結 440
15.8 思考題 441
第16章 JSTL I18N標簽庫 443
I18N標簽庫主要用於編寫國際化的Web應用,本章對I18N標簽庫進行了詳細介紹。
16.1 國際化的概念 443
16.2 Java對I18N的支持 444
16.2.1 Locale類 444
16.2.2 ResourceBundle類 448
16.2.3 MessageFormat類和復合消息 449
16.3 國際化標簽 452
16.3.1 標簽 452
16.3.2 標簽 453
16.3.3 標簽 453
16.3.4 標簽 454
16.3.5 標簽 455
16.3.6 標簽 455
16.4 創建國際化的Web應用 456
16.4.1 創建支持國際化的網頁 456
16.4.2 創建資源文件 459
16.5 格式化標簽 460
16.5.1 標簽 460
16.5.2 標簽 461
16.5.3 標簽 461
16.5.4 標簽 462
16.5.5 標簽 463
16.5.6 標簽 465
16.6 小結 465
16.7 思考題 466
第17章 JSTL SQL標簽庫 469
在JSP中直接通過Java程序代碼來訪問資料庫,會降低JSP頁面的可讀性和可維護性,為了解決這一問題,可以在JSP中通過JSTL SQL標簽庫中的標簽來訪問資料庫。
17.1 標簽 469
17.2 標簽 470
17.2.1 設置數據源 470
17.2.2 設置select查詢語句 470
17.2.3 控制實際取出的記錄 471
17.2.4 訪問查詢結果 471
17.2.5 使用標簽的範例 472
17.3 標簽 474
17.4 標簽 475
17.5 標簽 475
17.6 標簽 476
17.7 小結 478
17.8 思考題 478
第18章 JSTL Functions標簽庫 481
介紹Functions標簽庫中常用的16個函數的用法。
18.1 fn:contains函數 481
18.2 fn:containsIgnoreCase函數 481
18.3 fn:startsWith函數 482
18.4 fn:endsWith函數 482
18.5 fn:indexOf函數 482
18.6 fn:replace函數 483
18.7 fn:substring函數 483
18.8 fn:substringBefore函數 483
18.9 fn:substringAfter函數 484
18.10 fn:split函數 484
18.11 fn:join函數 485
18.12 fn:toLowerCase函數 485
18.13 fn:toUpperCase函數 485
18.14 fn:trim函數 486
18.15 fn:escapeXml函數 486
18.16 fn:length函數 487
18.17 小結 488
18.18 思考題 489
第19章 簡單標簽和標簽文件 491
為了簡化開發標簽的過程,JSP 2.0引入了一種新的標簽擴展機制,稱為「簡單標簽擴展」。
19.1 實現SimpleTag介面 491
19.1.1 創建和使用簡單標簽 493
19.1.2 創建和使用帶屬性和標簽主體的簡單標簽 494
19.1.3 創建和使用帶動態屬性的簡單標簽 495
19.2 使用標簽文件 497
19.2.1 標簽文件的隱含對象 500
19.2.2 標簽文件的指令 501
19.2.3 標簽文件的和動作元素 503
19.2.4 創建和使用帶屬性和標簽主體的display標簽文件 503
19.2.5 創建和使用帶屬性和標簽主體的welcome標簽文件 505
19.2.6 創建和使用帶變數的precode標簽文件 506
19.3 小結 507
19.4 思考題 507
第20章 過濾器 509
如果在多個Web組件中編寫完成同樣操作的程序代碼,顯然會導致重復編碼,從而降低開發效率和軟體的可維護性,為了解決上述問題,過濾器應運而生。
20.1 過濾器簡介 509
20.2 創建過濾器 510
20.3 發布過濾器 513
20.4 串聯過濾器 518
20.4.1 包裝設計模式簡介 519
20.4.2 ServletOutputStream的包裝類 521
20.4.3 HttpServletResponse的包裝類 524
20.4.4 創建對響應結果進行字元串替換的過濾器 525
20.4.5 ReplaceTextFilter過濾器工作的UML時序圖 527
20.4.6 發布和運行包含ReplaceTextFilter過濾器的Web應用 528
20.5 小結 531
20.6 思考題 532
第21章 在Web應用中訪問EJB組件 535
首先介紹JavaEE的體系結構;然後以bookstore應用為例,介紹開發EJB組件的過程;最後講解如何在JBoss伺服器上發布JavaEE應用。
21.1 JavaEE體系結構簡介 535
21.2 安裝和配置JBoss伺服器 537
21.3 創建EJB組件 538
21.3.1 編寫Remote介面 539
21.3.2 編寫Home介面 539
21.3.3 編寫Enterprise Java Bean
類 540
21.4 在Web應用中訪問EJB組件 543
21.5 發布JavaEE應用 544
21.5.1 在JBoss上發布EJB組件 545
21.5.2 在JBoss上發布Web應用 547
21.5.3 在JBoss上發布JavaEE應用 549
21.6 小結 550
21.7 思考題 551
第22章 在Web應用中訪問Web服務 553
介紹利用AXIS來創建SOAP服務和SOAP客戶程序的方法,還介紹了在bookstore應用中訪問SOAP服務的方法。
22.1 SOAP簡介 553
22.2 建立Apache AXIS環境 555
22.3 在Tomcat上發布
Apache-AXIS Web應用 556
22.4 創建SOAP服務 557
22.4.1 創建提供SOAP服務的Java類 557
22.4.2 創建SOAP服務的發布描述符文件 557
22.5 管理SOAP服務 558
22.5.1 發布SOAP服務 558
22.5.2 刪除SOAP服務 559
22.6 創建和運行SOAP客戶程序 560
22.7 發布JWS服務 563
22.8 在bookstore應用中訪問SOAP服務 563
22.8.1 創建BookDB服務類及
BookDBDelegate代理類 564
22.8.2 發布bookdbservice服務和bookstore應用 573
22.9 小結 574
22.10 思考題 575
第23章 Web應用的MVC設計模式 577
首先介紹了MVC設計模式的結構和優點;接著介紹了SUN公司提出的在Java Web開發領域的兩種設計模式:JSP Model1和JSP Molde2;然後介紹了Struts實現MVC的機制;最後以helloapp應用為例,簡要介紹了在Web應用中使用Struts 2.0的方法。
23.1 MVC設計模式簡介 577
23.2 JSP Model 1和
JSP Model 2 579
23.3 Struts概述 581
23.3.1 Struts實現MVC的機制 581
23.3.2 Struts的工作流程 582
23.4 創建採用Struts的Web應用 583
23.4.1 建立Struts的環境 583
23.4.2 創建視圖 584
23.4.3 創建模型 585
23.4.4 創建Action類 585
23.4.5 創建web.xml文件和struts.xml文件 586
23.5 運行helloapp應用 587
23.5.1 伺服器端裝載login.htm的流程 587
23.5.2 用戶驗證的流程 587
23.6 小結 589
23.7 思考題 589
第2篇 Tomcat配置及第三方實用軟體的用法
介紹Tomcat伺服器的基本配置和高級配置,從而為Java Web應用創建高效的運行環境;介紹在Java Web應用中運用第三方提供的實用軟體(如Velocity和Log4J)的方法。
第24章 Tomcat的控制平台和管理平台 593
Tomcat提供了基於Web方式的管理平台和控制平台,用戶通過瀏覽器,就可以很方便地配置Tomcat伺服器,還可以管理運行在Tomcat伺服器上的Web應用,如發布、啟動、停止或刪除Web應用,以及查看Web應用狀態。
24.1 訪問Tomcat的控制平台和管理平台 593
24.2 Tomcat的控制平台 595
24.2.1 Tomcat控制平台的功能 595
24.2.2 配置元素 597
24.3 Tomcat的管理平台 598
24.4 小結 600
第25章 安全域 601
主要介紹如何通過Tomcat提供的安全域來保護Web應用的資源。
25.1 安全域概述 601
25.2 為Web資源設置安全約束 602
25.2.1 在web.xml中加入元素 603
25.2.2 在web.xml中加入元素 605
25.2.3 在web.xml中加入元素 608
25.3 內存域 608
25.4 JDBC域 610
25.4.1 用戶資料庫的結構 610
25.4.2 在MySQL中創建和配置用戶資料庫 611
25.4.3 配置元素 611
25.5 DataSource域 612
25.6 在Web應用中訪問用戶信息 614
25.7 小結 614
25.8 思考題 615
第26章 Tomcat與其他HTTP 伺服器集成 617
首先討論Tomcat與HTTP伺服器集成的一般原理,然後介紹Tomcat與Apache伺服器及IIS集成的詳細步驟,最後介紹把由多個Tomcat伺服器構成的集群系統與Apache伺服器集成的方法。
26.1 Tomcat與HTTP伺服器集成的原理 617
26.1.1 JK插件 618
26.1.2 AJP協議 618
26.2 在Windows下Tomcat與
Apache伺服器集成 618
26.3 在Linux下Tomcat與Apache
伺服器集成 621
26.4 Tomcat與IIS伺服器集成 623
26.4.1 准備相關文件 624
26.4.2 編輯注冊表 624
26.4.3 在IIS中加入「jakarta」虛擬目錄 626
26.4.4 把JK插件作為ISAPI篩選器加入到IIS中 627
26.4.5 測試配置 628
26.5 Tomcat集群 628
26.5.1 配置集群系統的負載平衡器 629
26.5.2 配置集群管理器 631
26.6 小結 635
26.7 思考題 636
第27章 在Tomcat中配置SSI 637
首先介紹了SSI的概念及SSI指令的用法,然後介紹了在Tomcat中配置SSI的方法。
27.1 SSI簡介 637
27.1.1 #echo指令 638
27.1.2 #include指令 640
27.1.3 #flastmod指令 641
27.1.4 #fsize指令 641
27.1.5 #exec指令 641
27.1.6 #config指令 641
27.1.7 #if、#elif、#else和#endif指令 643
27.2 在Tomcat中配置對SSI的支持 643
27.3 小結 645
27.4 思考題 645
第28章 Tomcat閥 647
介紹Tomcat閥的種類,還將詳細介紹各種Tomcat閥的功能和使用方法。
28.1 Tomcat閥簡介 647
28.2 客戶訪問日誌閥 648
28.3 遠程地址過濾器 650
28.4 遠程主機過濾器 651
28.5 客戶請求記錄器 652
28.6 小結 653
28.7 思考題 653
第29章 在Tomcat中配置SSL 655
SSL(Server Socket Layer)協議,旨在達到在開放網路(Internet)上安全、保密地傳輸信息的目的,這種協議在Web上獲得了廣泛的應用。
29.1 SSL簡介 655
29.1.1 加密通信 656
29.1.2 安全證書 656
29.1.3 SSL握手 657
29.2 在Tomcat中使用SSL 658
29.2.1 准備安全證書 658
29.2.2 配置SSL連接器 659
29.2.3 訪問支持SSL的Web站點 660
29.3 小結 661
29.4 思考題 662
第30章 用ANT工具管理Web應用 663
介紹了ANT的安裝和配置,並以bookstore應用為例,介紹了ANT的使用方法。
30.1 安裝配置ANT 663
30.2 創建build.xml文件 663
30.3 運行ANT 668
30.4 小結 669
30.5 思考題 669
第31章 使用Log4J進行日誌操作 671
首先介紹Log4J的組成,接著介紹如何在程序中使用Log4J,最後介紹如何在Web應用中通過Log4J生成日誌。
31.1 Log4J簡介 671
31.1.1 Logger組件 672
31.1.2 Appender組件 673
31.1.3 Layout組件 673
31.1.4 Logger組件的繼承性 674
31.2 Log4J的基本使用方法 675
31.2.1 定義配置文件 675
31.2.2 在程序中使用Log4J 677
31.3 在helloapp應用中使用Log4J 680
31.3.1 創建用於配置Log4J環境的Servlet 680
31.3.2 在login.jsp中輸出日誌 681
31.3.3 發布和運行使用Log4J的helloapp應用 681
31.4 小結 683
31.5 思考題 683
第32章 Velocity模板語言 685
首先通過一個簡單的Velocity例子來講解創建基於Velocity的Web應用的步驟,然後詳細介紹Velocity模板語言的各個要素。
32.1 安裝Velocity 685
32.2 Velocity的簡單例子 685
32.2.1 創建Velocity模板 685
32.2.2 創建擴展VelocityServlet的Servlet類 686
32.2.3 發布和運行基於Velocity的Web應用 688
32.3 注釋 689
32.4 引用 689
32.4.1 變數引用 689
32.4.2 屬性引用 690
32.4.3 方法引用 692
32.4.4 正式引用符 693
32.4.5 安靜引用符 693
32.4.6 轉義符 694
32.4.7 大小寫替換 694
32.5 指令 695
32.5.1 #set指令 695
32.5.2 字面字元串 696
32.5.3 #if指令 697
32.5.4 比較運算 697
32.5.5 #foreach循環指令 698
32.5.6 #include指令 700
32.5.7 #parse指令 700
32.5.8 #macro指令 701
32.5.9 轉義VTL指令 702
32.5.10 VTL的格式 702
32.6 其他特徵 703
32.6.1 數學運算 703
32.6.2 范圍操作符 703
32.6.3 字元串的連接 704
32.7 小結 705
32.8 思考題 705
第33章 創建嵌入式Tomcat伺服器 707
介紹如何把Tomcat嵌入到Java應用程序中,以及在程序中配置Tomcat的組件,並控制Tomcat伺服器的啟動和關閉。
33.1 將Tomcat嵌入到Java應用中 707
33.2 創建嵌入了Tomcat的
Java示範程序 708
33.3 運行嵌入式Tomcat
伺服器 711
33.4 小結 713
附錄A server.xml文件 715
對server.xml文件的一些常用的元素進行了介紹。
A.1 配置Server元素 716
A.2 配置Service元素 717
A.3 配置Engine元素 717
A.4 配置Host元素 718
A.5 配置Context元素 718
A.6 配置Connector元素 719
附錄B web.xml文件 721
介紹了Web應用的配置文件web.xml文件。
B.1 配置過濾器 723
B.2 配置Servlet 724
B.3 配置Servlet映射 725
B.4 配置Session 725
B.5 配置Welcome文件清單 725
B.6 配置Tag Library 726
B.7 配置資源引用 726
B.8 配置安全約束 727
B.9 配置安全驗證登錄界面 727
B.10 配置對安全驗證角色的引用 728
附錄C XML簡介 729
XML,即可擴展標記語言(Extensible Markup Language),是一種可以用來創建自定義標記的標記語言。
C.1 SGML、HTML 與XML的比較 729
C.2 DTD文檔類型定義 730
C.3 有效XML文檔以及簡化格式的XML文檔 731
C.4 XML中的常用術語 732
C.4.1 URL、URN和URI 733
C.4.2 XML命名空間 733
附錄D 書中涉及軟體獲取途徑 735
為了便於讀者在本地機器上搭建運行範例的環境,列出了書中涉及的軟體的獲取途徑。
……