首页 > 开发 > JSP > 正文

JSP基础知识之访问JavaBean的方法

2023-05-01 14:14:51
字体:
来源:转载
供稿:网友

JSP 对 JavaBean 的支持使您能通过 Web 站点重复使用组件。JavaBean 可以是类文件或串行化 Bean,也可由 Servlet 动态生成。请使用 <BEAN> 标记来创建一个 Bean 实例,以使从 JSP 文件的任何地方都可对该实例进行访问。标记 <BEAN> 的语法为:

<bean name="Bean_name" varname="local_Bean_name"
  type ="class_or_interface_name" introspect="yes|no"
  beanName="ser_filename" create="yes|no"
  scope="request|session|userprofile" >
  <param property_name="value">
  </bean>

其中的属性及其含义如下:

(1) name:用于在相应的范围(由 scope 属性指定)内查找 Bean 的名称。例如,这可能是用于存储 Bean 的会话(session)关键值。该值是分大小写的。

(2) varname:用于在 JSP 文件中的任何地方引用 Bean 的名称。该属性是可选的。缺省值为 name 属性值。该值是分大小写的。

(3) type:Bean 的类文件名。该名称用于以代码说明 Bean 实例。缺省值为 Object 类型。该值是分大小写的。

(4) Introspect:当该值为真时,JSP 处理器检查将所有的请求属性,并调用与请求属性匹配的 set 属性方法集(该属性是在 BeanInfo 中传递的)。该属性的缺省值为是。

(5) BeanName:Bean 的 .class 文件名、Bean 软件包名或包含 Bean 的串行化文件(.ser 文件)的文件名。(该名称是给 Bean 实例程序的)。仅当 Bean 不在指定的范围中,且创建属性被设置成是时,才使用该属性。该值是分大小写的。文件路径必须在应用服务器的Java 类路径中指定,除非文件在 applicationserver_root/servlets 目录下。

(6) Create:当该值为真时,如果处理器在指定的范围内没有找到 Bean,则 JSP 将创建一个 Bean 实例。缺省值为真。

(7)Scope:Bean 的生命期。该属性是可选的,其缺省值为 request 。有效值为:

request - 由 Servlet 将 Bean 设置成请求的上下文,该 Servlet 使用 JSP API 中描述的 API 调
用 JSP 文件。如果 Bean 不是请求上下文的一部分,则将创建该 Bean,并将其存储在请求上下文中,除非创建属性已设置为否。

 session - 如果当前对话中存在 Bean,则 Bean 已被重用。如果不存在 Bean,且创建属性设置
为是,则它已被创建并作为会话的一部分存储起来。

userprofile - 由 Servlet 请求对象检索、造型成指定的类型,并进行内省的用户简要表文件。(在
IBM WebShere应用服务器中,缺省类型为 com.ibm.servlet.personalization.userprofile.UserProfile)。

(8) param:属性和值配对的列表。属性是在 Bean 中用内省自动设置的。只在实例化 Bean 时,才对属性进行设置。

除了使用 <param> 属性来设置 Bean 属性外,还可以使用其它三种方法:第一,在请求包含 Bean 的 Web 页面(JSP 文件)的 URL 时,指定查询参数。必须将内省属性设置成“是”。其示例如下:http://www.myserver.com/signon.jsp?name=jones&password=d13x,其中 Bean 属性名将设置为 jones。

第二种方法,将属性指定成由 HTML <FROM> 标记提交的参数。必须将 mothod 属性设置成 post。将 action 属性设置成调用 Bean 的 JSP 文件的 URL。必须将 introspect 属性设置成“是”。其示例如下:

<form action="http://www.myserver.com/SearchSite" method="post">
  <input type="text" name="Search for: ">
  <input type="submit">
  </form>

第三种方法是使用 JSP 语法设置 Bean 属性。

在指定了 <BEAN> 标记后,就可以从 JSP 文件中的任何地方访问 Bean。这里有三种访问 Bean 属性的方法:使用 JSP scriptlet、使用 JSP 表达式、使用 <INSERT> 标记(如同 变量数据的 HTML 模板语法中所说明的)。请参阅JSP示例(DisplayData.jsp 文件)以获取三个访问 Bean 方法的每个方法示例。

4.直接插入的 Java 代码(scriptlet)

可以在 JSP 文件的 <% 和 %> 标记间直接嵌入任何有效的 Java 语言代码。这样嵌入的代码称为 scriptlet。如果没有指定 method 指令,则生成的代码将成为 service 方法的主体。用于 Servlet 的 scriptlet 可以使用一个预定义的变量集,该变量集符合基本的 Servlet、输出和输入类:

(1) request:由 javax.servlet.http.HttpServletRequest 定义的 Servlet 请求类

(2) responses:由 javax.servlet.http.HttpServletRequest 定义的 Servlet 响应类

(3) out:由 java.io.PrintWriter 定义的输出转录程序类

(4) in:由 java.io.BufferedReader 定义的输入阅读程序类

其示例如下:

<%
  foo = request.getParameter("Name");
  out.println(foo);
  %>

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表