本文目錄一覽:
怎麼在jsp頁面中調用javabean啊?
在JSP中使用JavaBean,可以實現HTML代碼和Java代碼的分離,是JSp更易於開發和維護:
JavaBean是一個public類
JavaBean 有一個不帶參數的構造方法
JavaBean中的屬性通過get和set方法進行操作
例如:定義個CircleArea的JavaBean用於封裝圓面積的計算邏輯,以後凡是用到圓面積的計算方法均可使用該JavaBean來完成,實現了代碼的重用。
#CircleArea.java
package JavaBeanTest;
public class CircleArea {
//定義兩個屬性 (r:半徑;unit:單位)
private double r=0;
private String unit=””;
//無參的構造方法
public CircleArea() {
super();
}
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
//計算圓的面積並返回計算結果
public String getArea(){
return 3.14*r*r+”平方”+unit;
}
}
在JSP中調用JavaBean代碼如下:
%@ page language=”java” import=”java.util.*” pageEncoding=”utf-8″%
!– 在jSP中使用JavaBean一般遵循以下四步
(1)導入JavaBean的類
(2) 在指定範圍內實例化一個JavaBean對象,如果該對象已經存在則直接引用
(3) 對Javabean的實例對象進行操作
(4)從指定範圍內移除JavaBean
—
%@ page language=”java” import=”java.util.*” pageEncoding=”utf-8″%
%@page import=”JavaBeanTest.CircleArea” %
jsp:useBean id=”circle1″ class=”JavaBeanTest.CircleArea” scope=”page”/
jsp:useBean id=”circle2″ class=”JavaBeanTest.CircleArea” scope=”request”/
jsp:useBean id=”circle3″ class=”JavaBeanTest.CircleArea” scope=”session”/
jsp:useBean id=”circle4″ class=”JavaBeanTest.CircleArea” scope=”application” /
html
head
titleJavaBean在JSP中的應用/title
/head
body
%
//調用page範圍內的JavaBean
circle1.setR(4);
circle1.setUnit(“米”);
out.println(circle1.getArea());
out.println(“br/br/”);
//調用request範圍內的JavaBean
circle1.setR(6);
circle1.setUnit(“米”);
out.println(circle1.getArea());
out.println(“br/br/”);
//調用session範圍內的JavaBean
circle1.setR(8);
circle1.setUnit(“米”);
out.println(circle1.getArea());
out.println(“br/br/”);
//調用application範圍內的JavaBean
circle1.setR(9);
circle1.setUnit(“米”);
out.println(circle1.getArea());
out.println(“br/br/”);
%
hr/
%
//將circle1從page範圍內移除
pageContext.removeAttribute(“circle1”);
//將circle2從request範圍內移除
request.removeAttribute(“circle2”);
//將circle3從session範圍內移除
session.removeAttribute(“circle1”);
//將circle4從application範圍內移除
application.removeAttribute(“circle1”);
%
/body
/html
怎麼使用javaBean ?
1 使用%@ page imort=”com.dd”%使用導入指令
實際上WEB/INF/classes是一個classpath的路徑,所有class文件,只要放到此目錄下都可以被訪問到與其他類的調用方式是一樣的
Code
%@page contentType=”text/html;charset=gb2312″%
%@page import=”cn.aaa.*”%
%
// 實例化對象
SimpleBean sb = new SimpleBean() ;
sb.setName(“你好”) ;
sb.setPassword(“zzzzzz”) ;
%
h1姓名:%=sb.getName()%/h1
h1密碼:%=sb.getPassword()%/h1
2 使用jsp的標籤指令:
jsp:useBean id=”myfirstBean” scope=”page” class=”cn.aaa.TestBean”
/
Code
%@page contentType=”text/html;charset=gb2312″%
jsp:useBean id=”sb” scope=”page” class=”cn.SimpleBean”/
%
sb.setName(“你好”) ;
sb.setPassword(“zzzzzz”) ;
%
h1姓名:%=sb.getName()%/h1
h1密碼:%=sb.getPassword()%/h1
如果使用此標籤,則javabesn中必須有一個無參構造方法,其使用這個構造方法
Tomcat服務器默認下是不能讀取修改後的javaBean,如要讀取有以下兩種方法:
1 重新啟動服務器
2 配置參數:
reloadable=”true” Context path=”/test” docBase=”F:\testWeb” reloadable=”true”/
jsp如何調用JavaBean類
在JSP中調用JavaBean示例代碼如下:
%@ page language=”java” import=”java.util.*” pageEncoding=”utf-8″%
!– 在jSP中使用JavaBean一般遵循以下四步
(1)導入JavaBean的類
(2) 在指定範圍內實例化一個JavaBean對象,如果該對象已經存在則直接引用
(3) 對Javabean的實例對象進行操作
(4)從指定範圍內移除JavaBean
—
%@ page language=”java” import=”java.util.*” pageEncoding=”utf-8″%
%@page import=”JavaBeanTest.CircleArea” %
jsp:useBean id=”circle1″ class=”JavaBeanTest.CircleArea” scope=”page”/
jsp:useBean id=”circle2″ class=”JavaBeanTest.CircleArea” scope=”request”/
jsp:useBean id=”circle3″ class=”JavaBeanTest.CircleArea” scope=”session”/
jsp:useBean id=”circle4″ class=”JavaBeanTest.CircleArea” scope=”application” /
html
head
titleJavaBean在JSP中的應用/title
/head
body
%
//調用page範圍內的JavaBean
circle1.setR(4);
circle1.setUnit(“米”);
out.println(circle1.getArea());
out.println(“br/br/”);
//調用request範圍內的JavaBean
circle1.setR(6);
circle1.setUnit(“米”);
out.println(circle1.getArea());
out.println(“br/br/”);
//調用session範圍內的JavaBean
circle1.setR(8);
circle1.setUnit(“米”);
out.println(circle1.getArea());
out.println(“br/br/”);
//調用application範圍內的JavaBean
circle1.setR(9);
circle1.setUnit(“米”);
out.println(circle1.getArea());
out.println(“br/br/”);
%
hr/
%
//將circle1從page範圍內移除
pageContext.removeAttribute(“circle1”);
//將circle2從request範圍內移除
request.removeAttribute(“circle2”);
//將circle3從session範圍內移除
session.removeAttribute(“circle1”);
//將circle4從application範圍內移除
application.removeAttribute(“circle1”);
%
/body
/html
在JSP中使用JavaBean,可以實現HTML代碼和Java代碼的分離,使JSp更易於開發和維護。
如何在jsp中使用javabean
Jsp的一個重要特性就是可以用javaBean實現功能的擴展。將大部分功能放在javaBean中完成,以使jsp頁面程序更乾淨簡潔、利於維護。JavaBean可以很方便的用來捕獲頁面表單的輸入並完成各種業務邏輯的處理。如下就是一個Hello示例:
testA.jsp頁面:
%@ page contentType=”text/html;charset=GBK” %
html
head
title示例/title
/head
body scroll=no
form name=”frma” method=”post” action=”testB.jsp”
p
你的姓名:
input type=”text” size=”15″ name=”yourName” value=”” id=yourName
input type=”button” align=”center” name=”subBtn” value=”[提交]” onClick=”f_check()” id=subBtn
/p
/form
/body
/html
script language=”JavaScript” type=”text/javascript”
!–
function f_check(){
if(document.forms(0).yourName.value==””){
alert(“請輸入姓名”);
}else{
document.forms(0).submit();
}
}
—
/SCRIPT
testB.jsp頁面
%@ page contentType=”text/html;charset=GBK” %
html
head
title示例/title
/head
jsp:useBean id=”tBean” scope=”page” class=”bean.TestBean”
jsp:setProperty name=”tBean” property=”*” /
/jsp:useBean
body scroll=no
form name=”frmb” method=”post” action=””
p
%=tBean.hello()%
/p
/form
/body
/html
TestBean.java 代碼:
package bean;
public class TestBean{
private String yourName = “”;
public void setYourName(String yourName){
this.yourName = ConvertGBK(yourName);
}
public String hello(){
String strHello = “Hello:”+yourName;
return strHello;
}
//漢字轉換方法
public String ConvertGBK(String str){
String strReturn=””;
try{
strReturn=new String(str.getBytes(“ISO-8859-1″),”GBK”);
}catch(Exception ex){
System.out.println(“TestBean.ConvertGBK():ex=”+ex.toString());
}
finally{
return strReturn;
}
}
}
testA.jsp頁面上“提交”按鈕將表單提交給testB.jsp頁面,testB.jsp獲得的testA.jsp中yourName文本框的值並在實例化TestBean後,執行bean中的setYourName方法,接着執行hello方法,在頁面上輸出對你問好的語句。
這個簡單的示例體現了在jsp中使用javaBean的兩個重要方面,一個是捕獲表單的輸入並保存,一個是執行邏輯功能。所以,依此兩個功能還可以將用在jsp中的javaBean分為值Bean(value bean)和工具Bean (utility bean),如下:
值Bean
package bean;
public class TestValueBean{
private String yourName = “”;
public void setYourName(String yourName){
this.yourName = ConvertGBK(yourName);
}
//漢字轉換方法
public String ConvertGBK(String str){
String strReturn=””;
try{
strReturn=new String(str.getBytes(“ISO-8859-1″),”GBK”);
}catch(Exception ex){
System.out.println(“TestBean.ConvertGBK():ex=”+ex.toString());
}
finally{
return strReturn;
}
}
}
工具Bean
package bean;
public class TestUtilityBean{
public String hello(TestValueBean tvBean){
String strHello = “Hello:”+tvBean.getName();
return strHello;
}
public String hello(String yourName){
String strHello = “Hello:”+yourName;
return strHello;
}
}
當然,從這個例子看是沒有必要分開value bean和utility bean的,但在具有複雜業務邏輯的web應用程序中就可以用value bean實現對錶單輸入的捕獲、保存,減少對數據庫中那些值幾乎不變的實體的訪問,或將value bean放在一定作用域內使此作用域內的多個jsp頁面共享。用utility bean完成操作數據庫、數據處理等業務邏輯,以value bean 或頁面傳遞的值為參數。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/240853.html