1. 程式人生 > 程式設計 >通過例項瞭解JavaBean開發及使用過程解析

通過例項瞭解JavaBean開發及使用過程解析

一、JavaBean簡介

JavaBean是使用Java語言開發的一個可重用的元件,在JSP的開發中可以使用JavaBean減少重複程式碼,使整個JSP程式碼的開發更簡潔。JSP搭配JavaBean來使用,有以下的優點:

1.可將HTML和Java程式碼分離,這主要是為了日後維護的方便。如果把所有的程式程式碼(HTML和Java)寫到JSP頁面中,會使整個程式程式碼又多又複雜,造成日後維護上的困難。

2.可利用JavaBean的優點。將日常用到的程式寫成JavaBean元件,當在JSP要使用時,只要呼叫JavaBean元件來執行使用者所要的功能,不用再重複寫相同的程式,這樣以來也可以節省開發所需的時間。

二、JavaBean開發要求

1.JavaBean本身就是一個類,屬於Java的面向物件程式設計。

2.在JSP中如果要應用JSP提供的Javabean的標籤來操作簡單類的話,則此類必須滿足如下的開發要求:

(1)所有的類必須放在一個包中,在WEB中沒有包的是不存在的;

(2)所有的類必須宣告為public class,這樣才能夠被外部所訪問;

(3)類中所有的屬性都必須封裝,即:使用private宣告;

(4)封裝的屬性如果需要被外部所操作,則必須編寫對應的setter、getter方法;

(5)一個JavaBean中至少存在一個無參構造方法,此為JSP中的標籤所使用。

第一個簡單JavaBean

package blog.csdn.joywy; 
public class SimpleBean{ 
  private String name; 
  private int age; 
  public void setName(String name){ 
    this.name = name; 
  } 
  public void setAge(int age){ 
    this.age = age; 
  } 
  public String getName(){ 
    return this.name; 
  } 
  public int getAge(){ 
    return this.age; 
  } 
} 

如果在一個類中只包含屬性、setter、getter方法,那麼這種類就成為簡單JavaBean。

對於簡單的JavaBean也有幾個名詞:

(1)VO:與簡單Java物件對應,專門用於傳遞值的操作上

(2)POJO:簡單Java物件

(3)TO:傳輸物件,進行遠端傳輸時,物件所在的類必須實現java.io.Serializable介面。

三、WEB開發的標準目錄結構

Web專案中各個目錄的作用:

No.

目錄或檔名稱

作用

1

WEBROOT

Web的根目錄,一般虛擬目錄直接指向此資料夾,此資料夾下必然直接包含WEB-INF

2

WEB-INF

Web目錄中最安全的資料夾,儲存各種類、第三方jar包、配置檔案

3

Web.xml

Web的部署描述符

4

classes

儲存所有的JavaBean,如果不存在,可以手工建立

5

lib

儲存所有的第三方jar檔案

6

tags

儲存所有的標籤檔案

7

jsp

存放*.jsp檔案,一般根據功能再建立子資料夾

8

js

存放所有需要的*.js檔案

9

css

樣式表文件的儲存路徑

10

images

存放所有的圖片,如*.gif或*.jpg檔案

注:

1.打包編譯:編譯時直接使用javac -d . SimpleBean.java命令根據package的定義打包編譯。

2.Tomcat中classpath的配置:

所有的class要進行訪問時都必須在classpath中進行配置,在Tomcat中依然可以使用,在Web開發中,Tomcat安裝目錄的lib資料夾、WEB-INF\classes和WEB-INF\lib資料夾實際上都表示了classpath,所以直接將類或jar包複製到這些資料夾中就可以直接使用了。

<%@ page contentType="text/html" pageEncoding="GBK"%> 
<%@ page import="blog.csdn.joywy.*"%>  <!-- 匯入blog.csdn.joywy包 --> 
<html> 
<head><title>歡迎來到望星空</title></head> 
<body> 
<% 
  SimpleBean simple = new SimpleBean();  //宣告並例項化SimpleBean物件 
  simple.setName("Joywy");         //設定name屬性 
  simple.setAge(23);            //設定age屬性 
%> 
<h3>姓名:<%=simple.getName()%></h3>      <!-- 輸出name屬性的內容 --> 
<h3>年齡:<%=simple.getAge()%></h3>       <!-- 輸出age屬性的內容 --> 
</body> 
</html> 

四、使用<jsp:useBean>指令

除了使用import的語句之外,也可以使用JSP中提供的:<jsp:useBean>指令完成操作,指令的操作語法如下所示:

1.<jsp:useBean id="例項化物件名稱" scope=“儲存範圍” class=“包.類名稱“/>

2.主要屬性:

(1)id:表示例項化物件的名稱

(2)scope:表示此物件儲存的範圍,一共有四種屬性範圍:page、request、session、application

(3)class:物件所對應的包.類名稱
樣例:

<%@ page contentType="text/html" pageEncoding="GBK"%> 
<jsp:useBean id="simple" scope="page" class="blog.csdn.joywy.SimpleBean"/> 
<html> 
<head><title>歡迎來到望星空</title></head> 
<body> 
<% 
  simple.setName("Joywy"); 
  simple.setAge(23); 
%> 
<h3>姓名:<%=simple.getName()%></h3> 
<h3>年齡:<%=simple.getAge()%></h3> 
</body> 
</html> 

在使用<jsp:useBean/>指令時,實際上會預設呼叫SimpleBean類中的無參構造方法進行物件例項化,當修改SimpleBean.java檔案後,如果要想讓其起作用,則需要重新啟動伺服器,我們可以通過在Tomcat中直接配置自動載入的操作,這樣即使不重新啟動伺服器,JavaBean修改後也可以被立即載入進來。重新載入的配置如下:在Tomcat安裝目錄下conf/server.xml檔案中進行配置

<Context path="/joywy" docBase="D:\myweb" reloadable="true"/>

以後Tomcat會自動進行檢測,如果發現JavaBean修改之後會自動進行重新載入。

注意:

1.直接在配置虛擬目錄的位置上增加一個reloadable屬性即可,但是這種情況只適合於開發,因為使用reloadable自動載入後,伺服器將始終處於監視狀態,一旦發現類修改後就要立刻重新載入,執行效能是比較低的,所以,當專案真正釋出執行時一定要將reloadable的內容設定成false,以提升入屋企執行效能。

2.還要記住,當Tomcat重新載入了新的內容後,所有的操作都將初始化,所有設定過的session屬性都將消失。

五、<jsp:useBean>指令內部實現原理

依靠的是反射機制完成的,在使用<jsp:useBean>指令時需要定義物件所在的“包.類“名稱,而且又要求類中存在無參構造方法,這就是反射操作的前提條件,所以<jsp:useBean>的語法實際上屬於反射機制的操作實現。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。