Java Web开发模式变迁;
a、SUN公司将JSP+JavaBean的开发模式称为JSP模式1;
之后提出了JSP+Servlet+JavaBean的JSP的开发模式2;
b、模式一的缺点:
页面严重缺乏可读性;
没有将页面的表现和业务逻辑实现分开,增加了维护难度;
2、在JSP中使用JavaBean;
a、JavaBean规范;
JavaBean类必须是一个公共类,访问属性设置为public;
JavaBean类必须有一个无参的空的构造函数;
JavaBean类不应该有公共的实例变量,类变量都是private;
JavaBean类应该是可序列化的(serializable),即实现了java.io.Serializable接口;
b、为了在JSP中使用JavaBean,JSP提供了一下三种标准动作;
jsp:useBean、jsp:getProperty和jsp:setProperty;
3、< jsp:useBean>动作;
< jsp:useBean id = "beanName" scope = "page/request/session/application" class = "className" />;
jsp:useBean:得到或创建JavaBean对象,先到作用域中查看是否存在该JavaBean对象,有就直接用,没有就创建;
id:JavaBean对象名(引用名),在别的地方通过该引用名来访问JavaBean实例;
scope:JavaBean生存的作用域,默认是page;
class:JavaBean的包名类名,容器可以在web-inf/classes的目录下找到;
< jsp:useBean id = "myBean" scope = "request" class = "com.lovobook.CustomerBean" />
以上JavaBean声明等同于以下Servlet代码:
CustomerBean myBean = (CustomerBean)request.getAttribute("myBean");
if(myBean == null){
myBean = new CustomerBean();
request.setAttribute("myBean",myBean);
}
4、< jsp:getProperty>动作;
< jsp:getProperty name = "beanName" property = "propertyname" />;
name:在< jsp:useBean>动作中的id名,id表示目标对象,name表示源对象;
property:返回JavaBean中相对应的属性名;
< jsp:useBean id = "myBean" scope = "request" class = "com.lovobook.CustomerBean" />
< p>name:< jsp:getProperty name = "beanName" property = "propertyname" />
等同于如下代码:
< jsp:useBean id = "myBean" scope = "request" class = "com.lovobook.CustomerBean" />
< %String name = myBean.getName();%>
< p>name:< %=name >
5、< jsp:setProperty>动作;
< jsp:setProperty name = "beanName" property = "属性名" param = "参数名" value ="属性值" />;
< jsp:setProperty name = "beanName" property = "email" />
相当于如下Servlet代码;
myBean.setEmail(request.getParameter("email"));
2、在JSP中使用JavaBean;
3、< jsp:useBean>动作;
4、< jsp:getProperty>动作;
5、< jsp:setProperty>动作;