书签 分享 收藏 举报 版权申诉 / 25

类型第七章 JavaBean技术.docx

  • 文档编号:3321276
  • 上传时间:2022-11-21
  • 格式:DOCX
  • 页数:25
  • 大小:135.12KB

在地址栏输入

http:

//localhost:

8080/ch5_example/index.jsp

得到

得到

【7.2.1获取JavaBean属性信息】

jsp:

useBean

在JSP中使用JavaBean。

一般来说,JSP或者Servlet里面的JavaBean具有的特点是:

(1)属性名第一个字母都是小写

(2)每个属性有对应的getter和setter方法。

此外,Bean的特点还有:

必须要有一个不带参数的构造器,在JSP元素创建Bean时会调用空构造器。

格式:

useBeanid=””scope=””class=””type=””/>

useBean…>

setProperty…>

getProperty…>

useBean>

【例】

新建JavaBean:

Produce

get和set方法可以自动生成。

生成默认的构造器。

【Produce.java】

packagecom.lyq.bean;

publicclassProduce{

privateStringname="电吉他";

privatedoubleprice=1880.5;

privateintcount=100;

privateStringfactoryAdd="山东济南";

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

this.name=name;

}

publicdoublegetPrice(){

returnprice;

}

publicvoidsetPrice(doubleprice){

this.price=price;

}

publicintgetCount(){

returncount;

}

publicvoidsetCount(intcount){

this.count=count;

}

publicStringgetFactoryAdd(){

returnfactoryAdd;

}

publicvoidsetFactoryAdd(StringfactoryAdd){

this.factoryAdd=factoryAdd;

}

publicProduce(){

}

}

【index.jsp】

<%@pagelanguage="java"contentType="text/html;charset=GB18030"

pageEncoding="GB18030"%>

DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:

//www.w3.org/TR/html4/loose.dtd">

Inserttitlehere

useBeanid="produce"class="com.lyq.bean.Produce">

useBean>

setPropertyproperty="name"name="produce"value="洗衣机"/>

setPropertyproperty="price"name="produce"value="888"/>

setPropertyproperty="count"name="produce"value="56"/>

setPropertyproperty="factoryAdd"name="produce"value="山东济南"/>

  • 商品名称:

    getPropertyproperty="name"name="produce"/>

  • 价格:

    getPropertyproperty="price"name="produce"/>

  • 数量:

    getPropertyproperty="count"name="produce"/>

  • 厂址:

    getPropertyproperty="factoryAdd"name="produce"/>

在地址栏输入

http:

//localhost:

8080/ch5_example/index.jsp

得到

加上表单部分【login.jsp】

<%@pagelanguage="java"contentType="text/html;charset=UTF-8"

pageEncoding="UTF-8"%>

DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:

//www.w3.org/TR/html4/loose.dtd">

Inserttitlehere

添加产品信息

名称:

价格:

数量:

厂 址:

修改【index.jsp】

<%@pagelanguage="java"contentType="text/html;charset=GB18030"

pageEncoding="GB18030"%>

DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:

//www.w3.org/TR/html4/loose.dtd">

Inserttitlehere

<%request.setCharacterEncoding("UTF-8");%>

useBeanid="produce"class="com.lyq.bean.Produce">

useBean>

setPropertyproperty="*"name="produce"/>

  • 商品名称:

    getPropertyproperty="name"name="produce"/>

  • 价格:

    getPropertyproperty="price"name="produce"/>

  • 数量:

    getPropertyproperty="count"name="produce"/>

  • 厂址:

    getPropertyproperty="factoryAdd"name="produce"/>

地址栏输入

http:

//localhost:

8080/ch5_example/login.jsp

得到

【补充说明】

1.

useBeanid="produce"class="com.lyq.bean.Produce">

useBean>

id:

使用这个JavaBean创建的一个对象名

相当于Produceproduce=newProduce();

2.

useBeanid="produce"class="com.lyq.bean.Produce">

useBean>

是标签语法。

Produceproduce=newProduce();

是Java语法。

3.

useBeanid=””scope=””class=””type=””/>

scope默认是page

type是对象的类型,如type=”java.lang.Object”

相当于Objectcb=newProduce();

一般情况下不指定type,则就是class类型的对象。

不存在父类指向子类对象的情况。

4.

setPropertyname="produce"property="price"value="888"/>

注意name指定的名称必须已经有这个对象。

这句话相当于

produce.setPrice(888)

5.

getPropertyname="produce"property="price"/>

相当于produce.getPrice()

6.

jsp:

useBean各个参数的含义:

●id:

对象实例名称

●scope:

Bean作用范围,默认是page

●class:

Bean的类名称

●type:

Bean实例类型,可以是本类,或其父类,或其实现的接口,默认为本类(多态)

scope各个取值的含义:

●page:

仅涵盖使用JavaBean的页面。

每次访问页面时,重新生成一个。

【CounterBean.java】

packagebean;

//JSP中使用JavaBean,要求这个Bean放在包里面。

importjava.io.Serializable;

publicclassCounterBeanimplementsSerializable{

privateintcount=0;

publicCounterBean(){}

publicintgetCount(){

count++;

returncount;

}

publicvoidsetCount(intcount){

this.count=count;

}

}

【PageBean.jsp】

useBeanid="counterBean"scope="page"class="bean.CounterBean"/>

CounterBeanscope="page"Example

count:

<%=counterBean.getCount()%>

<%--上下两句效果一样--%>

getPropertyname="counterBean"property="count"/>

在地址栏输入

http:

//localhost:

8080/servlet_example1/PageBean.jsp,结果为

刷新页面,输出内容不变。

●request:

有效范围仅限于使用JavaBean的请求

【RequestBean.jsp】

useBeanid="counterBean"scope="request"class="bean.CounterBean"/>

<%--

bean.CounterBeancounterBean=request.getAttribute("counterBean");

if(counterBean==null){

counterBean=newbean.CounterBean();

request.setAttribute("counterBean",counterBean);

}

--%>

CounterBeanscope="request"Example

--往当前request对应的bean中设置-->

<%counterBean.setCount(100);%>

<%--和RequestBean2.jsp用的是同一个request,也是同一个counterBean对象--%>

--测试结果是101-->

forwardpage="RequestBean2.jsp"/>

<%--和RequestBean2.jsp用的不是同一个request,也不是同一个counterBean对象--%>

--访问RequestBean.jsp,跳转到RequestBean2.jsp,因为和当前request不是同一个request-->

--则产生一个新的request,产生一个新的bean对象,测试结果是1而不是101-->

<%--response.sendRedirect("RequestBean2.jsp");--%>

【RequestBean2.jsp】

useBeanid="counterBean"scope="request"class="bean.CounterBean"/>

CounterBeanscope="request"Example

count:

<%=counterBean.getCount()%>

在地址栏输入

http:

//localhost:

8080/servlet_example1/RequestBean.jsp,结果为

修改【RequestBean.jsp】

useBeanid="counterBean"scope="request"class="bean.CounterBean"

配套讲稿:

如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

特殊限制:

部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

关 键  词:
第七章 JavaBean技术 第七 JavaBean 技术
提示  冰豆网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:第七章 JavaBean技术.docx
链接地址:https://www.bdocx.com/doc/3321276.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2008-2022 冰点文档网站版权所有

经营许可证编号:鄂ICP备2022015515号-1

收起
展开