当前位置: 首页 > news >正文

JavaBean的学习



可以在<jsp:setProperty>中通过param参数为bean的属性动态赋值。
<jsp:setProperty property="age" name="person" param="helloword"/> <br>
  <jsp:getProperty property="age" name="person"/>
对应的servlet代码:
 org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("person"), "age", request.getParameter("helloworld"), request, "helloworld", false);

JavaBean的范围:
Scope属性决定了JavaBean对象的存活范围。
scope可选值(page  request  session  application);

page:只能在同一个页面内被转发;客户每次请求访问jsp页面时,都会创建一个JavaBean对象。
 page属性生命期结束的标志:
a: 客户请求访问的当前jsp页面通过<forward>标记将请求转发到另一个页面;
b:客户请求访问的当前的JSP页面执行完并向客户端发回响应。

request:在请求对象存活期间,可以访问这个范围内的对象。(客户请求访问的当前jsp页面;和当前jsp页面共享同一个客户请求的页面,包含<%@ include>指令 以及<forward>指令)。
 当所有的共享同一个客户请求的JSP页面执行完毕并向客户端返回响应时,JavaBean对象结束生命周期。

session:再回话期间(不关闭这个浏览器),可以访问这个范围的对象。
注意:当JavaBean放在session范围内。

application:在web程序运行期间(服务器不关闭),可以访问这个范围的任何对象。

注意在这个代码中只要不停的换scope="{page,request,session,application}"这几个变量,就能从jsp页面的变化和servlet源代码的变化,体会到这几个属性的不同。

Student.java

package com.javabean.test;

public class Student
{
private long classNo;

private String name;

private int age;

private boolean sexy;

public Student()
{
classNo = 000101;    

name = "mingming";

age = 20;

sexy = true;
}
public long getClassNo()
{
return classNo;    
}
public void setClassNo(long classNo)
{
this.classNo = classNo;
}
public String getName()
{
return name;    
}
public void setName(String name)
{
this.name = name;    
}
public int getAge()
{
return age;    
}
public void setAge(int age)
{
    this.age = age;
}
public boolean isSexy()
{
return sexy;    
}
public void setSexy(boolean sexy)
{
this.sexy = sexy;    
}
}

javabean.jsp

<%@ page language="java" import="com.javabean.test.Student"
    pageEncoding="UTF-8"%>
<html>
    <body>
        
        <%-- 引用自己编写的javaBean生成的bean组件 --%>
        <jsp:useBean id="student" scope="page"
            class="com.javabean.test.Student" />
        
        <%=student.getName()%><br>
        
        <%
            student.setName("hheheh");
        %>
        <%-- 用getProperty动作来返回bean组件的属性值 --%>
        <jsp:getProperty name="student" property="classNo" />
        <br>
        <jsp:getProperty name="student" property="name" />
        <br>
        <jsp:getProperty name="student" property="age" />
        <br>
        <jsp:getProperty name="student" property="sexy" />
        <br>
        <%-- 取属性值 --%>
        <%=student.getClassNo()%>
        <br>
        <%=student.getName()%>
        <br>
        <%=student.getAge()%>
        <br>
        <%=student.isSexy()%>
        <br>
        
        <jsp:useBean id="date" class="java.util.Date" scope="application"></jsp:useBean>
        
        <%= date.toLocaleString() %>    
    </body>
</html>

相关文章:

  • 排版页数
  • 最长回文串
  • 分享:Sersync试用
  • pstreegdb
  • 一点正则表达式的学习碎片
  • 链表分割
  • void*
  • python requests.session 与 requests
  • 爬虫_urlencode问题
  • 如何实现MySQL的自动备份
  • 魔术索引
  • PIC数据采集系统---接口功能测试
  • 字符串排列
  • 数组中的逆序对
  • Windows 8 应用商店应用开发 之 氛围光传感器
  • @angular/forms 源码解析之双向绑定
  • [Vue CLI 3] 配置解析之 css.extract
  • 【347天】每日项目总结系列085(2018.01.18)
  •  D - 粉碎叛乱F - 其他起义
  • Git 使用集
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • java取消线程实例
  • Lucene解析 - 基本概念
  • node.js
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • PV统计优化设计
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • vagrant 添加本地 box 安装 laravel homestead
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 聚类分析——Kmeans
  • 如何用vue打造一个移动端音乐播放器
  • 通过几道题目学习二叉搜索树
  • Semaphore
  • 通过调用文摘列表API获取文摘
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #《AI中文版》V3 第 1 章 概述
  • #HarmonyOS:Web组件的使用
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • ${factoryList }后面有空格不影响
  • (9)目标检测_SSD的原理
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (十一)手动添加用户和文件的特殊权限
  • (四) Graphivz 颜色选择
  • (四)Controller接口控制器详解(三)
  • (转)Oracle 9i 数据库设计指引全集(1)
  • .NET : 在VS2008中计算代码度量值
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .net程序集学习心得
  • .sys文件乱码_python vscode输出乱码
  • [ IOS ] iOS-控制器View的创建和生命周期
  • [Android] Upload package to device fails #2720
  • [android] 切换界面的通用处理