JSPとJava Bean
Java Beanの基本概念
まずソフトウェア設計の階層概念を理解し、ソフトウェアを開発する過程で、できるだけビジネスロジックと表現層を分離し、完全なデカップリングを達成しなければならない.Javabeanはビジネスロジックを実装するためによく使用され、jspページは表現層に使用されます.jspページは、ユーザの入力を受信し、処理後の結果を表示するためにのみ使用され、jspページに大量のjavaコードを埋め込む必要はありません.JAvabeanの特性1.反射メカニズムのサポート:反射メカニズムを使用してjavabeanがどのように動作しているかを分析できます.2.サポートイベント:イベントはjavabean 3に対応する情報を通知する簡単な通信メカニズムである.サポートプロパティ:カスタムプロパティ、標準ラベルを使用してjspページとインタラクティブなデータ4.持続性のサポート:持続性とはjavabeanを保存し、必要に応じてjavabeanを作成する基本構造を再ロードできることを意味します.
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ライフサイクルのプレゼンテーション
2.BeanのpageライフサイクルBeanクラスは同じ
3.Beanのセッションライフサイクルはpageライフサイクルと同じで、scopeをセッションに変更するだけです.同じユーザの場合、同じBeanオブジェクトを参照しているので、2回のジャンプのプロパティ値も同じです.4.Beanのアプリケーションライフサイクル表示効果は、システムのデフォルトのデータを取得し、1回リフレッシュした後に数値変換しますが、オブジェクトは変更されていません.同じオブジェクトを参照していることを示します.
まずソフトウェア設計の階層概念を理解し、ソフトウェアを開発する過程で、できるだけビジネスロジックと表現層を分離し、完全なデカップリングを達成しなければならない.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回リフレッシュした後に数値変換しますが、オブジェクトは変更されていません.同じオブジェクトを参照していることを示します.