javabean 优点:
结构简单,适用于开发小型应用程序
通过Javabean来封装部分重要的商业逻辑运算,不同的JSP页面可以调用许多共享的组件,减少重复开发
缺点:
缺乏流程控制;分工不明确,当相关控制逻辑变得越来越复杂时,这种模式必将导致代码的可重用性及可扩展性的下降
今后对项目的维护困难,不利于扩展和更新
JavaBean的特点:
JavaBean必须是一个公开的(public)类
JavaBean类必须有一个无参数的构造函数
JavaBean中的成员变量通常称为属性,属性一般是私有的
取得或设定属性时,必须使用getXXX()和setXXX()方法, 其中,boolean没有get方法,是isXXX()的方法
如何使用JavaBean
在JSP中使用JavaBean的两种方法:
通过在<% … %>中实例化javabean的对象然后通过该对象调用javabean中的属性方法。
通过JSP中的动作元素来实现
<jsp:useBean> <jsp:setProperty> <jsp:getProperty>
在jsp中使用javabean –方法一
<%...%>使用javabean步骤:
通过<%@ page import=“”/>引入我们要使用的包名
在<%...%>中实例化bean的具体对象
在<%...%>中通过该实例化对象对bean中的属性进行赋值
在<%= … %>中通过该实例化对象调用getXX()方法现实结果。
在jsp中使用javabean –方法二
常用格式:
<jsp:useBean id = “beanName” class = “package.class”/>
<jsp:useBean id ="user" class="beans.Users"/>
<jsp:setProperty name="user" property="name" value="tom"/>
<jsp:getProperty name="user" property="name"/>
等价于:
<%@ page import=“beans.Users”%>
<%
Users user=new Users();
user.setName(“tom”);
out.println(user.getName());
%>
<jsp:useBean>
Scope属性取值:
page:在当前JSP文件以及此文件中的所有静态包含文件中使用Bean,直到页面执行完毕向客户端发回响应或转到另一个文件为止。
request:在任何执行相同请求的JSP文件中使用该Bean,用户可以使用request对象访问Bean。
session:从创建Bean开始,在任何使用相同session的JSP文件中使用Bean,该Bean存在于整个session生存周期内。
application:从创建Bean开始,用户就能在任何使用相同application的JSP文件中使用Bean。该Bean存在于整个application生存周期。
自省机制
自省机制:当服务器接收到请求时,他根据请求的参数名称,自动设定与JavaBean相同属性名称的值。
eg:
……
<form name="form1" action="Introspection.jsp" method="post">
姓名:<input type="text" name="name"><br>
编号:<input type="text" name="number"> <br>
<input type="submit" value="传送">
</form>
......
<jsp:useBean id="myBean" class=“beans.MyBean"/>
<jsp:setProperty name="myBean" property="*" />
姓名:<jsp:getProperty name="myBean"property="name"/>
编号:<jsp:getProperty name="myBean" property="number"/>
*:表示根据请求的参数名称和myBean中的参数名称自动匹配并赋值
JSP页面使用DAO
使用DAO可以将业务逻辑(功能实现)和JSP界面分开设计而互不干扰,使项目结构清晰,提高软件的可靠性
<%@ page contentType="text/html;charset=gbk"%>
<%@ page import="java.util.List,dao.Emp"%>
……
<jsp:useBean id="dao" class="dao.EmpDao"/>
<center>
<% List emps=dao.allEmp(); %>
或者:
<%@ page contentType="text/html;charset=gbk"%>
<%@ page import="java.util.List,dao.*"%>
<center>
<%
EmpDao dao=new EmpDao();
List emps=dao.allEmp();
%>
JavaBean的移除
JavaBean的移除,让容器释放内存
pageContext.removeAttribute(String name);
request.removeAttribute(String name);
session.removeAttribute(String name);
application.removeAttribute(String name);