JSP中JavaBean应用步骤详解

    编写JSP动态网页设计时,怎么应用JavaBean呢?下面是对JavaBean的使用讲解,并根据UFO的一个JavaBean演示实例做详解,有兴趣的朋

友可以去www.gm365.com下载最新版本的UFO,里面附带了近50个JSP、JavaBean、servlet的典型实例(针对中文用户)。

一、编写使用JavaBean的JSP文件,如UFO中的演示实例time.jsp:

<%@ page contentType="text/html;Charset=GB2312" %>
<%@ page import="ufobean.ShowCalendar" %>
<HTML><BODY>
<jsp:useBean id="clock" class="ufobean.ShowCalendar" scope="page" />
<Table border=4>
<tr>
  <td align="center"><font color="blue"><jsp:getProperty name="clock" property="year"/></font>年</td>
  <td><jsp:getProperty name="clock" property="month"/>月
      <jsp:getProperty name="clock" property="dayOfMonth"/>日
       星期<jsp:getProperty name="clock" property="day"/>
  </td>
</tr>
<tr>
  <td>当前时间为</td>
  <td><jsp:getProperty name="clock" property="time"/></td>
</tr>
<tr>
  <td>今天是今年的第</td>
  <td><jsp:getProperty name="clock" property="dayOfYear"/>天</td>
</tr>
<tr>
  <td>本周是今年的第</td>
  <td><jsp:getProperty name="clock" property="weekOfYear"/>周</td>
</tr>
<tr>
  <td>本周是本月的第</td>
  <td><jsp:getProperty name="clock" property="weekOfMonth"/>周</td>
</tr>
</Table>
<jsp:getProperty name="clock" property="date"/>
</BODY></HTML>

在上面代码中的第二行<%@ page import="ufobean.ShowCalendar"%>这个语句,意思是引入ufobean包以及包中的文件;其次要注意
<jsp:useBean id="clock" class="ufobean.ShowCalendar" scope="page"/>语句,其中id的值是自定义的,class值是包名加点再加JavaBean

名,scope有几个值,默认值是page,另外还有session,application等等,这里用page。time.jsp多次用到<jsp:getProperty>,其作用是获

取JavaBean(ShowCalendar)的属性值,显示在页面中 。

JavaBean(ShowCalendar.java)代码如下:
package ufobean;
import java.util.*;
public class ShowCalendar{
   Calendar  calendar = null;
   int year,dayOfMonth,dayOfYear,weekOfYear,
   weekOfMonth,dayOfWeek,hour,minute,second;
   String  day,date,time;
   public ShowCalendar(){
     calendar = Calendar.getInstance();
     Date time = new Date();
     calendar.setTime(time);
   }
   public int getYear(){
     return calendar.get(Calendar.YEAR);
   }
   public String getMonth(){
     int m=1+calendar.get(Calendar.MONTH);
     String months[]={"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" };
     if(m>12) 
       return "0";
       return months[m-1];
   }
   public String getDay(){
     int n =getDayOfWeek();
     String days[]={"日","一", "二", "三","四", "五", "六"};
     if(n>7)
       return "星期?";
       return days[n];
   }
   public String getDate(){
     return  getYear()+ "/" + getMonth()+"/"+getDayOfMonth();
   }
   public String getTime(){
     return getHour() + ":" + getMinute() + ":" + getSecond();
   }
   public int getDayOfMonth(){ 
     return calendar.get(Calendar.DAY_OF_MONTH);
   }
   public int getDayOfYear(){
     return calendar.get(Calendar.DAY_OF_YEAR);
   }
   public int getWeekOfYear(){
     return calendar.get(Calendar.WEEK_OF_YEAR);
   }
   public int getWeekOfMonth(){
     return calendar.get(Calendar.WEEK_OF_MONTH);
   }
   public int getDayOfWeek(){
     return calendar.get(Calendar.DAY_OF_WEEK)-1;
   }
   public int getHour(){
     return calendar.get(Calendar.HOUR_OF_DAY);
   }
   public int getMinute(){
     return calendar.get(Calendar.MINUTE);
   }
   public int getSecond(){
     return calendar.get(Calendar.SECOND);
   }
}

二、编译ShowCalendar.java文件
    这里介绍在DOS下怎么编译JavaBean:开始——运行——输入cmd——通过cd..或者cd进入到JavaBean(ShowCalendar.java)所在目录,然后

输入命令:javac ShowCalendar.java后,就可以得到生成在ufobean包中的ShowCalendar.class字节文件了,到此编译完毕。 如果重新修改过

JavaBean,那么要先把以前的旧的.class文件删除掉,然后重新编译JavaBean。

三、在UFO中访问time.jsp文件调用JavaBean
1、在UFO原有的目录下运行time.jsp       

a)、将time.jsp放置于UFO\webapps\ROOT目录下,将ShowCalendar.class放置于UFO\webapps\ROOT\WEB-INF\classes\ufobean目录下,
启动UFO,输入如下地址http://localhost:80/time.jsp,便可成功运行了。
  b)、将time.jsp放置于UFO\webapps\examples目录下,将ShowCalendar.class放置于UFO\webapps\examples\WEB-INF\classes\ufobean
目录下,启动UFO,输入如下地址http://localhost:80/examples/time.jsp,就OK了。 
2、自己在webapps目录下建立新目录
    建立目录的时候要注意:文件夹名是WEB-INF,而不是WEN_INF,注意中间的横杠要写对;文件夹名是classes而不是class;classes下的包

名也得注意,它是跟你JavaBean里所起的包名相同,比如,你在JavaBean文件中有以下语句:import ufobean;就意味着你引入了名为ufobean

的包,那么在classes文件夹下的包名(文件夹名)应该是ufobean了。剩余步骤对比1、b)中的方法做就OK了。

四、整个jsp使用JavaBean的过程就是这样,大家都会了吧。