JavaBean(web基础学习笔记十二)
一、JavaBean简介
- 可将HTML和Java代码分离,这主要是为了日后维护的方便。如果把所有的程序代码(HTML和Java)写到JSP 页面中,会使整个程序代码又多又复杂,造成日后维护上的困难。
- 可利用JavaBean的优点。将常用到的程序写成JavaBean组件,当在JSP要使用时,只要调用JavaBean组件来执行用户所要的功能,不用再重复写相同的程序,这样一来也可以 节省开发所需的时间。
二、JavaBean开发要求
在JSP中如果要应用JSP提供的Javabean的标签来操作简单类的话,则此类必须满足如下的开发要求:
- 所有的类必须放在一个包中,在WEB中没有包的是不存在的;
- 所有的类必须声明为public class,这样才能够被外部所访问;
- 类中所有的属性都必须封装,即:使用private声明;
- 封装的属性如果需要被外部所操作,则必须编写对应的setter、getter方法;
- 一个JavaBean中至少存在一个无参构造方法,此为JSP中的标签所使用。
三、WEB开发的标准目录结构
四、WEB项目中各个目录的作用
No.
|
目录或文件名称
|
作用
|
1
|
WEB ROOT
|
WEB的根目录,一般虚拟目录直接指向此文件夹,此文件夹下必然直接包含WEB-INF
|
2
|
WEB-INF
|
WEB目录中最安全的文件夹,保存各种类、第三方jar包、配置文件
|
3
|
web.xml
|
WEB的部署描述符
|
4
|
classes
|
保存所有的JavaBean,如果不存在,可以手工创建
|
5
|
lib
|
保存所有的第三方jar文件
|
6
|
tags
|
保存所有的标签文件
|
7
|
jsp
|
存放*.jsp文件,一般根据功能再建立子文件夹
|
8
|
js
|
存放所有需要的*.js文件
|
9
|
css
|
样式表文件的保存路径
|
10
|
images
|
存放所有的图片,例如:*.gif或*.jpg文件。
|
五、使用<jsp:useBean>指令
jsp:useBean 动作用来装载一个将在JSP 页面中使用的JavaBean。这个功能非常有用,因为它使得我们既可以发挥Java 组件重用的优势,同时也避免了损失JSP 的方便性。jsp:useBean动作最简单的语法如下。
<jsp:useBean id="name" class="package.class" scope="scope"/>
其中,id 用于创建 JavaBean 的引用名;class 用于指定 JavaBean 的类;scope 用于指定
JavaBean 的范围,默认情况下,scope 被设置为 page
范 围 说 明
- page JavaBean 只能在当前页面中使用。当加载新页面时就会将其销毁
- request JavaBean 在用户对其发出请求时存在
- session JavaBean 一直存在于会话中,直至其终止或被删除为止
- application JavaBean 在整个应用程序中均可使用
useBean 属性的使用如示例所示。
<jsp:useBean id="order" class="y2javaee.sg.ch07.Order" scope="request"/>
上述示例中代码的含义是:如果在scope 指定的范围内存在id 指定的对象,就返回该对象;
如果不存在,就创建一个class 属性指定的Java 类的对象,并保存在id 指定的变量内。在JSP
文件中,相当于:
<%@page import=" y2javaee.sg.ch07.Order"%>
<%
Order order = (Order)request.getAttribute("order");
if(order==null)
order=new Order();
%>
六、<jsp:setProperty>
setProperty 动作用于设置 useBean 中指定的 JavaBean 的属性值。setProperty 动作指定名称、属性、值和参数,用于赋给JavaBean 的属性。setProperty 动作的语法如下
<jsp:setProperty name="BeanName" property="PropertyName" value="Value"
param="Parameter" />
其中,name 指定 useBean 中使用的JavaBean 的id;property 指定要为之设置值的JavaBean 的属性名称;value 指定要为属性设置的值;param 指定用于输入数据的表单元素名称,并给属性赋值。
param 属性不能与 value 属性一起使用。
七、<jsp:forward>
<jsp:forward> 重定向一个HTML文件,JSP文件,或者是一个程序段.
JSP 语法
<jsp:forward page={"relativeURL" | "<%= expression %>"} />
or
<jsp:forward page={"relativeURL" | "<%= expression %>"} >
<jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" />
</jsp:forward>
<jsp:forward page="/servlet/login" />
<jsp:forward page="/servlet/login">
<jsp:param name="username" value="jsmith" />
</jsp:forward>
描述
<jsp:forward>标签从一个JSP文件向另一个文件传递一个包含用户请求的request对象.<jsp:forward>标签以下的代码,将不能执行.
你能够向目标文件传送参数和值,在这个例子中我们传递的参数名为username,值为scott,如果你使用了<jsp:param>标签的话,目标文件必须是一个动态的文件,能够处理参数.
如果你使用了非缓冲输出的话,那么使用<jsp:forward>时就要小心。如果在你使用<jsp:forward>之前,jsp文件已经有了数据,那么文件执行就会出错.
属性
page="{relativeURL | <%= expression %>}"
这里是一个表达式或是一个字符串用于说明你将要定向的文件或URL.这个文件可以是JSP,程序段,或者其它能够处理request对象的文件(如asp,cgi,php).
<jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" />+
向一个动态文件发送一个或多个参数,这个文件一定是动态文件.
如果你想传递多个参数,你可以在一个JSP文件中使用多个<jsp:param>。name指定参数名,value指定参数值.
注意
<jsp:forward>标签从一个JSP文件向另一个文件传递一个包含用户请求的request对象。<jsp:forward>标签以后的代码,将不能执行。
八、动态包含和静态包含