一个Jsp初学者的学习过程(四)

2008-02-23 10:02:35来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

一个JSP初学者的学习过程(四)

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页面里写上这么一段代码,不但麻烦而且使页面显得混乱,能不能以一种看起来更清晰的方法解决这个问题呢?当然可以了,用javabean就行了。

二、第一个javabean
什么是javabean?我在接触到这个问题时苦恼不已,因为我始终无法理解这个概念,直到我相继写了几个之后,我蓦然发现:它不就是一个类吗?!现在,我们先不去管什么是类,先看下面的这个javabean:
--------------------------------DateBean.java-------------------------------------
//该bean能够从jsp文件中得到一个表示年月日(用“-”分隔)的字符串,然后返回给jsp文件分别表示年、月、日的字符串
package ringz.javabeans; //ringz.javabeans是我的包名,我自己写的javabean都在这个包里
public class DateBean //这个class的名字是DateBean,那么这个javabean文件的名就必须叫:DateBean.java
{
private String dateStr;
private String year;
private String month;
private String day;
//
public void setDateStr(String str) //私有变量dateStr的set方法
{
this.dateStr=str;
}
public String getDateStr() //私有变量dateStr的get方法
{
return dateStr;
}
public String getYear()//得到年的字符串
{
int a=dateStr.indexOf("-");//求第一个“-”的位数
year=dateStr.substring(0,a);//取第一个“-”前的字符串
return year;
}
public String getMonth()//得到月的字符串
{
int a=dateStr.indexOf("-");//求第一个“-”的位数
int b=dateStr.lastIndexOf("-");//求最后一个“-”的位数
month=dateStr.substring(a 1,b);//取两个“-”之间的字符串
return month;
}
public String getDay()//得到日的字符串
{
int b=dateStr.lastIndexOf("-");//求最后一个“-”的位数
int len=dateStr.length();//求字符串的长度
day=dateStr.substring(b 1,len);//取最后一个“-”以后的字符串

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:关于Tomcat的并发处理能力

下一篇:java.lang.VerifyError翻译