首页 > 编程知识 正文

jsp使用javabean的两种方式(如何在jsp页面中使用javabean组件)

时间:2023-12-13 14:15:36 阅读:315221 作者:PDLQ

本文目录一览:

怎么在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 或页面传递的值为参数。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。