JSP---JavaBean的使用-jsp:useBean标签相关

JavaBean介绍:

JavaBean其实就是一个遵循特定写法的java类,但是必须具有如下特点:

    1.这个java类必须具有一个公开的无参构造函数

    2.属性必须私有化,类必须公开

    3.私有化的属性必须通过public类型的方法暴露给其他程序,并且方法的命名也必须遵守一定的命名规范---getXxx和setXxx方法。

定义:

 把一个拥有对属性进行set和get方法的类,我们就可以称之为JavaBean。实际上JavaBean就是一个java类,在这个java类中就默认形成了一种规则——对属性进行设置和获得。而反之将说ava类就是一个JavaBean,这种说法是错误的,因为一个java类中不一定有对属性的设置和获得的方法(也就是不一定有set和get方法)。

在JSP中访问JavaBean的语法:

1、声明JavaBean对像-必须使用完整类名:
<jsp:useBean id=“someBean” class=“package.SomeBean” scope=“page”/>
以上声明相当于:
SomeBean someBean = new SomeBean();
pageContext.setAttribute(“someBean”,someBean);
scope的可选值为:page|request|session|application
需要说明的是:一般情况下,我们保留<jsp:useBean/>的body部分为空,如果不为空,则只有初始化此Bean时执行,如:
<jsp:useBean id=“person” class=“cn.Person”>
        这是body部分,只会在初始化时执行一次
</jsp:userBean>
2、访问JavaBean的属性:
<jsp:setProperty name=“someBean” property=“name” value=“Tom”/>
<jsp:getProperty name=“someBean” property=“name”/>
也可以在页面上使用Java代码直接访问它的属性和其他方法。

<jsp:useBean>标记:

      <jsp:useBean id="name" class="classname" scope="page|request|session|application"/>

      id:代表jsp页面中的实例对象 通过这个对象引用类中的成员,如,id="wq", wq.成员();

      class: 代表JavaBean类,如: class="com.Test",引用com包中的Test类

      scope:指明了javabean的生存时间

JavaBean的范围:

JavaBean的scope属性决定的Bean的范围,默认为page范围。
当声明了一个Bean并将它放到某个范畴之后,在同一个范围内再次使用<jsp:useBean../>将不再创建。而是直接给你返回已经创建过的Bean的实例。此过程可以通过查看容器翻译的源代码得知。

演示属性名是基本数据类型时的jsp:useBean用法:

User.java:

package cn.hncu.regServletPojo.domain;

public class User {
    private String name;
    private Integer age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "User [name=" + name + ", age=" + age + "]";
    }
}

javaBean.jsp:

package cn.hncu.regServletPojo.domain;

public class User {
    private String name;
    private Integer age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "User [name=" + name + ", age=" + age + "]";
    }
}

doBeanForm.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>

  <body>
    <%
        request.setCharacterEncoding("utf-8");
    %>

    <jsp:useBean id="user3" class="cn.hncu.regServletPojo.domain.User"></jsp:useBean>
    <!-- 下面这句相当于user3.setName( request.getParameter("name") ); -->
    <jsp:setProperty property="name" name="user3" param="name"/>
    <jsp:setProperty property="age" name="user3" param="age"/>
    ${user3}

    <br/><br/>
    <jsp:useBean id="user4" class="cn.hncu.regServletPojo.domain.User"></jsp:useBean>
    <!-- 属性用“*”号,就是让系统自动根据提交上来的参数去找对应的属性赋值 -->
    <jsp:setProperty property="*" name="user4"/>
    ${user4}
    <br/><br/>
  </body>
</html>

演示属性名与setter-getter方法比较特殊时的jsp:useBean用法:

Person.java:

package cn.hncu.bean;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author 陈浩翔
 *
 * 2016-7-30
 */
public class Person {
    private String name;
    private Integer age;//最好用Integer对象,而不用int
    private Date birth;
    //特殊的属性(这个变量的类型不是基本数据类型时,<jsp:setProperty>标记无法直接使用!)
    //解决方案:不写它自己默认的setter-getter--setBirth(Date)
    //而是写一对替代该属性的setter-getter ---setBirthday(String)方法
    //另外,在页面使用<jsp:setProperty>时,属性名应该用替代setter-getter 方法反推出的属性名-这里要用---birthday

    //开始我想着用重载做,其实重载也是可以实现这个一样的功能,不过注意哦,返回类型不能重载的!所以get方法是肯定不行的,综合,还是上面那个方法好。

    public Person() {
        super();
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    /*
     //我们要做的就是改这个2个方法
    public Date getBirth() {
        return birth;
    }

    public void setBirth(Date birth) {
        this.birth = birth;
    }
    */

    //注入日期格式
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

    public String getBirthday(){
        return sdf.format(birth);
    }

    public void setBirthday(String strDate){
        try {
            Date birth = sdf.parse(strDate);
            this.birth=birth;
        } catch (ParseException e) {
            throw new RuntimeException("日期格式错误", e);
        }

    }

    @Override
    public String toString() {
        return "Person [name=" + name + ", age=" + age + ", birth=" + birth
                + "]";
    }
}

javaBean.jsp:增加代码

<br/><br/>
    <!-- 以下演示属性名与setter-getter方法比较特殊时的jsp:userBean用法 -->
    <jsp:useBean id="person" class="cn.hncu.bean.Person"></jsp:useBean>
    <jsp:setProperty property="name" name="person" value="Tom"/>
    <jsp:setProperty property="age" name="person" value="35"/>
    <!-- 注意下面这句的property的值是:birthday !!!-->
    <jsp:setProperty property="birthday" name="person" value="2016-7-30"/>

    <jsp:getProperty property="name" name="person"/>
    <jsp:getProperty property="age" name="person"/>
    <jsp:getProperty property="birthday" name="person"/>

演示结果:

时间: 2024-10-28 09:13:20

JSP---JavaBean的使用-jsp:useBean标签相关的相关文章

【JSP开发】useBean标签与setProperty标签的使用

1.useBean标签的使用 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>jsp:useBean标签的使用

Jsp + JavaBean循序渐进教程(二)

js|教程 JavaBeans 和 JavaServer Pages的结合 通过上面的学习,大家对JavaBean应该有了一个基本的了解,对于在JavaServer Pages中调用JavaBeans我们还需要了解一些特定的jsp的内容,让我们来看看吧. JavaServer Pages中的JavaBean相关标签 在JavaServer Pages中调用JavaBean有三个标准的标签,那就是<jsp:useBean>, <jsp:setProperty>,以及<jsp:g

使用JavaBean高效处理JSP(2)

js JSP例子 每个页面都必须使用指定的结构,以符合整个架构. 列表1.login.jsp <%@ page import = "lbm.jsputil.*" %> <jsp:useBean id="_loginJSPBean" class="lbm.examples.LoginJSPBean" scope="session"/> <jsp:setProperty name="_log

JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)_java

下面通过通过图文并茂的方式给大家介绍JavaWeb实现用户登录注册功能实例代码,一起看看吧. 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责数据显示,javabean负责封装数据. Servlet+JSP+JavaBean模式程序各个模块之间层次清晰,web开发推荐采用此种模式. 这里以一个最常用的用户登录注册程序来讲解Servlet+JS

JSP JavaBean作用范围

JavaBean的生命周期存在于4种范围之中,分别为page.request.session.application,它们通过<jsp:useBean>标签的scope属性进行设置.这4种范围虽然存在很大的区别,但它们与JSP页面中的page.request.session.application范围相对应. page范围:与当前页面相对应,JavaBean的生命周期存在于一个页面之中,当页面关闭时JavaBean被销毁. request范围:与JSP的request生命周期相对应,JavaB

JSP学习笔记(九)-----JSP标签库

js|笔记 1.JSP标签库(也称自定义库)可看成是一套产生基于XML脚本的方法,它经由JavaBeans来支持.在概念上说,标签库是非常简单和可以重用的代码构造.它可以大大简化你在页面中输入各种录入框的代码(诸如此类的代码:<input type="text" name="taxpayerName" value = " ,<select name="collectionItemCode" class="requi

JSP/JAVABEAN+TOMCAT4.0.5+MYSQL组合建站总结

js|mysql 系统配置:win2000英文版+JDK1.4.1+TOMCAT4.0.5+APACHE2.043开发周期:竭尽全力,前后历时近15天.实现功能:1.    画廊:图片及相关文字的提交,分页显示,删除.2.    相册:相册主题的新建,相片及相关文字的提交,分主题,分页显示,删除.3.    文章/新闻发布系统:文章分类目录的新建,文章的分类显示,文章的编辑,删除.(具有10个插图上传能力)4.    文章按主题搜索及模糊查找.5.    将硬盘一指定目录以列表的形式显示出来,自

JSP 最佳实践:组合 JavaBean 组件和 JSP 技术

js JSP 最佳实践:组合 JavaBean 组件和 JSP 技术 使用 JavaBean 和 JSP 参数在 Web 页面之间传递数据级别:入门Brett McLaughlin(brett@oreilly.com)作家,O'Reilly and Associates2003 年 7 月 Web 架构设计师 Brett McLaughlin 演示了 JavaBean 组件和 JSP 技术的结合如何使您能够在 Web 页面之间存储并传递数据,以及这样做如何能实现更为动态的站点设计.到目前为止,我

Jsp+JavaBean循序渐进教程

js|教程     这一节涉及到两个页面,一个donewuser.jsp文件用来实现记录添加操作,另一个文件listuser.jsp文件 用来显示所有的已经注册的用户信息.这两个页面都涉及到了JavaBean的具体调用,还是来看看文件吧, 对于文件中关键代码,都会添加上注释,以方便大家理解. donewuser.jsp文件 说明:用户注册操作页面,并根据用户注册成功否显示相应的反馈信息,这个页面主要的特点就是使用了 lyf.adduser这个JavaBean的addNewUser()方法来进行记