这一节我们总结一下JavaBean和Jsp的关系。

1. JavaBean

javaBean是一个遵循特定写法的Java类,它通常具有如下特点:
        1)这个java类必须具有一个无参构造函数;
        2)属性必须私有化;
        3)私有化的属性必须通过public类型的方法暴露给其他程序,并且方法的命名也必须遵守一定的命名规范。
        javaBean在J2EE开发中,通常用于封装数据,对于遵循以上写法的javaBean组件,其它程序可以通过反射技术实例化javaBean对象,并且通过反射那些遵守命名规则的方法,从而获知javaBean的属性,进而调用其属性保存数据。

2. 在Jsp中使用JavaBean的代码

JSP技术提供了三个关于javaBean组件的动作元素,即JSP标签:
        <jsp:useBean>标签:用于在JSP页面中查找实例化一个javaBean组件。
        <jsp:setProperty>标签:用于在JSP页面中设置一个javaBean组件的属性。
        <jsp:getProperty>标签:用于在JSP页面中获取一个javaBean组件的属性。

下面我么来总结一下这三个标签的使用:

2.1 <jsp:useBean>标签

<jsp:useBean>标签用于在指定的域范围内查找指定名称的javaBean对象。如果存在则直接返回该javaBean对象的引用,如果不存在则实例化一个新的javaBean对象并将它以指定的名称存到指定的域范围中。
       常用语法:

<jsp:useBean id="beanName" class="package.class" scope="page|request|session|application"/></span>  

id属性用于指定javaBean实例对象的引用名称和其存储在域范围中的名称。class属性用于指定javaBean的完整类名(即必须带有包名)。scope属性用于指定javaBean实例对象所存储的域范围,其取值只能是page\request\session和application等四个值中的一个,默认为page。

2.2 <jsp:setProperty>

<jsp:setProperty>标签用于设置和访问javaBean对象的属性。
        常用语法:

<jsp:setProperty name="beanName"
property="propertyName" value="{String|<%=expression%>}" |
property="propertyName" [param="parameterName"] |
property="*"
/>

name属性用于指定javaBean对象的名称。property属性用于指定javaBean实例对象的属性名。value属性用于指定javaBean对象的某个属性值,value的值可以是字符串,也可以是表达式:为字符串时,该值会自动转化为javaBean属性相应的类型,setProperty可以自动把字符串转换成八种基本数据类型,但对于复杂的类型无法转换,如Date;为表达式,那么该表达式的计算结果必须与所要设置的javaBean属性的类型一致。
        param属性用于将javaBean实例对象的某个属性值设置为一个请求参数(在地址中指定),该属性值同样会自动转换成要设置的javaBean属性的类型。*用于获取所有请求参数来设置属性值。

3. <jsp:getProperty>

<jsp:getProperty>标签用于读取javaBean对象的属性,也就调用javaBean对象的getter方法,然后将读取的属性值转换成字符串后插入进输出的响应正文中。
常用语法:

<jsp:getProperty name="beanInstanceName" property="propertyName"/>

name属性用于指定javaBean实例对象的名称,其值应与<jsp:useBean标签的id属性值相同。property属性用于指定javaBean实例对象的属性名。如果javaBean实例对象的某个属性值为null,那么获得的属性值结果将是一个内容为"null"的字符串

下面看一个简单的例子来直观的认识一下这三个标签的使用:

<%@page import="javaBean.Person"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>jsp标签的使用</title>
</head>
<body>
<!--class属性必须指定bean的完整类名
标签内容只在实例化bean时执行,即在域中找到了bean时(不用实例化)不会执行 -->
<%
//pageContext.setAttribute("person", new Person());
%>
<jsp:useBean id="person" class="javaBean.Person" scope="page">
标签内容
</jsp:useBean> <jsp:setProperty property="name" value="eson_15" name="person"/> <!-- jsp:setProperty标签在工作时,它会自动把字符串转换成八种基本数据类型,如int类型
但是对于复杂类型无法自动进行转换,如Date类型 -->
<jsp:setProperty property="age" value="12" name="person"/>
<!-- 这样也可以:<jsp:setProperty property="age" value="<%=12%>" name="person"/> --> <jsp:setProperty property="birthday" value="<%= new Date() %>" name="person"/>
<!-- value如果用"1990-9-19"则不行,jsp:setProperty无法自动对时间进行转换 --> <jsp:setProperty property="name" param="name" name="person"/>
<!-- 获取请求页面的请求参数name:http://localhost:8080/day09/1.jsp?name=<span style="font-family:Microsoft YaHei;">eson_15</span>--> <jsp:setProperty property="*" name="person"/>
<!-- 用所有的请求参数为bean的属性赋值
http://localhost:8080/day09/1.jsp?name=eson_15&password=123&age=12 --> <%
System.out.println(person.getName());
System.out.println(person.getAge());
System.out.println(person.getPassword());
%> <jsp:getProperty property="name" name="person"/>
</body>
</html>

Jsp与javaBean比较简单,就介绍这么多吧~如有错误之处,欢迎留言指正~

JavaBean与Jsp的更多相关文章

  1. javaBean和jsp应用

    原网页:http://www.douban.com/note/102320977/ JavaBean是一种可复用,跨平台的组件.共有两种JavaBean:一种无用户界面,这种一般用于处理数据运算,操作 ...

  2. Javabean+servlet+JSP(html)实例应用

    大家都知道Javabean+servlet+JSP是最简单的MVC模式.的确,在一个小型的项目中,这个模式完全够用. 它优雅并且简洁.加上jQueryui的完美展示效果,让这个模式看起来非常合适.当然 ...

  3. JSP内置标签 JSP中JavaBean标签 JSP开发模式 EL和JSTL快速入门

    2 JSP内置标签(美化+业务逻辑)   1)为了取代<%%>脚本形式,使用JSP标签/JSP动作,目的:与JSP页面的美化,即JSP面页都是由标签组成,不再有其它的内容   2)JSP内 ...

  4. JavaBean在jsp中的使用

    JavaBean在Jsp中的引用: 1.用<jsp:useBean>标记: <jsp:useBean id="name" class="classnam ...

  5. (九)Javabean与Jsp(来自那些年的笔记)

    目录 JavaBean 在JSP中使用JavaBean 标签用法 带标签体的 JavaBean 标签 setProperty 标签 getProperty 标签 JSP开发模式 案列:使用 模式一 编 ...

  6. javabean和jsp动作元素

    model1就是利用了jsp和javabean 的组合来处理问题.jsp页面如果有太多的逻辑代码的话,维护起来和扩展起来是相当的麻烦的.所以jsp的逻辑代码部分都打包到一种java类当中进行编写.这种 ...

  7. JavaBean用JSP调用和使用JSP动作标签的区别

    javabean的类可以用jsp动作标签实例化并使用. <!-- 下面这句是对Javabean类person的引用,引用的实例是p2 --> <jsp:useBean id=&quo ...

  8. javabean+servlet+jsp程序_个人辛苦探索

    主要介绍主流的java web编程技术.设计模式和框架,以及如何利用Eclipese开发Web应用程序. 要点:1.Java Web编程的主要组件技术: 2.MVC设计模式: 3.用Eclipse构建 ...

  9. JavaBean+servlet+jsp——>对数据进行增删改查

    1.开始页面(查询数据) <%@page import="com.zdsofe.work.Student"%> <%@page import="java ...

随机推荐

  1. Cadence学习之——多部分元件原理图封装的画法

    在这里以NE5532为例 1.打开新建元件的属性设置框 (1)这里的Package per Pkg设置框就是用来设置元件共有几个部分的. (2)Package Type有两个选项Homogeneous ...

  2. Swift3.0基础语法学习<三>

    枚举和结构体: // // ViewController3.swift // SwiftBasicDemo // // Created by 思 彭 on 16/11/16. // Copyright ...

  3. Vmware /CentOS访问Windows中的文件

    1.将该文件设为共享文件夹 2.确定你的windows IP地址,用户名及密码 3.CentOS终端输入以下内容:   [root@*** mnt]# mkdir winD   [root@*** m ...

  4. 02-JAVA中的基本语法

    第一个动手动脑: 首先用枚举类型定义两个变量,然后判断两个变量是否引用同一对象,在判断枚举类型是否是原始数据类型,再从字符串中转换,最后列出所有的对象. 很明显,这两个变量都是枚举类型,但是这两个变量 ...

  5. poj 3368 Frequent values(RMQ)

    /************************************************************ 题目: Frequent values(poj 3368) 链接: http ...

  6. asp.net 去掉重复的querystring

    string[] vs = HttpContext.Current.Request.QueryString.GetValues(key);                    if (vs.Leng ...

  7. Log4j基本用法

    基本使用方法: Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式.日志信息的优先级从高到低有ERROR.WARN.INFO.DEBUG,分别用来指定这条日志信 ...

  8. require.js 使用博客

    没时间写博客,又觉得这篇很不错,或许以后能用到,只能copy与点赞: Javascript模块化编程(三):require.js的用法   作者: 阮一峰 日期: 2012年11月 7日 这个系列的第 ...

  9. select 练习4

    21.查询score中选学多门课程的同学中分数不是所有成绩中最高分成绩的记录. select * from score  where cno in(select cno from score grou ...

  10. UML用例图中泛化、扩展、包括

    在画用例图的时候,理清用例之间的关系是重点.用例的关系有泛化(generalization).扩展(extend)和包含(include).其中include和extend最易混淆.下面我们结合实例彻 ...