JAvaEE jspとjavaBeanの使用

6528 ワード

MVC設計モード:(Model View Control)
Class jsp Servlet
JavaBeanは、プラットフォーム間で再利用可能なソフトウェアコンポーネントです.JavaBeanは2つに分けられます.1つはユーザーインタフェース(UI)のあるjavaBeanです.
もう1つは、データ演算、データベース操作などのトランザクションを主に処理するユーザーインタフェースのないjavaBeanです.Jspは通常後者のjavaBeanにアクセスする.
JspとjavaBeanを組み合わせて使用するメリット:
1.htmlをjavaプログラムから分離することで、コードのメンテナンスが容易になります.すべてのプログラムコードをjspページに書き込むと、コードが煩雑で次元が立たない
ガード.
2.jspウェブページの開発者のjavaプログラミング能力に対する要求を低減することができる.
3.jspは動的Webページの生成に重点を置き、トランザクションはjavaBeanによって完成され、javaBeanコンポーネントの再利用性の特徴を十分に利用し、開発を向上させることができる.
Webサイトの効率性.
標準javaBeanには、次の機能があります.
1.javaBeanは共通のクラスです
2.javaBeanにはパラメータを持たない構造方法がある
3.javaBeanはsetXXXメソッドでプロパティを設定し、getXXXメソッドでプロパティを取得します.
package com.anllin.bean;

public class Person{
    private String name;

    private int age;

    private String address;

    public String getName(){
       return name;
    }

    public void setName(String name){
       this.name = name;
    }

    public int getAge(){
       return age;
    }

    public void setAge(int age){
       this.age = age;
    }

    public String getAddress(){
       return address;
    }

    public void setAddress(String address){
       this.address = address;
    }  
}

JspアクセスjavaBeanの構文
1.javaBeanクラスのインポート
<%@ page import="com.anllin.bean.Person" %>

2.javaBeanオブジェクトの宣言
<jsp:useBean id="person" class="com.anllin.bean.Person"></jsp:useBean>

実は
<%

    Person person = new Person();

%>

Idはクラスを生成するインスタンスを表し、一般idは重複せず、異なるオブジェクトを表すために使用され、同じ場合は同じオブジェクトを表す場合、jspは報告する
間違いです.3.javaBeanプロパティへのアクセス
<jsp:setProperty property="name" name="person" value="jack"/>

<jsp:getProperty property="name" name="person"/>

実は
<%

    person.setName("jack");

    person.getName();

%>

完全な例:
<%@ page language="java" import="com.anllin.bean.Person" pageEncoding="UTF-8"%>

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>My JSP 'javabean.jsp' starting page</title>

  </head>

  <body>

    <jsp:useBean id="person" class="com.anllin.bean.Person"></jsp:useBean>

   
    <jsp:setProperty property="name" name="person" value="jack"/>

    <jsp:setProperty property="age" name="person" value="20"/>

    <jsp:setProperty property="address" name="person" value="beijing"/>


    <jsp:getProperty property="name" name="person"/><br>

    <jsp:getProperty property="age" name="person"/><br>

    <jsp:getProperty property="address" name="person"/><br>

  </body>

</html>

beanのプロパティ値の設定
1.でparamパラメータでbeanの属性を動的に割り当てることができます.
<jsp:setProperty property="age" name="person" param="sage"/>

sageは属性ではなくパラメータ名を表します
ブラウザのアドレスバーに入力
http://localhost:8080/test/javabean.jsp?sage=30
age属性の値30が得られる
Javabeanの生存範囲
Scopeプロパティはjavabeanオブジェクトの存在範囲を決定します.オプションの値は次のとおりです.
1.page(デフォルト)
2.request
3.session
4.application
<jsp:useBean id="person" class="com.anllin.bean.Person" scope="page"></jsp:useBean>

Javabeanがpage範囲内にある場合
お客様は、jspページへのアクセスを要求するたびにjavabeanオブジェクトを作成します.Javabeanオブジェクトの有効範囲は、顧客がアクセスを要求する現在のjspネットワークです.
で行ないます.Javabeanオブジェクトの次の2つの場合、ライフサイクルは終了します.
1.お客様がアクセスを求めているのは、現在のjspページがタグでリクエストを別のファイルに転送することです.
2.顧客がアクセスを要求したのは、現在のjspページの実行が完了し、クライアントに応答を返すことである.
Javabeanはrequestの範囲内です
お客様は、jspページへのアクセスを要求するたびに、新しいjavabeanオブジェクトを作成します.Javabeanオブジェクトの有効範囲は次のとおりです.
1.お客様がアクセスを要求している現在のjspページ.
2.現在のWebページと顧客要求のWebページを共有します.すなわち、現在のjsp Webページの<%@include%>コマンドおよびタグに含まれる他のjspファイルです.
3.javabeanオブジェクトは、同じクライアント要求を共有するすべてのjspページが実行され、クライアントに応答すると、ライフサイクルを終了します.
4.javabeanオブジェクトは属性としてhttp Requestオブジェクトに保存され、属性名javabeanのid、属性値javabeanオブジェクトであるため、
HttpRequest.getAttribute()メソッドjavabeanオブジェクトを取得します.たとえば、次のようにします.
Jvabean.jsp
<jsp:useBean id="person" class="com.anllin.bean.Person" scope="request"></jsp:useBean>

<jsp:forward page="javabean2.jsp"></jsp:forward>

Javabean2.jsp
<%@ page import="com.anllin.bean.Person" %>

    <%

    Person person = (Person)request.getAttribute("person");

    out.print(person.getName());

    %>

Javabeanはセッションの範囲内です
1.Javabeanオブジェクトが作成されると、セッション全体のライフサイクルに存在し、セッション内のjspファイルがjavabeanオブジェクトを共有します.
2.javabeanオブジェクトは、属性としてHttpSessionオブジェクトに保存されます.属性名はjavabeanのidで、属性値はjavabeanオブジェクトです.通過できる以外は
JAvabeanのidはjavabeanオブジェクトを直接参照するほか、HttpSession.getAttribute()メソッドjavabeanオブジェクトを取得します.たとえば、次のようにします.
<jsp:useBean id="person" class="com.anllin.bean.Person" scope="session"></jsp:useBean>
    Person person = (Person)session.getAttribute("person");

    out.print(person.getName());

Javabeanはアプリケーションの範囲内です
1.javabeanオブジェクトが作成されると、Webアプリケーション全体のライフサイクルに存在し、Webアプリケーション内のすべてのjspファイルが同じjavabeanを共有できます.
オブジェクト.
2.javabeanオブジェクトはアプリケーションオブジェクトに属性として保存されます.属性名はjavabeanのidで、属性値はjavabeanオブジェクトです.
JAvabeanのidはオブジェクトを直接参照するほか、javabeanのアプリケーションでもよい.getAttribute()メソッドjavabeanオブジェクトを取得します.たとえば、次のようにします.
<jsp:useBean id="person" class="com.anllin.bean.Person" scope="application"></jsp:useBean>
    Person person = (Person)application.getAttribute("person");

    out.print(person.getName());

Personクラスがある場合、属性nameがあります.
なぜgetCCNmaなどではなくgetName()メソッドとsetName()メソッドを提供するのですか?
この仕様を守ってこそ、反射によってこの2つの方法を呼び出すことができるからです.
ポイント:
page,request,session,applicationの違いとライフサイクルを区別します.