標籤:
最近開始學習Java。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!-- Page標籤,java語言,java.util.*的包,UTF-8編碼-->
有下面三句要寫相對路徑
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<base href="<%=basePath%>">
詳解如下:
<base href="...">是用來表明當前頁面的相對路徑所使用的根路徑的。
比如,頁面內部有一個串連,完整的路徑應該是 http://localhost/myblog/authen/login.do
其中http://server/是伺服器的基本路徑,myblog是當前應用程式的名字,那麼,我的根路徑應該是那麼http://localhost/myblog/。
有了這個 <base ... >以後,我的頁面內容的串連,我不想寫全路徑,我只要寫 authen/login.do就可以了。伺服器會自動把 <base ...>指定的路徑和頁面內的相對路徑拼裝起來,組成完整路徑。
如果沒有這個 <base...>,那麼我頁面的連連結就必須寫全路徑,否則伺服器會找不到。
request.getSchema()可以返回當前頁面使用的協議,就是上面例子中的“http”
request.getServerName()可以返回當前頁面所在的伺服器的名字,就是上面例子中的“localhost"
request.getServerPort()可以返回當前頁面所在的伺服器使用的連接埠,通常情況下是80
request.getContextPath()可以返回當前頁面所在的應用的名字,就是上面例子中的myblog
這四個拼起來,就是當前頁面的相對路徑了。
-----------------------------------------------------------
下面寫幾個基本文法:
1、指令 <%@ 指令%>
JSP指令是JSP的引擎。他們不直接產生任何可視的輸出,只是指示引擎對剩下的JSP頁面需要做什麼。指令由<%@ ?%>標記。主要的兩種指令是page和include。本文不討論指令taglib,但在JSP1.1中建立自訂標籤時會用到它。
可以在幾乎所有的JSP頁面頂部找到指令page。儘管並非必須,你可以通過它定義如到何處尋找Java類支援等事項。
<%@ page import="java.util.Date" %>
指示當出現Java運行問題時將網路使用者指引到何處:
<%@ page errorPage="errorPage.jsp" %>
是否需要在使用者會話級管理資訊,這很可能跨越多個Web頁面(在關於JavaBeans的部分中會對此有更多的描述):
<%@ page session="true" %>
指令“include”可以把你的內容分成更多可管理的元素,如包括一個普通頁首或頁尾的元素。包含的網頁可以是一個固定的HTML 頁面或更多的JSP內容:
<%@ include file="filename.jsp" %>
2、聲明 <%! 聲明%>
JSP的聲明可以讓你定義頁面一級的變數以儲存資訊或定義剩下的JSP頁面或許需要的支援方法。如果你發現自己寫入了太多的代碼,通常最好寫入一個單獨的 Java類中。聲明由<%! ?%>定義。必須通過分號來結束變數聲明,同時任何內容必須事有效Java語句:<%! int i=0; %>
3、運算式 <%= 運算式%>
通過JSP中的運算式,計算運算式的結果被轉換為字串並直接包括在輸出頁面中。JSP字串由<%= ?%>標籤標誌,並且除非是被引用的部分字串,不包括分號。
<%= i %>
<%= "Hello" %>
4、程式碼片段/指令碼段 <% 程式碼片段%>
JSP程式碼片段或指令碼片段是嵌在“<% ?%>”標記中的。當Web伺服器響應請求時,這種Java代碼就會運行。在指令碼片段周圍可能是純粹的HTML或XML代碼,在這些地方,程式碼片段 可以使你建立條件執行代碼,或只是調用另外一段代碼。例如,以下的程式碼群組合使用運算式和指令碼片段,顯示H1、H2、H3和H4標記中的字串 “Hello”。指令碼片段並不局限於一行原始碼中:
<% for (inti=1; i<=4; i++) { %>
<H<%=i%>>Hello</H<%=i%>>
<% } %>
5、注釋 <%-- 注釋--%>
Java 學習筆記1