jsp使用javabean的兩種方式(如何在jsp頁面中使用javabean組件)

本文目錄一覽:

怎麼在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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:24
下一篇 2024-12-12 12:24

相關推薦

  • 打包後頁面空白的解決方案

    當我們在調試階段時,我們的app可能看起來完美無缺,但當我們進行打包時,在運行app時,我們可能會遇到白屏或空白的問題。在這篇文章中,我們將探討如何解決這種問題。 一、檢查文件路徑…

    編程 2025-04-29
  • 如何修改ant組件的動效為中心

    當我們使用Ant Design時,其默認的組件動效可能不一定符合我們的需求,這時我們需要修改Ant Design組件動效,使其更加符合我們的UI設計。本文將從多個方面詳細闡述如何修…

    編程 2025-04-29
  • Python緩存圖片的處理方式

    本文將從多個方面詳細闡述Python緩存圖片的處理方式,包括緩存原理、緩存框架、緩存策略、緩存更新和緩存清除等方面。 一、緩存原理 緩存是一種提高應用程序性能的技術,在網絡應用中流…

    編程 2025-04-29
  • Ant Design組件的動效

    Ant Design是一個基於React技術棧的UI組件庫,其中動效是該組件庫中的一個重要特性之一。動效的使用可以讓用戶更清晰、更直觀地了解到UI交互的狀態變化,從而提高用戶的滿意…

    編程 2025-04-29
  • 如何計算兩種股票收益率的協方差

    協方差是用來衡量兩個變量間線性關係強度的方法,它顯示了兩個變量如何一起變化。在股票市場中,我們常常需要計算兩種股票之間的協方差,以衡量它們的投資回報之間的關係。本文將從多個方面詳細…

    編程 2025-04-28
  • Python操作Web頁面

    本文將從多個方面詳細介紹Python操作Web頁面的技巧、方法和注意事項。 一、安裝必要的庫 在Python中操作Web頁面,需要用到一些第三方庫。 pip install req…

    編程 2025-04-28
  • Python在線編輯器的優勢與實現方式

    Python在線編輯器是Python語言愛好者的重要工具之一,它可以讓用戶方便快捷的在線編碼、調試和分享代碼,無需在本地安裝Python環境。本文將從多個方面對Python在線編輯…

    編程 2025-04-28
  • Java表單提交方式

    Java表單提交有兩種方式,分別是get和post。下面我們將從以下幾個方面詳細闡述這兩種方式。 一、get方式 1、什麼是get方式 在get方式下,表單的數據會以查詢字符串的形…

    編程 2025-04-27
  • 用Pythonic的方式編寫高效代碼

    Pythonic是一種編程哲學,它強調Python編程風格的簡單、清晰、優雅和明確。Python應該描述為一種語言而不是一種編程語言。Pythonic的編程方式不僅可以使我們在編碼…

    編程 2025-04-27
  • Java多版本支持實現方式

    本文將從以下幾個方面闡述如何實現Java多版本支持,並給出可行的代碼示例。 一、多版本Java環境概述 Java是一門跨平台的編程語言,但是在不同的應用場景下,可能需要使用不同版本…

    編程 2025-04-27

發表回復

登錄後才能評論