JSPとJava Bean

29712 ワード

Java Beanの基本概念
まずソフトウェア設計の階層概念を理解し、ソフトウェアを開発する過程で、できるだけビジネスロジックと表現層を分離し、完全なデカップリングを達成しなければならない.Javabeanはビジネスロジックを実装するためによく使用され、jspページは表現層に使用されます.jspページは、ユーザの入力を受信し、処理後の結果を表示するためにのみ使用され、jspページに大量のjavaコードを埋め込む必要はありません.JAvabeanの特性1.反射メカニズムのサポート:反射メカニズムを使用してjavabeanがどのように動作しているかを分析できます.2.サポートイベント:イベントはjavabean 3に対応する情報を通知する簡単な通信メカニズムである.サポートプロパティ:カスタムプロパティ、標準ラベルを使用してjspページとインタラクティブなデータ4.持続性のサポート:持続性とはjavabeanを保存し、必要に応じてjavabeanを作成する基本構造を再ロードできることを意味します.
public class test implements Serializable {
    private String test_id;
    private String test_name;
    private double price;
    private String info;
    public test(){
        super();
    }

    public String getTest_id() {
        return test_id;
    }

    public void setTest_id(String test_id) {
        this.test_id = test_id;
    }

    public String getTest_name() {
        return test_name;
    }

    public void setTest_name(String test_name) {
        this.test_name = test_name;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }
}

1.JavaBeanクラスはpublicクラスでなければならない.jspページ呼び出しに提供する方法は、publicアクセス権限3を付与する必要がある.JavaBeanクラスのプロパティは、jspページ呼び出しにpublicのgetメソッドとsetメソッド4を提供する必要があります.パラメータなしで構築する方法が必要です
JSPでのJavaBeanの使用
まず注意:1.仕様に従ってBeanクラスを定義し、クラス属性の対応するgetメソッドとsetメソッド2を与える.ページに適切なBeanクラス3をインポートする.JSPページでjsp:useBeanラベルを使用してbeanクラスを使用してBeanのClassファイルをWebサーバの共有ディレクトリに配置します.
属性値
説明
id
Beanの変数名は、指定した範囲で使用できます.
class
Beanのクラスパス
scope
Beanの有効範囲、値page、request、session、アプリケーション
beanName
インスタンス化されたクラス名またはシーケンス化テンプレートの名前.指定した名前はインタフェース、親クラスです.
type
HsahMapをインスタンス化するなど、親またはインタフェースモデルを指定しますが、typeはMapとして入力できます.
jsp:useBeanラベル注意1を使用する.classまたはbeanNameは同時に存在できません.JavaBeanオブジェクトが既に存在する場合、classとbeanNameのプロパティは、typeプロパティ2を指定するだけで指定できます.classはtypeを省いて独立して使用できますが、beanNameはtypeと一緒に使用する必要があります.classで指定したクラスにはpublic、無参の構造方法が含まれている必要があります.4.classまたはbeanNameで指定するクラスには名前を含める必要がありますが、typeはパッケージ名を省くことができ、所属するパッケージclassを指定することでnewでjavaBeanオブジェクトを作成し、beanNameはjavaによって作成されます.beans.Beans.instantiate JavaBeanオブジェクトjsp:useBeanラベルのBeanの役割ドメインの4つ:page,request,session,applicationを初期化します.jspエンジンは、役割ドメインに応じてユーザーに異なるBeanを割り当て、複数のユーザーが同じBeanを持つように実行し、各顧客のBeanは互いに独立している.1.request:同じユーザの異なる要求に対して、異なるBeanオブジェクトBeanをユーザに割り当てるライフサイクルは、クライアント要求から応答終了までの時間である.2.page:異なるページに対して、ユーザーに異なるBeanオブジェクトを割り当て、顧客が現在のページに入るとオブジェクトが割り当てられ、ユーザーが現在のページを離れると、割り当てられたBeanオブジェクトがキャンセルされます.Beanライフサイクルは現在のページ3にあります.session:同じユーザに対して同じウェブプロジェクトの下の異なるページにアクセスすると、ユーザの異なるBeanオブジェクトに割り当てられます.ユーザがWebディレクトリを離れると、割り当てられたBeanオブジェクトは、Webプロジェクトのセッション時間である.アプリケーション:アクセスユーザに同じBeanオブジェクトを割り当てるライフサイクルは,Webアプリケーションの存在時間,Webアプリケーションのサーバに存在する時間である.
Beanプロパティへのアクセス
ラベル:jsp:setProperty Beanのプロパティ値1を設定するには、このラベルを使用します.文字列または式を使用してBean属性に値を割り当てます.式の値はBean属性の値タイプと同じです.フォームのパラメータ形式を使用してBean属性に値を割り当てます.フォームに指定されたパラメータ名はBean属性の名前と同じです.3.フォームのパラメータ値を使用してBeanに値を割り当てます.フォームに指定されたパラメータ名は、jsp:setPropertyラベルのparam属性値の名前と同じである必要があります.jsp:getPropertyこのラベルを使用してBeanプロパティを取得
Beanの役割ドメイン
1.Beanのrequestライフサイクルのプレゼンテーション
//Bean 
public class circle implements Serializable {
    private double radius = 1.0d;
    private double circleArea = 0.0d;//  
    private double circum = 0.0d;//  
    public circle(){
        super();
    }

    public double getRadius() {
        return radius;
    }

    public void setRadius(double radius) {
        this.radius = radius;
    }

    public double getCircleArea() {
        circleArea = Math.PI*radius*radius;
        return circleArea;
    }

    public void setCircleArea(double circleArea) {
        this.circleArea = circleArea;
    }

    public double getCircum() {
        circum = 2*Math.PI*radius;
        return circum;
    }

    public void setCircum(double circum) {
        this.circum = circum;
    }
}
//request.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" import="java.util.*,until9javabean.circle" %>
<!--  bean-->
<jsp:useBean id="circle" class="until9javabean.circle" scope="request"/>
<html>
<head>
    <title>Bean request    </title>
    <!--1.  Bean request           ,       bean      
        2.1
    -->
</head>
<%
    String radius = request.getParameter("radius");
    if (radius==null||radius.equals("")){
        radius = "1";
    }
    double rad = Double.parseDouble(radius);
    circle.setRadius(rad);
%>
<body>
    <form action="" method="post">
              :<input type="text" name="radius"/><br/>
        <input type="submit" name="  "><br/>
         Bean    <%=circle.toString()%><br/>
            :<jsp:getProperty name="circle" property="radius"/><br/>
            :<jsp:getProperty name="circle" property="circum"/><br/>
            :<jsp:getProperty name="circle" property="circleArea"/>
    </form>
</body>
</html>

2.BeanのpageライフサイクルBeanクラスは同じ
//page_scope.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" import="until9javabean.circle,java.util.*" %>
<jsp:useBean id="circle" class="until9javabean.circle" scope="page"/>
<!--
1.                bean  
2.          ,        bean           
-->
<html>
<head>
    <title>Bean page    </title>
</head>
<body>
     Bean   :<%=circle.toString()%><br/>
       Bean    20:
    <%
        circle.setRadius(20);
    %>
        :<jsp:getProperty name="circle" property="radius"/><br/>
        :<jsp:getProperty name="circle" property="circum"/><br/>
        :<jsp:getProperty name="circle" property="circleArea"/><br>
    <form action="page_scope1.jsp" method="post">
        <input type="submit" name="  ">
    </form>
</body>
</html>
//page_scope1.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" import="until9javabean.circle,java.util.*" %>
<jsp:useBean id="circle" class="until9javabean.circle" scope="page"/>
<html>
<head>
    <title>bean page    </title>
</head>
<body>
     Bean   :<%=circle.toString()%><br/>
        :<jsp:getProperty name="circle" property="radius"/><br/>
        :<jsp:getProperty name="circle" property="circum"/><br/>
        :<jsp:getProperty name="circle" property="circleArea"/><br>
</body>
</html>

3.Beanのセッションライフサイクルはpageライフサイクルと同じで、scopeをセッションに変更するだけです.同じユーザの場合、同じBeanオブジェクトを参照しているので、2回のジャンプのプロパティ値も同じです.4.Beanのアプリケーションライフサイクル表示効果は、システムのデフォルトのデータを取得し、1回リフレッシュした後に数値変換しますが、オブジェクトは変更されていません.同じオブジェクトを参照していることを示します.