本文目录一览:
怎么在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 或页面传递的值为参数。