一、JavaBean简介

JavaBean是使用Java语言开发的一个可重用的组件,在JSP的开发中可以使用JavaBean减少重复代码,使整个JSP代码的开发更简洁。JSP搭配JavaBean来使用,
有以下的优点:
  • 可将HTML和Java代码分离,这主要是为了日后维护的方便。如果把所有的程序代码(HTML和Java)写到JSP 页面中,会使整个程序代码又多又复杂,造成日后维护上的困难。
  • 可利用JavaBean的优点。将常用到的程序写成JavaBean组件,当在JSP要使用时,只要调用JavaBean组件来执行用户所要的功能,不用再重复写相同的程序,这样一来也可以         节省开发所需的时间。

二、JavaBean开发要求

JavaBean本身就是一个类,属于Java的面向对象编程

在JSP中如果要应用JSP提供的Javabean的标签来操作简单类的话,则此类必须满足如下的开发要求:

  1. 所有的类必须放在一个包中,在WEB中没有包的是不存在的;
  2. 所有的类必须声明为public class,这样才能够被外部所访问;
  3. 类中所有的属性都必须封装,即:使用private声明;
  4. 封装的属性如果需要被外部所操作,则必须编写对应的setter、getter方法;
  5. 一个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>标签以后的代码,将不能执行。

八、动态包含和静态包含

JavaBean(web基础学习笔记十二)的更多相关文章

  1. JSTL 标签库 使用(web基础学习笔记十九)

    标签库概要: 一.C标签库介绍 1.1.<c:> 核心标签库  JSTL 核心标签库(C标签)标签共有13个,功能上分为4类:1.表达式控制标签:out.set.remove.catch2 ...

  2. Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API

    不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...

  3. 文件的上传Commons FileUpload(web基础学习笔记十六)

    一.表单设置 <form action="<%=request.getContextPath()%>/jsp/admin/doAdd.jsp" enctype=& ...

  4. 页面可视化编辑ckeditor(web基础学习笔记十五)

    一.CKedit下载ckedit 下载地址:http://ckeditor.com/ 二.ckedit的引入 2.1.解压并将ckedit复制到项目中 2.2.在页面中引入 在页面头部加入 <s ...

  5. Java中执行存储过程和函数(web基础学习笔记十四)

    一.概述 如果想要执行存储过程,我们应该使用 CallableStatement 接口. CallableStatement 接口继承自PreparedStatement 接口.所以CallableS ...

  6. JSTL标签引入(web基础学习笔记十八)

    一.JSTL包下载和引入 1.0.简介 JSTL全名为JavaServer Pages Standard Tag Library 1.1.下载包 下载地址:http://archive.apache. ...

  7. JDBC四(web基础学习笔记十)

    一.增加 .修改.删除.查询 将功能整合在一个类中 package pb.base; import java.sql.Connection; import java.sql.DriverManager ...

  8. python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL

    python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...

  9. Go语言学习笔记十二: 范围(Range)

    Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...

随机推荐

  1. erlang 中文社区 下载

    http://www.cnerlang.com/download/     erlang 下载 http://www.blogjava.net/killme2008/archive/2007/06/1 ...

  2. IIS7.5 配置 PHP 5.3.5

    本机环境:IIS7.5 windows2008 64位 首先确认IIS中启用了CGI功能: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWVmaWdod ...

  3. 【《Objective-C基础教程 》笔记ch03】(四)OC中的OOP

    一.声明类接口步骤: 1.声明一个类接口,使用@interfacekeyword加上类名称. 2.用  { 实例变量 }  来定义各种数据成员. 3.方法声明,採用中缀符语法声明一个c函数,用到了冒号 ...

  4. HDU4548+筛素数

    先筛出素数,再筛出美素数. 简单题. /* 筛素数 */ #include<stdio.h> #include<string.h> #include<stdlib.h&g ...

  5. java基础学习总结——哈希编码

    一.哈希编码

  6. CMMI之功能点估算法---内部逻辑文件和外部接口文件

    功能点分析的步骤 在本文中将以国际标准IFPUG(International Function Point Users Group)组织提供的功能点估算法V4.1.1为基础与大家进行讲解.如下图所示, ...

  7. [runtime] MAObjCRuntime

    MAObjCRuntime 源码地址:(引入头文件MARTNSObject.h即可,非arc环境下) http://pan.baidu.com/s/1eQ6776U https://github.co ...

  8. java操作mongodb时,对象bean和DBObject相互转换的方法

    package com.iqbon.spider.util; import java.lang.reflect.Field; import java.lang.reflect.InvocationTa ...

  9. 【BZOJ】【2219】数论之神

    中国剩余定理+原根+扩展欧几里得+BSGS 题解:http://blog.csdn.net/regina8023/article/details/44863519 新技能get√: LL Get_yu ...

  10. hdu 1242 Rescue(BFS入门)

    第一次用容器做的BFS题目,题目有个地方比较坑,就是遍历时的方向,比如上下左右能AC,右上左下就WA #include <stdio.h> #include <string.h> ...