JavaBean介绍:

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

  1. 1.这个java类必须具有一个公开的无参构造函数
  2. 2.属性必须私有化,类必须公开
  3. 3.私有化的属性必须通过public类型的方法暴露给其他程序,并且方法的命名也必须遵守一定的命名规范---getXxxsetXxx方法。

定义:

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

在JSP中访问JavaBean的语法:

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

<jsp:useBean>标记:

  1. <jsp:useBean id="name" class="classname" scope="page|request|session|application"/>
  2. id:代表jsp页面中的实例对象 通过这个对象引用类中的成员,如,id="wq", wq.成员();
  3. class: 代表JavaBean类,如: class="com.Test",引用com包中的Test类
  4. scope:指明了javabean的生存时间

JavaBean的范围:

JavaBean的scope属性决定的Bean的范围,默认为page范围。

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

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

User.java:

  1. package cn.hncu.regServletPojo.domain;
  2. public class User {
  3. private String name;
  4. private Integer age;
  5. public String getName() {
  6. return name;
  7. }
  8. public void setName(String name) {
  9. this.name = name;
  10. }
  11. public Integer getAge() {
  12. return age;
  13. }
  14. public void setAge(Integer age) {
  15. this.age = age;
  16. }
  17. @Override
  18. public String toString() {
  19. return "User [name=" + name + ", age=" + age + "]";
  20. }
  21. }

javaBean.jsp:

  1. package cn.hncu.regServletPojo.domain;
  2. public class User {
  3. private String name;
  4. private Integer age;
  5. public String getName() {
  6. return name;
  7. }
  8. public void setName(String name) {
  9. this.name = name;
  10. }
  11. public Integer getAge() {
  12. return age;
  13. }
  14. public void setAge(Integer age) {
  15. this.age = age;
  16. }
  17. @Override
  18. public String toString() {
  19. return "User [name=" + name + ", age=" + age + "]";
  20. }
  21. }

doBeanForm.jsp:

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  3. <html>
  4. <head>
  5. </head>
  6. <body>
  7. <%
  8. request.setCharacterEncoding("utf-8");
  9. %>
  10. <jsp:useBean id="user3" class="cn.hncu.regServletPojo.domain.User"></jsp:useBean>
  11. <!-- 下面这句相当于user3.setName( request.getParameter("name") ); -->
  12. <jsp:setProperty property="name" name="user3" param="name"/>
  13. <jsp:setProperty property="age" name="user3" param="age"/>
  14. ${user3}
  15. <br/><br/>
  16. <jsp:useBean id="user4" class="cn.hncu.regServletPojo.domain.User"></jsp:useBean>
  17. <!-- 属性用“*”号,就是让系统自动根据提交上来的参数去找对应的属性赋值 -->
  18. <jsp:setProperty property="*" name="user4"/>
  19. ${user4}
  20. <br/><br/>
  21. </body>
  22. </html>

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

Person.java:

  1. package cn.hncu.bean;
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. /**
  6. * @author 陈浩翔
  7. *
  8. * 2016-7-30
  9. */
  10. public class Person {
  11. private String name;
  12. private Integer age;//最好用Integer对象,而不用int
  13. private Date birth;
  14. //特殊的属性(这个变量的类型不是基本数据类型时,<jsp:setProperty>标记无法直接使用!)
  15. //解决方案:不写它自己默认的setter-getter--setBirth(Date)
  16. //而是写一对替代该属性的setter-getter ---setBirthday(String)方法
  17. //另外,在页面使用<jsp:setProperty>时,属性名应该用替代setter-getter 方法反推出的属性名-这里要用---birthday
  18. //开始我想着用重载做,其实重载也是可以实现这个一样的功能,不过注意哦,返回类型不能重载的!所以get方法是肯定不行的,综合,还是上面那个方法好。
  19. public Person() {
  20. super();
  21. }
  22. public String getName() {
  23. return name;
  24. }
  25. public void setName(String name) {
  26. this.name = name;
  27. }
  28. public Integer getAge() {
  29. return age;
  30. }
  31. public void setAge(Integer age) {
  32. this.age = age;
  33. }
  34. /*
  35. //我们要做的就是改这个2个方法
  36. public Date getBirth() {
  37. return birth;
  38. }
  39. public void setBirth(Date birth) {
  40. this.birth = birth;
  41. }
  42. */
  43. //注入日期格式
  44. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  45. public String getBirthday(){
  46. return sdf.format(birth);
  47. }
  48. public void setBirthday(String strDate){
  49. try {
  50. Date birth = sdf.parse(strDate);
  51. this.birth=birth;
  52. } catch (ParseException e) {
  53. throw new RuntimeException("日期格式错误", e);
  54. }
  55. }
  56. @Override
  57. public String toString() {
  58. return "Person [name=" + name + ", age=" + age + ", birth=" + birth
  59. + "]";
  60. }
  61. }

javaBean.jsp:增加代码

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

演示结果:

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

  1. JSP中使用的模式——JSP+JavaBean

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

  2. Struts与jsp+javabean+servlet区别

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

  3. JavaWeb -- JSP+JavaBean模式

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

  4. JSP+JavaBean+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. <jsp:javabean>动作标签实例

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

  8. 超全面的JavaWeb笔记day12<Jsp&JavaBean&El表达式>

    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. 【PyInstaller安装及使用】将py程序转换成exe可执行程序

    1  配置所需的环境 平台:windows7 64位,已经安装了python(x,y) 若未安装python环境,请自行安装python2.7或者其他版本,Python安装完成以后,需要将Python ...

  2. wpf image控件循环显示图片 以达到动画效果 问题及解决方案

    1>最初方案: 用wpf的image控件循环显示图片,达到动画效果,其实就是在后台代码动态改变Image.Source的值,关键代码: ; i < ; i++)//六百张图片 { Bitm ...

  3. <三> jQuery 选择器

    jQuery 选择器选择需要应用效果的元素,jQuery 元素选择器和属性选择器允许您通过标签名.属性名或内容对 HTML 元素进行选择.选择器允许您对 HTML 元素组或单个元素进行操作. 元素选择 ...

  4. xcode 中添加pch文件

    xcode6以后去掉了pch文件,据说苹果是觉得把头文件加在pch中,会让编译变慢,但是作为我们程序员来说难不倒我们,所以我们手动来添加一下pch文件即可   首先创建一个工程,然后创建一个pch文件 ...

  5. [BZOJ 1150] [CTSC2007] 数据备份Backup 【贪心 + 链表】

    题目链接:BZOJ - 1150 题目分析 可以看出,我们选的 k 条边一定是相邻两点之间的线段.我们可以将每条边看成一个点,那么我们就是要在 n-1 个点中选出互不相邻的 k 个,使它们的和最小. ...

  6. Google考虑抛弃Cookies机制

    根据华尔街日报的报道,Google 正在考虑抛弃古老的浏览器 cookies 来追踪用户信息的机制.作为替代,Google 将开发一种「个人匿名标识机制」.Google 早前已经计划在 IE 和 iP ...

  7. webbench的详细使用

    webbench是什么?是一款相当给力的网站压力测试工具.(优点自行搜索) 使用webbench需要两大步骤: 1.安装webbench 2.熟悉webbench命令 一.安装webbench 1.下 ...

  8. M-JPEG和MPEG-4的区别 M-JPEG VS MPEG

    http://blog.sina.com.cn/s/blog_4b357b300100gre9.html M-JPEG VS MPEG http://blog.csdn.net/bluesky_sun ...

  9. Java异常处理之try-catch-finally

    /** * @author Administrator * 功能:异常 */ package com.test; import java.io.*; import java.net.*; public ...

  10. QString内部仍采用UTF-16存储数据且不会改变(一共10种不同情况下的编码)

    出处:https://blog.qt.io/cn/2012/05/16/source-code-must-be-utf-8-and-qstring-wants-it/ 但是注意,这只是QT运行(Run ...