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

时间:2022-11-13 07:33:18

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"/>

演示结果:

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

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

  1. JSP中使用的模式——JSP&plus;JavaBean

    模式二:JSP+Servlet+JavaBean 链接地址:http://wxmimperio.coding.io/?p=189 JSP中两种模式的总结 链接地址:http://wxmimperio. ...

  2. Struts与jsp&plus;javabean&plus;servlet区别

    采用Struts框架技术和直接使用jsp+javabean技术开发各有什么优势?各自的缺点又是什么? 在Javaweb开发领域存在2种开发模式, 模式一,jsp+javabean 模式二,jsp+ja ...

  3. JavaWeb -- JSP&plus;JavaBean模式

    SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. JSP+JavaBean模式适合开发业务 ...

  4. JSP&plus;JavaBean&plus;Servlet技术(MVC模型)

    一,Servlet开发用户在浏览器中输入一个网址并回车,浏览器会向服务器发送一个HTTP请求.服务器端程序接受这个请求,并对请求进行处理,然后发送一个回应.浏览器收到回应,再把回应的内容显示出来.这种 ...

  5. JAVAWEB开发之Session的追踪创建和销毁、JSP具体解释(指令,标签,内置对象,动作即转发和包括)、JavaBean及内省技术以及EL表达式获取内容的使用

    Session的追踪技术 已知Session是利用cookie机制的server端技术.当client第一次訪问资源时 假设调用request.getSession() 就会在server端创建一个由 ...

  6. day12(jsp指令&内置对象&动作标签、JavaBean、EL表达式&函数库)

    day12 JSP指令 JSP指令概述 JSP指令的格式:<%@指令名 attr1="" attr2="" %>,一般都会把JSP指令放到JSP文件 ...

  7. &lt&semi;jsp&colon;javabean&gt&semi;动作标签实例

    <jsp:javabean>动作标签实例 之后补齐基础知识 scope属性 该属性指定了所创建Bean实例的存取范围,省略该属性时的值为page.<jsp:useBean>标识 ...

  8. 超全面的JavaWeb笔记day12&lt&semi;Jsp&amp&semi;JavaBean&amp&semi;El表达式&gt&semi;

    1.JSP三大指令 page include taglib 2.9个内置对象 out page pageContext request response session application exc ...

  9. jsp JavaBean el表达式

    JSP三大指令 一个jsp页面中,可以有0~N个指令的定义! 1. page --> 最复杂:<%@page language="java" info="xx ...

随机推荐

  1. C&plus;&plus;&lowbar;系列自学课程&lowbar;第&lowbar;12&lowbar;课&lowbar;语句&lowbar;《C&plus;&plus; Primer 第四版》

    前面的文章说完了表达式和类型转换的部分内容,在我参考的书里面,接下来讨论的是各种语句,包括:顺序语句.声明语句.复合语句(块语句).语句作用域 .if语句.while语句.for语句.do...whi ...

  2. win10 mac地址修改器

    NoVirus Thanks MAC Address Changer NoVirus Thanks MAC Address Changer is yet another simple MAC addr ...

  3. acl操作记录

    官方文档内容: 1.CREATE_ACL Procedure创建ACL Note: This procedure is deprecated in Oracle Database 12c. While ...

  4. js 当前系统时间

    <script language=Javascript> function time(){ //获得显示时间的div t_div = document.getElementById('sh ...

  5. USB驱动开发

    1.usb特点 2.usb class 3.

  6. Leetcode&lowbar;125&lowbar;Valid Palindrome

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41488377 Valid Palindrome Given ...

  7. AGC027B Garbage Collector

    一道很好的构造题 原题链接 很快就能想到,捡每个垃圾的能量可以最后再算.然后,对于每个垃圾,在路上耗费的能量仅与它是第几个被捡的有关,于是我们考虑将垃圾分组. 首先,我们定义\(F(x,i)\)为某次 ...

  8. String类型作为方法的形参

    代码: public class TestString { String str = new String("good"); char [] ch = {'a','b','c'}; ...

  9. BI 系列随笔列表 &lpar;SSIS&comma; SSRS&comma; SSAS&comma; MDX&comma; SQL Server&rpar;

    微软 BI ETL 架构设计 如何在 ETL 项目中统一管理上百个 SSIS 包的日志和包配置框架 如何管理和记录 SSIS 各个 Task 的开始执行时间和结束时间以及 Task 中添加|删除|修改 ...

  10. Spring Boot 2 入门

    Spring Boot其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. 参考网上资料,一路踩了几个坑,终于搞出了 ...