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>标签的话,目标文件必须是一个动态的文件,能够处理参数.
属性
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基础学习笔记十二)的更多相关文章
- JSTL 标签库 使用(web基础学习笔记十九)
标签库概要: 一.C标签库介绍 1.1.<c:> 核心标签库 JSTL 核心标签库(C标签)标签共有13个,功能上分为4类:1.表达式控制标签:out.set.remove.catch2 ...
- Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API
不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...
- 文件的上传Commons FileUpload(web基础学习笔记十六)
一.表单设置 <form action="<%=request.getContextPath()%>/jsp/admin/doAdd.jsp" enctype=& ...
- 页面可视化编辑ckeditor(web基础学习笔记十五)
一.CKedit下载ckedit 下载地址:http://ckeditor.com/ 二.ckedit的引入 2.1.解压并将ckedit复制到项目中 2.2.在页面中引入 在页面头部加入 <s ...
- Java中执行存储过程和函数(web基础学习笔记十四)
一.概述 如果想要执行存储过程,我们应该使用 CallableStatement 接口. CallableStatement 接口继承自PreparedStatement 接口.所以CallableS ...
- JSTL标签引入(web基础学习笔记十八)
一.JSTL包下载和引入 1.0.简介 JSTL全名为JavaServer Pages Standard Tag Library 1.1.下载包 下载地址:http://archive.apache. ...
- JDBC四(web基础学习笔记十)
一.增加 .修改.删除.查询 将功能整合在一个类中 package pb.base; import java.sql.Connection; import java.sql.DriverManager ...
- python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL
python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...
- Go语言学习笔记十二: 范围(Range)
Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...
随机推荐
- erlang 中文社区 下载
http://www.cnerlang.com/download/ erlang 下载 http://www.blogjava.net/killme2008/archive/2007/06/1 ...
- IIS7.5 配置 PHP 5.3.5
本机环境:IIS7.5 windows2008 64位 首先确认IIS中启用了CGI功能: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWVmaWdod ...
- 【《Objective-C基础教程 》笔记ch03】(四)OC中的OOP
一.声明类接口步骤: 1.声明一个类接口,使用@interfacekeyword加上类名称. 2.用 { 实例变量 } 来定义各种数据成员. 3.方法声明,採用中缀符语法声明一个c函数,用到了冒号 ...
- HDU4548+筛素数
先筛出素数,再筛出美素数. 简单题. /* 筛素数 */ #include<stdio.h> #include<string.h> #include<stdlib.h&g ...
- java基础学习总结——哈希编码
一.哈希编码
- CMMI之功能点估算法---内部逻辑文件和外部接口文件
功能点分析的步骤 在本文中将以国际标准IFPUG(International Function Point Users Group)组织提供的功能点估算法V4.1.1为基础与大家进行讲解.如下图所示, ...
- [runtime] MAObjCRuntime
MAObjCRuntime 源码地址:(引入头文件MARTNSObject.h即可,非arc环境下) http://pan.baidu.com/s/1eQ6776U https://github.co ...
- java操作mongodb时,对象bean和DBObject相互转换的方法
package com.iqbon.spider.util; import java.lang.reflect.Field; import java.lang.reflect.InvocationTa ...
- 【BZOJ】【2219】数论之神
中国剩余定理+原根+扩展欧几里得+BSGS 题解:http://blog.csdn.net/regina8023/article/details/44863519 新技能get√: LL Get_yu ...
- hdu 1242 Rescue(BFS入门)
第一次用容器做的BFS题目,题目有个地方比较坑,就是遍历时的方向,比如上下左右能AC,右上左下就WA #include <stdio.h> #include <string.h> ...