java_web学习(1)理解JavaBean
JavaBean简介
package org.it315;
public class RegisterBean
{
private String nickName = null;
private boolean male = false;
public void setNickName(String nickName)
{
this.nickName = nickName;
}
public String getNickName()
{
return nickName;
}
public void setMale(boolean male)
{
this.male = male;
}
public boolean isMale()
{
return male;
}
}
2)Indexed属性
package org.it315;
public class RegisterBean
{
private String [] specialities =
new String[]{"none","none","none","none","none"};
public void setSpecialities(String [] sp)
{
this.specialities = sp;
}
public void setSpecialities(int index,String sp)
{
specialities[index] = sp;
}
public String [] getSpecialities()
{
return specialities;
}
public String getSpecialities(int index)
{
return specialities[index];
}
}
JavaBean在JSP中的应用
//例1:testBean.jsp
<jsp:useBean id="currentDate" class="java.util.Date"/>
<jsp:setProperty name="currentDate" property="time" value="1234567"/>
<jsp:getProperty name="currentDate" property="time"/> //例2:testBean.jsp
<%
java.util.Date currentDate = new java.util.Date();
currentDate.setTime(1234567);
out.println(currentDate.getTime());
%>
1)<jsp:useBean>标签
<jsp:useBean id="beanInstanceName " class="package.class" scope="page|request|session|application"/>
<jsp:useBean>标签内部原理
//JSP中的语句:
<jsp:useBean id="currentDate" class="java.util.Date"/>
//翻译成的Servlet源码:
java.util.Date currentDate = null;
synchronized (_jspx_page_context) {
currentDate = (java.util.Date) _jspx_page_context.getAttribute("currentDate", PageContext.PAGE_SCOPE);
if (currentDate == null){
currentDate = new java.util.Date();
_jspx_page_context.setAttribute("currentDate",currentDate, PageContext.PAGE_SCOPE);
}
}
<jsp:useBean>标签完整语法
//完整语法:
<jsp:useBean id="beanInstanceName"
scope="page | request | session | application"
{
class="package.class" | type="package.class" | class="package.class" type="package.class" | beanName="{package.class | <%= expression %>}" type="package.class"
} />
type属性用于指定JavaBean实例对象的引用变量的类型,它必须是JavaBean对象的类名称、超类名称和所实现的接口名称中的一个,其默认值为class属性的设置值。beanName属性用于指定JavaBean的名称,这个名称不是JavaBean实例对象的引用名称,而是JavaBeans规范中定义的一种名称,它将被作为传递给java.beans.Beans类的instantiate方法的参数,例如,a.b.c。a.b.c可以代表一个类的完整名称,也可以代表a/b/c.ser这样的资源文件,java.beans.Beans类的instantiate方法可以从这个资源文件中产生出JavaBean的实例对象。beanName属性值还可以通过一个表达式来产生。
带标签体的<jsp:useBean>标签
//语法:
<jsp:useBean ...>
Body
</jsp:useBean>
//功能:
//Body部分的内容只在<jsp:useBean>标签创建JavaBean的实例对象时才执行。
2)<jsp:setProperty>标签
//语法格式:
<jsp:setProperty name="beanInstanceName"
{
property="propertyName" value="{string | <%= expression %>}" |property="propertyName" [ param="parameterName" ] | property= "*"
}/>
name属性用于指定JavaBean实例对象的名称,其值应与<jsp:useBean>标签的id属性值相同。
property属性用于指定JavaBean实例对象的属性名。
<jsp:setProperty name="beanInstanceName" property="propertyName" value="{string | <%= expression %>}" />
<jsp:setProperty name="beanInstanceName" property="propertyName" param="parameterName" />
<jsp:setProperty name="beanInstanceName" property="propertyName" />
<jsp:setProperty name="beanInstanceName" property="*" />
<jsp:useBean id="beanInstanceName" …/>
…
<jsp:setProperty name="beanInstanceName" property="propertyName" …/>
…
</jsp:useBean>
3)<jsp:getProperty>标签
<jsp:getProperty>标签用于读取JavaBean对象的属性,也就是调用JavaBean对象的getter方法,然后将读取的属性值转换成字符串后插入进输出的响应正文中。
//语法:
<jsp:getProperty name="beanInstanceName" property="PropertyName" />
name属性用于指定JavaBean实例对象的名称,其值应与<jsp:useBean>标签的id属性值相同。property属性用于指定JavaBean实例对象的属性名。
如果一个JavaBean实例对象的某个属性的值为null,那么,使用<jsp:getProperty>标签输出该属性的结果将是一个内容为“null”的字符串。
使用JavaBean的注意事项
JSP开发模式
1)MVC设计模式
MVC(模型-视图-控制器)是一种分离业务逻辑与显示界面的设计方法。MVC的模型(Model)部分负责管理程序的业务数据,视图(View)部分负责显示界面,控制器(Controller)部分则负责与用户进行交互(接受请求和选择响应视图)。

2)JPS设计模式(两种模式)


java_web学习(1)理解JavaBean的更多相关文章
- SQL Server 学习博客分享列表(应用式学习 + 深入理解)
SQL Server 学习博客分享列表(应用式学习 + 深入理解) 转自:https://blog.csdn.net/tianjing0805/article/details/75047574 SQL ...
- JDK学习---深入理解java中的HashMap、HashSet底层实现
本文参考资料: 1.<大话数据结构> 2.http://www.cnblogs.com/dassmeta/p/5338955.html 3.http://www.cnblogs.com/d ...
- JDK学习---深入理解java中的LinkedList
本文参考资料: 1.<大话数据结构> 2.http://blog.csdn.net/jzhf2012/article/details/8540543 3.http://blog.csdn. ...
- python基础知识的学习和理解
参考链接:https://github.com/yanhualei/about_python/tree/master/python_learning/python_base python基础知识笔 ...
- 【log4j】的学习和理解 + 打印所有 SQL
log4j 1.2 学习和理解 + 打印所有 SQL 一.基本资料 官方文档:http://logging.apache.org/log4j/1.2/manual.html(理解基本概念和其他) lo ...
- java_web学习(四) Date的理解与应用
1.日期 1.1 日期的本质: 是一个长整型long,最小单位是毫秒 1.2 日期的格式: 本次运用子类simpleDateformat定义格式 1.3 日期的运算 本次运用calendar类来的ad ...
- STM32学习笔记(四) RCC外设的学习和理解
RCC时钟模块并不好理解,初次接触我也是一头雾水,而且我真正掌握它的时候也比较晚,是我在学习uC/os-II,需要分析时钟时才有了深刻认识.但在学习中我却一定要把放在了前列,因为这是整个嵌入式最重要的 ...
- PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
PHP面向对象三大特点学习 学习目标:充分理解抽象.封装.继承.多态 面象对向的三大特点:封装性.继承性.多态性 首先简单理解一下抽象:我们在前面定义一个类的时候,实际上就是把一类事物共有的属性和 ...
- 深度学习研究理解5:Visualizing and Understanding Convolutional Networks(转)
Visualizing and understandingConvolutional Networks 本文是Matthew D.Zeiler 和Rob Fergus于(纽约大学)13年撰写的论文,主 ...
随机推荐
- js中的整型都是用double存储的,有时候不精确,如,
sss=187948800449444864 187948800449444860 好像16位的时候还可以. http://segmentfault.com/a/1190000002608050
- (转)Hadoop之常见错误集锦
Hadoop之常见错误集锦 下文中没有特殊说明,环境都是CentOS下Hadoop 2.2.0.1.伪分布模式下执行start-dfs.sh脚本启动HDFS时出现如下错误: ...
- 转:C#生成唯一值的方法汇总
这篇文章主要介绍了C#生成唯一值的方法汇总,有需要的朋友可以参考一下 生成唯一值的方法很多,下面就不同环境下生成的唯一标识方法一一介绍,作为工作中的一次总结,有兴趣的可以自行测试: 一.在 .NET ...
- Struts2--Result类型
4种 result类型: dispatcher, redirect, chain, redirectAction dispatcher, redirect只能跳转到jsp等页面 chain,redir ...
- java中instanceof的用法
java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法:resu ...
- CodeForces 610B Vika and Squares
#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using ...
- office web apps部署(一)
准备两台服务器,A服务器作为域控制器,B服务器安装owa 1.配置域服务器A 参考 2.B服务器加入A所创建的域 参考 3.B服务器安装owa 参考 注意: 1.B服务器加入域后,使用A服务器的管理员 ...
- Varnish Cache
1 Varnish简介 Varnish是高性能且开源的反向代理服务器和HTTP加速器(cache server).其开发者Poul-Henning Kamp是FreeBSD核心的开发人员之一.Varn ...
- css3盒模型学习--利用box自适应布局
box-flex是css3新添加的盒子模型属性,它的出现可以解决我们通过N多结构.css实现的布局方式.经典 的一个布局应用就是布局的垂直等高.水平均分.按比例划分. 目前box-flex属性还没 ...
- 多线程编程--- __thread关键字
__thread是GCC内置的线程局部存储设施,存取效率可以和全局变量相比.__thread变量每一个线程有一份独立实体,各个线程的值互不干扰.可以用来修饰那些带有全局性且值可能变,但是又不值得用全局 ...