一個jsp(SUN企業級應用的首選)初學者的學習過程(四)
TheUnforgiven
第四章 第一個Javabean
一、先看看如何取當前時間並顯示的代碼:
------------------------------------------------
<%
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date currentTime = new java.util.Date();//得到當前系統時間
String str_date1 = formatter.format(currentTime); //將日期時間格式化
String str_date2 = currentTime.toString(); //將Date型日期時間轉換成字符串形式
%>
格式化成"yyyy-MM-dd HH:mm:ss"格式的日期時間:<%=str_date1%>
未經格式化的String格式的日期時間:<%=str_date2%>
未經格式化的Date格式的日期時間:<%=currentTime%>
-------------------------------------------------
頁面的輸出內容:
格式化成"yyyy-MM-dd HH:mm:ss"格式的日期時間:2005-03-17 09:55:40
未經格式化的String格式的日期時間:Thu Mar 17 09:55:40 CST 2005
未經格式化的Date格式的日期時間:Thu Mar 17 09:55:40 CST 2005
通常我們需要的是這種格式化後的時間:2005-03-17 09:55:40。現在有這樣一個問題:“2005-03-17 09:55:40”是一個字符串,有些時候我們需要在這個字符串裡提取出年、月、日等的相關信息,怎麼辦呢?看下面的代碼:
----------------------規則的字符串----------------------------------------------
規則的字符串(年4位,月2位,日2位,中間用字符“-”分隔):
<br>原字符串為:
<%
String date="1989-12-30";
out.println(date+"<br>");
String year=date.substring(0,4);//取第0+1位至第4位
String month=date.substring(5,7);//取第5+1位至第7位
String day=date.substring(8,10);//取第8+1位至第10位
out.println("year="+year+",month="+month+",day="+day);
%>
----------------------------------------------------------------------------------
從上面的代碼我們可以看出來:這只能針對規則的字符串(年4位,月2位,日2位),要是不規則的呢?年可能2位也可能4位,月和日可能1位也可能2位,怎麼辦?通過對上面的代碼修改,可以得到下面的通用的代碼(這個“通用”有一個前提——年月日之間必須以“-”分隔):
----------------------不規則的字符串----------------------------------------------
不規則的字符串(年、月、日長度不一定,中間用字符“-”分隔):
<br>原字符串為:
<%
String date="04-05-6";
out.println(date+"<br>");
int a=date.indexOf("-");//求第一個“-”的位數
int b=date.lastIndexOf("-");//求最後一個“-”的位數
int len=date.length();//求字符串的長度
year=date.substring(0,a);//取第一個“-”前的字符串
month=date.substring(a+1,b);//取兩個“-”之間的字符串
day=date.substring(b+1,len);//取最後一個“-”以後的字符串
out.println("year="+year+",month="+month+",day="+day);
%>
----------------------------------------------------------------------------------
現在這個問題解決了。可是我們會想到:每次需要對一個表示年月日的字符串進行分割的時候都需要在.jsp(SUN企業級應用的首選)頁面裡寫上這麼一段代碼,不但麻煩而且使頁面顯得混亂,能不能以一種看起來更清晰的方法解決這個問題呢?當然可以了,用javabean就行了。
二、第一個javabean
什麼是javabean?我在接觸到這個問題時苦惱不已,因為我始終無法理解這個概念,直到我相繼寫了幾個之後,我蓦然發現:它不就是一個類嗎?!現在,我們先不去管什麼是類,先看下面的這個javabean: