如何在jsp文件之间,利用 servlet 和 bean 传递数据 ?

jie_169 2000-07-24 11:42:00
加精
前提:
1、一个名叫 headbean 的类已经定义过。
2、在 servlet 中,声明了 headbean 的一个对象 mybean 。
3、在 servlet 中,对象 mybean 已被处理过且其中已包含了从数据库中
取得的数据。
4、存在两个JSP文件: A.jsp and B.jsp 。

问题:
1、如何使 A.jsp 和 B.jsp 使用已经存在的对象 mybean ? 即如何让
mybean 在 A.jsp 和 B.jsp 之间进行数据传递 ?
2、如果在 jsp 文件中使用 tab <bean> ,其参数的不同设置有什么
不同的效果?
3、如何使用 tab <servlet> ? 能否给个例子 ?




谢谢!

...全文
298 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jie_169 2000-07-30
  • 打赏
  • 举报
回复
非常感谢middy先生对此问题的回复!

在得到您的回复之前,我用以下方法解决了问题:
1、在需要获得myBean这个实例之前,用SESSION。SETVALUE()把myBean放入SESSION中。
2、用 <BEAN NAME="myBean" TYPE="Head.HeadBean" INTROSPECT=NO CREATE=NO
SCOPE=SESSION></BEAN> 从SESSION中获得myBean这个已存在的实例,这样,在
jsp文件中,就得到了myBean这个实例。
3、直接调用Bean的方法处理数据。如:myBean.setuserid("user1").

看过middy先生的回复之后,我仍有几个问题想请教:

1、在JSP中,您上文提到的标签<jsp:useBean id="Name" class="com.testbean"
scope="application" />。
和我所用的标签<BEAN NAME="myBean" TYPE="Head.HeadBean" INTROSPECT=NO
CREATE=NO SCOPE=SESSION></BEAN> 是不是同一回事?
若不是,是否是因为版本的原因。若也不是,能否解释二者的不同之处?
2、从标签<BEAN NAME="myBean" TYPE="Head.HeadBean" INTROSPECT=NO CREATE=NO
SCOPE=SESSION></BEAN>中,可以看出“create=no scope=session"指示从session中获得
已存在的bean的实例而不是创建一个新的实例。那么”create=yes scope=request"是指示
什么? 我曾在jsp中用过<BEAN NAME="myBean" TYPE="Head.HeadBean" INTROSPECT=NO
CREATE=YES SCOPE=REQUEST></BEAN>获得servlet创建的bean的实例。这个JSP文件是在
servlet中用CallPage调用的缺省的输出页面文件。
3、"scope=page","scope=application"的具体含义又是什么?怎么用?

谢谢!


  
middy 2000-07-28
  • 打赏
  • 举报
回复
JSP中JavaBean的应用

  java server pages(jsp)组件技术的核心是被称为bean的java 组件.bean的结构必须满足一定的命名约定。JavaBean类似于ActiveX控件:他们都能提供常用功能并且可以重复使用。这些约定由sun和其他几个大公司制定,称为javabeans API.只要遵守java beansAPI的命名约定,就可以开发出可重用的,独立的java组件。在jsp中,使用bean标签集合,内容开发者不需要编写任何代码就能利用java 强大的功能为页面添加动态元素。 在JSP的开发中往往把大段的代码放在脚本片段(scriptlet)内,但是绝大多数的Java代码属于可重复使用的(如数据库的连接待),因此可以把这此重复的代码做成JavaBea的组件。JavaBean的值是通过一些属性获得的,你可通过这些属性访问JavaBean设置。现把在jsp中怎么调javaBean介绍如下:

  要在JSP使用"Bean",首先必须在jsp设置要引用的Bean,生成Bean的一个实例。可以用“<jsp:useBean>”标记来完成:


<jsp:useBean id="Name" class="com.testbean" scope="application" />。

  "<jsp:useBean>"标记是通过“id”属性来识鉴别Bean。当指定了"id"属性后,还须告诉网页面从何处查找Bean,或者它的Java类别名是什么。最后一个必需的元素是“scope”属性。有了“scope”属性的帮助,你就能告诉Bean为单一页面(默认情况)[scope="page"]、为一个被请求的网页[scope="request"]、请求为会话[scope="session"],或者为整个应用程序[scope="application"]保持留信息。有了会话范围,你就能非常容易地在JSP网页面上维护网站上的项目,如购物车项目等。

  实例化一个JavaBean,就可以访问它的属性来定制它。要获得属性值,请用“<jsp:getProperty>”标记。使用这个标记能指定将要用到的Bean名称(从useBean的"id"字段得到)以及你想得到其值的属性。实际的值被放在输出中:


<jsp:getProperty id="Name" property="name" />。

  要改变JavaBean属性,你必须使用“<jsp:setProperty>”标记。对这个标记,需要再次识别Bean和其属性,以修改并额外提供新值。如果命名正确,这些值可以从一个已提交的表中直接获得:参数获得:


<jsp:setProperty id="Name" property="*" />;

可以从一个参数获得,但必须直接命名属性和参数:


<jsp:setProperty id="Name" property="serialNumber" value="string" />

或者直接用一个名字称和值来设置:


<jsp:setProperty id="Name" property="serialNumber" value= <%= expression %> />.

  关于JavaBean 的最后一件事: 为了Web服务器能找到JavaBean,你需要将其类别文件放在WEB服务器的一个特殊位置。在resin中是放在"doc\WEB-INF\classes"目录下的。

实例:这个简单的例子是完成对产品及税率的设置与获取。

package tax;
public class TaxRate{
String Product;
double Rate;
public TaxRate(){
this.Product = "A001";
this.Rate = 5;}
public void setProduct (String ProductName)
{this.Product = ProductName;}
public String getProduct(){return(this.Product);}
public void setRate (double rateValue)
{
this.Rate = rateValue;
}
public double getRate()
{
return (this.Rate);
}
}

sample_bean.jsp
<%@ page language="java" import="tax.*" %>
<HTML>
<BODY>
<jsp:useBean id="TaxRate" scope="application" class="TaxRate" />
修改前:
<br>
 产品 : <jsp:getProperty name="TaxRate" property="Product" />
  <br>
 税率 : <jsp:getProperty name="TaxRate" property="Rate" />

<jsp:setProperty name="TaxRate" property="Product" value="Hello" />
<jsp:setProperty name="TaxRate" property="Rate" value="2.9" />
修改后:
<br>
 产品 : <jsp:getProperty name="TaxRate" property="Product" />
  <br>
 税率 : <jsp:getProperty name="TaxRate" property="Rate" />

</BODY></HTML>

  把TaxRate.java放到resin的"doc\WEB-INF\classes\doc"目录下,sample_bean.jsp放入resin的doc目录下。在浏览器下运行:http://localhost:8080/sample_bean.jsp即可看到效果。从以上的讲解及应用可以看出:由于组件技术的使用和JAVABEANS API的引入,JSP让JAVA开发者可以将一个站点快速地分解为一些细小的、可重用的组件。这些组件作为HTML元素,用于JSP的各个需要地方。这一实现让开发工作清楚地分为表现与内容两个部分。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧