<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
這個語句是用來拼裝當(dāng)前網(wǎng)頁的相對路徑的。
<base href="...">是用來表明當(dāng)前頁面的相對路徑所使用的根路徑的。
比如,頁面內(nèi)部有一個連接,完整的路徑應(yīng)該是 http://localhost:80/myblog/authen/login.do
其中http://server/是服務(wù)器的基本路徑,myblog是當(dāng)前應(yīng)用程序的名字,那么,我的根路徑應(yīng)該是那么http://localhost:80/myblog/。
有了這個 <base ... >以后,我的頁面內(nèi)容的連接,我不想寫全路徑,我只要寫 authen/login.do就可以了。服務(wù)器會自動把 <base ...>指定的路徑和頁面內(nèi)的相對路徑拼裝起來,組成完整路徑。
如果沒有這個 <base...>,那么我頁面的連鏈接就必須寫全路徑,否則服務(wù)器會找不到。
request.getSchema()可以返回當(dāng)前頁面使用的協(xié)議,就是上面例子中的“http”
request.getServerName()可以返回當(dāng)前頁面所在的服務(wù)器的名字,就是上面例子中的“localhost"
request.getServerPort()可以返回當(dāng)前頁面所在的服務(wù)器使用的端口,就是80,
request.getContextPath()可以返回當(dāng)前頁面所在的應(yīng)用的名字,就是上面例子中的myblog
這四個拼裝起來,就是當(dāng)前應(yīng)用的跟路徑了