JavaBean的概念

JavaBean是一种可重复使用、且跨平台的软件组件。JavaBean可分为两种:一种是有用户界面(UI,User Interface)的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是后一种JavaBean。

JavaBean的优点

•使得HTML与Java程序分离,这样便于维护代码。如果把所有的程序代码都写到JSP网页中,会使得代码繁杂,难以维护

•可以降低开发JSP网页人员对Java编程能力的要求

•JSP侧重于生成动态网页,事务处理由JavaBean来完成,这样可以充分利用JavaBean组件的可重用性特点,提高开发网站的效率

编写一个JavaBean

一个标准的javaBean编写规则如下

1.JavaBean是一个公共的(public)类

2.JavaBean有一个不带参数的构造方法

3.JavaBean通过setXXX方法设置属性,通过getXXX方法获取属性,可以用IDE工具的Generate Getters and Setters自动生成。

例如:myeclipse可以右击编辑区->source->Generate Getters and Setters->Select All->OK,就可以自动生成成员变量的getter and setter方法

下面是一个JavaBean的示例:

package com.bean;

public class Person {
private int IDcard;
private String name;
public int getIDcard() {
return IDcard;
}
public void setIDcard(int iDcard) {
IDcard = iDcard;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

在JSP页面导入JavaBean类

通过<%@ page import>指令导入JavaBean类,例如:

<%@ page import="com.bean.*" %> 

声明JavaBean对象

<jsp:useBean>标签用来声明JavaBean对象,例如:

<jsp:useBean id="person1" class="com.bean.Person" scope="request" /> 
<jsp:useBean id="person2" class="com.bean.Person" scope="session" /> 

1.id就是Person类的实例的名字,换这个写法一看就明白

Person person1=new Person(); 

2.scope是作用域,取值为JSP的内置对象,详细参见JSP内置对象。作用域从小到大如下:

>page(默认值)

客户每次请求访问JSP页面时,都会创建一个JavaBean对象。JavaBean对象的有效范围是客户请求访问的当前JSP网页。JavaBean对象在以下两种情况下都会结束生命期:

–客户请求访问的当前JSP网页通过<forward>标记将请求转发到另一个文件

–客户请求访问的当前JSP页面执行完毕并向客户端发回响应。

>request

客户每次请求访问JSP页面时,都会创建新的JavaBean对象。JavaBean对象的有效范围为:

–客户请求访问的当前JSP网页

–和当前JSP网页共享同一个客户请求的网页,即当前JSP网页中<%@ include>指令以及<forward>标记包含的其他JSP文件

–当所有共享同一个客户请求的JSP页面执行完毕并向客户端发回响应时,JavaBean对象结束生命周期。

可以通过JavaBean的id在<JSP:getProperty>和<jsp:setProperty>直接引用JavaBean对象,例如:

<jsp:getProperty property="IDcard" name="person1"/> 

JavaBean对象作为属性保存在HttpRequest对象中,属性名为JavaBean的id,属性值为JavaBean对象,因此也可以通过HttpRequest.getAttribute()方法取得JavaBean对象,例如:

Person personObj1=(Person)request.getAttribute(“person1”); 

>session

JavaBean对象被创建后,它存在于整个Session的生存周期内,同一个Session中的JSP文件共享这个JavaBean对象。

可以通过JavaBean的id在<JSP:getProperty>和<jsp:setProperty>直接引用JavaBean对象,例如:

<jsp:getProperty property="IDcard" name="person2"/>

JavaBean对象作为属性保存在HttpSession对象中,属性名为JavaBean的id,属性值为JavaBean对象。除了可以通过JavaBean的id直接引用JavaBean对象外,也可以通过HttpSession.getAttribute()方法取得JavaBean对象,例如:

Person personObj2=(Person)session.getAttribute(“person2”); 

>application

JavaBean对象被创建后,它存在于整个Web应用的生命周期内,Web应用中的所有JSP文件都能共享同一个JavaBean对象。

JavaBean对象作为属性保存在application对象中,属性名为JavaBean的id,属性值为JavaBean对象,除了可以通过JavaBean的id直接引用JavaBean对象外,也可以通过application.getAttribute()方法取得JavaBean对象,例如:

Person personObj3=(Person)application.getAttribute(“person3”); 

访问JavaBean属性

1.JSP提供了访问JavaBean属性的标签,如果要将JavaBean的某个属性输出到网页上,可以用<jsp:getProperty>标签,例如:

<jsp:getProperty property="IDcard" name="person1"/> 

属性:

name就是bean的名字,由<jsp:useBean>中的id指定。

property所指定的Bean的属性名。

2.如果要给JavaBean的某个属性赋值,可以用<jsp:setProperty>标签:

name:<jsp:useBean>标签中的id属性

property:Bean实例的属性。

value:Bean实例属性的值。

param:表单参数

语法:

1)将bean的属性设置为某个字符串或者表达式。如果是字符串,这个字符串会自动转化为bean的属性的类型。如果是表达式,那么值的类型必须和bean属性的类型一致。

<jsp:setProperty name="bean的名字" property="bean的属性" value=<%=expression%>/>
<jsp:setProperty name="bean的名字" property="bean的属性" value=字符串/>
<jsp:setProperty property="IDcard" name="person1" value="20130001"/>

2)通过表单的参数来设置bean的相应属性的值。

<jsp:setProperty name="bean的名字" property="*" />
<jsp:setProperty name="bean的名字" property="属性名" param=“参数名”/>

表单中的属性和javaBean的属性应该同名。

注意表单中文参数乱码,可以在Jsp页面顶部加入

<%
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
%>

JavaBean基础的更多相关文章

  1. JavaWeb:JavaBean基础

    JavaBean基础 JavaBean简介: 1.JavaBean是一种可以重复使用的类,可以没有用户界面,主要负责业务数据或者处理事物(数据运算.操作数据库) 2.与JSP配合,可以简化JSP代码. ...

  2. JavaBean 基础概念、使用实例及代码分析

    JavaBean 基础概念.使用实例及代码分析 JavaBean的概念 JavaBean是一种可重复使用的.且跨平台的软件组件. JavaBean可分为两种:一种是有用户界面的(有UI的):另一种是没 ...

  3. JavaBean基础转载

    JavaWeb:JavaBean基础 JavaBean基础 JavaBean简介: 1.JavaBean是一种可以重复使用的类,可以没有用户界面,主要负责业务数据或者处理事物(数据运算.操作数据库) ...

  4. 【JavaWeb】【JSP】【Bean】JavaBean基础使用方法与操作步骤

    JavaBean基础使用方法与操作步骤 JavaWeb jsp Bean 项目结构 JavaBean的概念 JavaBean是可复用的.平台独立的软件组件 JavaBean既可以是简单的GUI要素,如 ...

  5. JavaBean基础学习总结

    学习目标: 掌握JavaBean的基本定义格式. 掌握Web目录的标准结构. 掌握JSP中对JavaBean支持的三个标签,即<jsp:useBean>,<jsp:setProper ...

  6. Spring实战 难懂的JavaBean

    bean中文解释为:豆; 豆形种子; 毫无价值的东西. 按照上面的意思,很难理解Bean是个什么鬼,Java豆? 我们先来看一个典型的JavaBean,直观地理解下: public class Per ...

  7. 3:JavaBean,EJB,POJO

    JavaBeanJavaBean是公共Java类,但是为了编辑工具识别,需要满足至少三个条件: 有一个public默认构造器(例如无参构造器,) 属性使用public 的get,set方法访问,也就是 ...

  8. Hibernate(1)——数据访问层的架构模式

    俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及到的知识点总结如下: 数据库的概念.逻辑.数据模型概念 应用程序的分层体系结构发展 MVC设计模式与四层结构的对应关系 持久层的设 ...

  9. 18)Java八股文名词

      >VO:   value-object >DTO: Data Transform Object >DTD: Document Type Definition      文档类型定 ...

随机推荐

  1. Ubuntu 12.04下解决Rhythmbox Music Player乱码问题

    1.打开终端输入如下信息: $ sudo gedit ~/.profile 2.在打开的文档末尾加上如下两句: export GST_ID3_TAG_ENCODING=GBK:UTF-8:GB1803 ...

  2. Hdu 2874 Connections between cities

    题意: 城市 道路  没有环 不一定连通的树 求两城市的最短距离 设想一下就是很多小树  那好办 思路: lca离线算法 然后有个技巧就是 每次我们tarjan一棵树不是最后树的节点都访问过并且孩子全 ...

  3. slice的用法与用量

    用法:slice用于从指定值截取并返回新数组,但原数组结构不变 arrayObject.slice(start,[end]) 起始值可以为负数,-1为最后一个,end选填,但取不到end坐标的值,实际 ...

  4. java中如何操作数据库(增删改查)

    EntityManager 是用来对实体Bean 进行操作的辅助类.他可以用来产生/删除持久化的实体Bean,通过主键查找实体bean,也可以通过EJB3 QL 语言查找满足条件的实体Bean.实体B ...

  5. JQuery解析XML数据的几个例子

    用JavaScript解析XML数据是常见的编程任务,JavaScript能做的,JQuery当然也能做.下面我们来总结几个使用JQuery解析XML的例子. 第一种方案: <script ty ...

  6. Android编译输出 资源指定AAPT

    BoardConfigCommon.mk # Default Command lineSEC_DEV_APP_LOCAL_AAPT_FLAGS := -c sw360dpSEC_DEV_FRAMEWO ...

  7. 那些年被我坑过的Python——玄而又玄(第六章 面向对象编程基础)

    面向对象编程: 面向对象顾名思义,就是把组织代码的粒度从函数级别抽象到对象级别,对象是通过类来生成的,类可以想象为模板或进本框架而对象是在原有模板或框架的基础上增加详细信息的实体,类,有分类.聚类的含 ...

  8. winform 对话框控件,打印控件

    1.文件对话框(FileDialog) 它又常用到两个: 打开文件对话框(OpenFileDialog) 保存文件对话框(SaveFileDialog) 2.字体对话框(FontDialog) 3.颜 ...

  9. 最精简的代理设计模式demo - 保姆看孩子

    1,协议文件 @protocol NursePtotocol <NSObject> //保姆的协议方法 - (void)startToAmuseBaby; @end 2,管理类(使用类) ...

  10. NSDate 总结日期操作

    IOS Object-c NSDate总结日期操作 //NSDate //1, 创建NSDate对象 NSDate *nowDate = [NSDate date]; NSLog(@"%@& ...