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. c#中设置按钮Button为透明

    方法一:代码实现 /// <summary> /// 设置透明按钮样式 /// </summary> private void SetBtnStyle(Button btn) ...

  2. [转]mysql 导入导出数据库以及函数、存储过程的介绍

    本篇文章是对mysql中的导入导出数据库命令以及函数.存储过程进行了详细的分析介绍,需要的朋友参考下: mysql常用导出数据命令:1.mysql导出整个数据库  mysqldump -hhostna ...

  3. SGU 134.Centroid(图心)

    SGU链接: 时间限制:0.25s 空间限制:4M 题意: 给出一个树(节点数<=16000),一个节点的重量定义为从树中去除这个点后,新得到的所有树中节点最多的树的节点数.树的中心定义为所有节 ...

  4. centos安装nodejs和mongodb

    安装nodejs: Run as root on RHEL, CentOS or Fedora, for Node.js v4 LTS Argon: curl --silent --location ...

  5. 利用正则表达式,给Json字段加引号

    { scheme: [ { query: [ [{ id: 'stdNumber', title: "标准号", compareType: 2 }], [{ id: 'CnName ...

  6. 隐藏和显示 ng-show ng-hide

    <div ng-controller='DeathraymenueController'>    <button ng-click="toggleMenue()" ...

  7. Windows Open with Sublime Text

    Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\Open with Sublime Text] "Icon&q ...

  8. 在Apache中利用ServerAlias设置虚拟主机接收多个域名和设置域名泛解析

    ServerAlias:服务器别名,在Apache中可以用于设置虚拟主机接收到个域名,也可以用于接收泛解析的域名.具体的设置方法如下: 一.用于设置虚拟主机接收多个域名 一个虚拟主机常常会接收多个域名 ...

  9. 45 Useful JavaScript Tips, Tricks and Best Practices(有用的JavaScript技巧,技巧和最佳实践)

    As you know, JavaScript is the number one programming language in the world, the language of the web ...

  10. js singleton

    方案一:利用闭包的两个作用,可以变通地读到内部的变量. 方案二: 是可以让这些变量始终在内存中. 方案一 var SingletonTester = (function () { //单例方法 fun ...