Java Bean -- web開發

轉自:https://blog.csdn.net/joywy/article/details/7773503

一、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

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

package javabean;  
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;  
    }  
}

對於簡單的JavaBean也有幾個名詞:
(1)VO:與簡單Java對象對應,專門用於傳遞值的操作上
(2)POJO:簡單Java對象
(3)TO:傳輸對象,進行遠程傳輸時,對象所在的類必須實現java.io.Serializable接口。

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

Web項目中各個目錄的作用:

No. 目錄或文件名稱 作用
1 WEB ROOT 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="javabean.*"%>    <!-- 導入javabean包 -->
<html>
<head><title>welcome</title></head>
<body>
<%
	SimpleBean simple = new SimpleBean();    //聲明並實例化SimpleBean對象
	simple.setName("yy");                    //設置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="javabean.SimpleBean"/>
<html>
<head><title>welcome</title></head>
<body>
<%
	simple.setName("yy");
	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="/yy" docBase="D:\myweb" reloadable="true"/>

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

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

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

四、<jsp:useBean>在這裏插入代碼片指令內部實現原理

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

JavaBean 使用詳解(idea開發)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章