目录
JavaBean
JavaBean
是一种遵循特定写法的Java
类,它通常具有以下特点:
- 这个
java
类必须有一个 无参 的 构造函数 - 属性必须 私有化
- 私有化的属性,必须通过
public
类型的方法暴露给其他程序, 并且方法的命名也必须遵守一定的命名规范
JavaBean
在 J2EE
开发中,通常用于封装数据 ;
对于遵循以上写法的JavaBean
组件,其他程序可以通过反射
技术实例化JavaBean
对象,并且通过 反射
那些遵守命名规范的方法,从而获得JavaBean
的属性,进而调用其属性对应的方法保存数据;
在JSP中使用JavaBean
JSP
技术提供了三个关于JavaBean
组件的动作元素,即JSP标签
,它们分别为:
-
<jsp:useBean id=””>
标签:用于在
JSP
页面查找或实例化一个JavaBean
组件; -
<jsp:setProperty name="" property="" >
标签:用于在
jsp
页面中设置一个Javabean
组件的属性; -
<jsp:getProperty name="" property="">
标签:用于在
jsp
页面中获取一个Javabean
组件的属性;
下面会详细讲解三个标签的用法;
<jsp:useBean id="">
标签用法
用于在 指定的域范围内 查找 指定名称 的javaBean
对象:
-
如果存在
,则直接返回该JavaBean
对象的引用; -
如果不存在
,则实例化一个新的JavaBean
对象并将它以指定的名字存储到指定的域范围中;
常用语法:
<jsp:useBean id="Javabean实例名" class="实例完整类名" scope="域" ></jsp:useBean>
id
属性用于指定JavaBean
实例化对象的引用名称,该名称也是 Javabean
保存在域中的名称; class
属性用于指定JavaBean
的完整类名(即必须带完整的包名) scope
属性用于指定 JavaBean
实例化对象所存储的域范围,默认是page
,取值只能是四个域中的一个;
原理:这个jsp标签
的底层原理是怎么执行的呢?
首先这是一个jsp
页面中的标签,所以它也会被翻译为servlet
,在写上这个标签以后,翻译过去的servlet
中,就会多一个对象 , 这个对象是以完整包名定义的,名字就是id
的值;
然后pageContext
对象,就会在在scope
指定的域中寻找这个对象,赋值给id
的值,如果没找到这个对象,就会创建一个对象,存进域中,再返回这个值;
带标签体的 JavaBean
标签
标签体
只在创建JavaBean
实例的时候,得到执行;也就是说,如果,JavaBean的实体,之前已经存在了,则不会执行这个标签体了;
setProperty
标签
其中name
的值是 Javabean实例的名字、property
的值是 Javabean实例的属性名字
有3种赋值方法:
-
直接赋值 使用
value
<jsp:setProperty name = "JavaBean实例名" property = "JavaBean属性名" value = "要赋值的值"/>
-
获取
request
请求参数赋值,使用param
,这里支持8中 基本数据类型 的转换;如果是8种数据类型之外的数据,则需要使用脚本表达式来赋值,比如
<%= new Date()%>
<jsp:setProperty name = "JavaBean实例名" property = "Javabean实例的属性名" param = "request对象中的参数名"
-
使用
*
号<jsp:setProperty name="Javabean实例的名字" property="*" />
会将
request
请求中的参数,按照Javabean
属性名字对应的自动的赋值给JavaBean
;其中原理是,利用反射技术,得到JavaBean的字段,进而得到get、set方法,进行赋值;
request
请求参数中的属性名字不能写错,写错了,就跟Javabean
属性对不上了;
备注(很重要):其中在赋值的时候,使用 request
请求参数赋值的时候(也就是上述的2、3方法
),如果 request
并没有参数,则不会产生赋值行为 ;
getProperty
标签
语法:
<jsp:getProperty name="Javabean实例名" property="Javabean实例属性名字">
会将取出的值,转换为字符串类型;如果属性被置为null
,则取出的是''null''
这个字符串;这里需要注意;一般我们不返回null;
JSP
开发模式
分两种;
其一: SUN
公司推出JSP
技术后,同时也推荐了两种web
应用程序的开发模式,一种是JSP+JavaBean
模式,一种是Servlet+JSP+javaBean
模式。
其二: JSP+Javabean
模式适合开发业务逻辑不太复杂的微博应用程序,这种模式下,Javabean
用于封装业务数据,JSP
即负责处理用户请求,又显示数据;
Servlet+JSP+JavaBean (MVC)
模式适合开发复杂的web
应用,在这种模式下servlet
负责处理用户请求,JSP
负责数据显示,JavaBean
负责封装数据。Web
开发推荐这种模式,层次分明。(MVC模式)
案列:使用 模式一 编写一个在线计算器;
主要是3个标签的用法;