當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JSP要点总结
JSP 結構?
網絡服務器需要一個JSP引擎,也就是一個容器來處理JSP頁面。容器負責截獲對JSP頁面的請求。
JSP容器與Web服務器協同合作,為JSP的正常運行提供必要的運行環境和其他服務,并且能夠正確識別專屬于JSP網頁的特殊元素。?
JSP 生命周期?
JSP生命周期就是從創建到銷毀的整個過程,類似于servlet生命周期,區別在于JSP生命周期還包括將JSP文件編譯成servlet。?
以下是JSP生命周期中所走過的幾個階段:?
編譯階段:
servlet容器編譯servlet源文件,生成servlet類
初始化階段:
加載與JSP對應的servlet類,創建其實例,并調用它的初始化方法
執行階段:
調用與JSP對應的servlet實例的服務方法
銷毀階段:
調用與JSP對應的servlet實例的銷毀方法,然后銷毀servlet實例
JSP 隱含對象
JSP隱含對象是JSP容器為每個頁面提供的Java對象,開發者可以直接使用它們而不用顯式聲明。JSP所支持的九大隱含對象:
對象 描述?
request ? HttpServletRequest類的實例?
response ? HttpServletResponse類的實例?
out ? PrintWriter類的實例,用于把結果輸出至網頁上?
session ? HttpSession類的實例?
application ? ServletContext類的實例,與應用上下文有關?
config ? ServletConfig類的實例?
pageContext ? PageContext類的實例,提供對JSP頁面所有對象以及命名空間的訪問?
page ? 類似于Java類中的this關鍵字?
Exception ? Exception類的對象,代表發生錯誤的JSP頁面中對應的異常對象?
JSP 過濾器
Servlet和JSP中的過濾器都是Java類,它們存在的目的如下:在請求訪問后端資源時攔截它
管理從服務器返回給客戶端的響應
下面列出了多種常用的過濾器類型:
認證過濾器
數據壓縮過濾器
加密過濾器
觸發資源訪問事件的過濾器
圖像轉換過濾器
登錄和驗證過濾器
MIME類型鏈過濾器
令牌過濾器
轉換XML內容的XSL/T過濾器
過濾器將會被插入進web.xml文件中,然后映射servlet、JSP文件的名字,或URL模式。部署描述文件web.xml可以在 <Tomcat-installation-directory>\conf 目錄下找到。
當JSP容器啟動網絡應用程序時,它會創建每一個過濾器的實例,這些過濾器必須在部署描述文件web.xml中聲明,并且按聲明的順序執行。
Servlet過濾器方法
一個過濾器就是一個Java類,它實現了javax.servlet.Filter 接口。javax.servlet.Filter接口定義了三個方法:
public void doFilter (ServletRequest, ServletResponse, FilterChain)
每當 request/response要通過過濾鏈時容器會調用這個方法,因為客戶端請求鏈尾的資源?
public void init(FilterConfig filterConfig)
容器調用這個方法來表明一個過濾器被安置在服務中?
public void destroy()
容器調用這個方法來表明一個過濾器正在從服務中移除?
web.xml文件中的JSP過濾器映射
過濾器被定義,然后映射成一個URL或JSP文件名,與servlet被定義然后映射的方式差不多。在部署描述文件web.xml中,使用<filter>標簽來進行過濾器映射;?
您的網絡應用程序可以定義很多不同的過濾器。
過濾器的應用順序
在web.xml中<filter>元素的映射順序決定了容器應用這些過濾器的順序。要反轉應用的順序,您只需要反轉web.xml中<filter>元素的定義順序就行了。
JSP 日期處理
使用JSP最重要的優勢之一,就是可以使用所有Java ?API。Java中的Date類,它在java.util包下,封裝了當前日期和時間。Date類有兩個構造函數。第一個構造函數使用當前日期和時間來初始化對象。
Date( )
第二個構造函數接受一個參數,這個參數表示從1970年1月1日凌晨至所要表示時間的毫秒數。
Date(long millisec)
Date類方法
1 boolean after(Date date)
如果比給定的日期晚,則返回true,否則返回false?
2 boolean before(Date date)
如果比給定的日期早,則返回true,否則返回false?
3 Object clone( )
獲取當前對象的一個副本?
4 int compareTo(Date date)
如果與給定日期相等,則返回0,如果比給定日期早,則返回一個負數,如果比給定日期晚,則返回一個正數?
5 int compareTo(Object obj)
與 compareTo(Date) 方法相同,如果 obj 不是Date類或其子類的對象,拋出ClassCastException異常?
6 boolean equals(Object date)
如果與給定日期相同,則返回true,否則返回false?
7 long getTime( )
返回從1970年1月1日凌晨至此對象所表示時間的毫秒數?
8 int hashCode( )
返回此對象的哈希碼?
9 void setTime(long time)
使用給定參數設置時間和日期,參數time表示從1970年1月1日凌晨至time所經過的毫秒數?
10 String toString( )
將此對象轉換為字符串并返回這個字符串?
使用JSP編程可以很容易的獲取當前日期和時間,只要使用Date對象的toString()方法就行了,
使用SimpleDateFormat格式化日期
SimpleDateFormat使用一種地區敏感的方式來格式化和解析日期,它允許您使用自定義的模式來格式化日期和時間。
<%
? ?Date dNow = new Date( );
? ?SimpleDateFormat ft =?
? ?new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
? ?out.print( "<h2 align=\"center\">" + ft.format(dNow) + "</h2>");
%>
得到如下結果:?
Mon 2013.06.21 at 10:06:44 PM GMT+04:00
SimpleDateFormat格式碼
要指定模式字符串,需要使用下表列出的格式碼:
字符 描述 示例?
G 時代標識符 AD?
y 4位數年份 2001?
M 月 July or 07?
d 日 10?
h 12小時制, A.M./P.M. (1~12) 12?
H 24小時制 22?
m 分鐘 30?
s 秒 55?
S 毫秒 234?
E 星期 Tuesday?
D 一年中的某天 360?
F 一個月中某星期的某天 2 (second Wed. in July)?
w 一年中的某星期 40?
W 一個月中的某星期 1?
a A.M./P.M. 標記 PM?
k 一天中的某個小時 (1~24) 24?
K 一天中的某個小時,A.M./P.M. (0~11) 10?
z 時區 Eastern Standard Time?
' 文本分隔 Delimiter?
" 單引號 `?
總結
- 上一篇: javascript调试工具
- 下一篇: 安卓开发资料