Jsp_Servlet_JavaBean_Chapter07_理論ノート
1、JavaBean
*コンセプト
広義の観点から言えば、どの規範に合致するJavaクラスもJavaBeanと呼ぶことができる.
狭義の観点から、JavaBeanのクラスになるには3つの条件を満たす必要があります.
●共有クラスで、パラメータを持たない共有構造方法(??)
●属性私有化
●共通のアクセス属性を持つsetterとgetterメソッド
例:User.java
*分類
機能的に分ける:データをカプセル化し、業務をカプセル化する
2、標準動作
test.html
<%
String username = request.getParameter("txtUserName");
String password = request.getParameter("txtPassWord");
User user = new User();
request.setAttribute("user", user);
user.setUsername(username);
user.setPassword(password);
%>
username: <%=user.getUsername() %>
password: <%=user.getPassword() %>
*役割:以前はjspでJavaBeanを使用していた場合、Javaスクリプトを使用する必要がありました.このようにjspページには、大量のHTMLタグだけでなく、
多くのJavaコードは、ページのメンテナンスや拡張に不便です.標準アクションを使用してJavaBeanを操作すると、スクリプトなし環境が提供されます.
*構文:
*分類
JavaBean関連:useBean,setProperty,getProperty
プロセスに関連する:forward,include,param
* useBean:
●役割:JavaBeanのインスタンスを作成する
●構文:
id:作成したJavaBeanインスタンスの名前を指定する
class:インスタンスを作成するJavaBeanのフルネーム(パッケージ名.クラス名)を指定します.
scope:作成したJavaBeanインスタンスが保存する範囲を指定します.page、request、session、application、デフォルトはpageです.
●例:
等価:User user=new User()
request.setAttribute("user", user);
* setProperty
●役割:JavaBeanの指定属性に値を設定する
●構文:
●例:
●注意:paramの属性値はフォーム要素の名前と一致する必要があります
property=「*」を使用する場合、フォーム要素の名前はJavaBeanのプロパティ名と一致し、フォーム要素の値を
JavaBeanに対応する属性上.
setPropertyではvalueとparamを同時に使用できません
* getProperty
●役割:JavaBeanの指定属性の値を取得する
●構文:
●例:
userBean,setProperty,getProperty実質:
userBean:反射によるJavaBeanのインスタンスの作成
setProperty:属性を反射して呼び出すsetメソッド
getProperty:属性を反射して呼び出すgetメソッド
JavaBean仕様の説明
a)Class classType = Class.forName("com.westaccp.store.User");
classType.newInstance();
JavaBeanを書くときに、パラメータ付きの構造方法が提供されている場合は、共通の無パラメータの構造方法を手動で提供する必要があります.
パラメトリック構造メソッドが提供されていない場合、Java仮想機会は自動的にパラメトリック構造メソッドを提供し、この場合、手動でパラメトリック構造メソッドを提供しなくてもよい.
b)JavaBeanのプロパティとは?
getメソッドまたはgetメソッドの後ろの文字列です
setUsername()-->username
setName()-->name
getUsername()-->username
getName()-->name
useBeanでのscopeの説明
* forward
●作用:内部ジャンプ、転送要求、作用はrequest.getRequestDispatcher("url").forward(request, response);
●構文:
●例:
* include
●役割:他のページを現在のページに含める
●構文:
●例:
*コンセプト
広義の観点から言えば、どの規範に合致するJavaクラスもJavaBeanと呼ぶことができる.
狭義の観点から、JavaBeanのクラスになるには3つの条件を満たす必要があります.
●共有クラスで、パラメータを持たない共有構造方法(??)
●属性私有化
●共通のアクセス属性を持つsetterとgetterメソッド
例:User.java
public class User {
private String username;
private String password;
public User() {
}
public void setUsername(String username) {
this.username = username;
}
public String getUsername() {
return this.username;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword() {
return this.password;
}
}
*分類
機能的に分ける:データをカプセル化し、業務をカプセル化する
2、標準動作
test.html
<%
String username = request.getParameter("txtUserName");
String password = request.getParameter("txtPassWord");
User user = new User();
request.setAttribute("user", user);
user.setUsername(username);
user.setPassword(password);
%>
username: <%=user.getUsername() %>
password: <%=user.getPassword() %>
*役割:以前はjspでJavaBeanを使用していた場合、Javaスクリプトを使用する必要がありました.このようにjspページには、大量のHTMLタグだけでなく、
多くのJavaコードは、ページのメンテナンスや拡張に不便です.標準アクションを使用してJavaBeanを操作すると、スクリプトなし環境が提供されます.
*構文:
*分類
JavaBean関連:useBean,setProperty,getProperty
プロセスに関連する:forward,include,param
* useBean:
●役割:JavaBeanのインスタンスを作成する
●構文:
id:作成したJavaBeanインスタンスの名前を指定する
class:インスタンスを作成するJavaBeanのフルネーム(パッケージ名.クラス名)を指定します.
scope:作成したJavaBeanインスタンスが保存する範囲を指定します.page、request、session、application、デフォルトはpageです.
●例:
等価:User user=new User()
request.setAttribute("user", user);
* setProperty
●役割:JavaBeanの指定属性に値を設定する
●構文:
●例:
●注意:paramの属性値はフォーム要素の名前と一致する必要があります
property=「*」を使用する場合、フォーム要素の名前はJavaBeanのプロパティ名と一致し、フォーム要素の値を
JavaBeanに対応する属性上.
setPropertyではvalueとparamを同時に使用できません
* getProperty
●役割:JavaBeanの指定属性の値を取得する
●構文:
●例:
userBean,setProperty,getProperty実質:
userBean:反射によるJavaBeanのインスタンスの作成
setProperty:属性を反射して呼び出すsetメソッド
getProperty:属性を反射して呼び出すgetメソッド
JavaBean仕様の説明
a)Class classType = Class.forName("com.westaccp.store.User");
classType.newInstance();
JavaBeanを書くときに、パラメータ付きの構造方法が提供されている場合は、共通の無パラメータの構造方法を手動で提供する必要があります.
パラメトリック構造メソッドが提供されていない場合、Java仮想機会は自動的にパラメトリック構造メソッドを提供し、この場合、手動でパラメトリック構造メソッドを提供しなくてもよい.
b)JavaBeanのプロパティとは?
getメソッドまたはgetメソッドの後ろの文字列です
setUsername()-->username
setName()-->name
getUsername()-->username
getName()-->name
useBeanでのscopeの説明
* forward
●作用:内部ジャンプ、転送要求、作用はrequest.getRequestDispatcher("url").forward(request, response);
●構文:
●例:
* include
●役割:他のページを現在のページに含める
●構文:
●例: