一、概念
为了使HTML代码与Java代码相分离,将Java代码单独封装成为一个处理某种业务逻辑的类,然后在JSP页面中调用此类,则可以降低HTML代码与Java代码的耦合度,简化JSP页面,提高Java代码的重用性及灵活性。这种与HTML代码相分离,而使用Java代码封装的类,就是一个JavaBean组件。在Java Web开发中,可以使用JavaBean组件来完成业务逻辑处理。
分类:可视化JavaBean(一般应用于swing的程序中,在java web开发中并不会采用),非可视化的JavaBean(实现一些业务逻辑或封装一些业务对象)
例如:通过JavaBean封装邮箱地址对象,通过JSP页面调用该对象来验证该地址是否合法。
package Bean; import java.io.Serializable; public class Email implements Serializable{ private static final long serialVersionUID=1L; private String mailAdd; private boolean email; public Email(){ } public Email(String mailAdd){ this.mailAdd=mailAdd; } public boolean isEmail(){ String regex="\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"; if(mailAdd.matches(regex)){ email=true; } return email; } public String getMailAdd() { return mailAdd; } public void setMailAdd(String maillAdd){ this.mailAdd=maillAdd; } }
<%@page import="java.net.URLDecoder"%> <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title> 验证邮箱地址是否有效</title> </head> <body> <form action="result.jsp" method="post"> <table align="center" width="300" border="1" height="150"> <tr> <td colspan="2" align="center"> <b>邮箱认证系统</b> </td> </tr> <tr> <td align="right">邮箱地址:</td> <td> <input type="text" name="mailAdd"/></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit"/> </td> </tr> </table> </form> </body> </html>
<%@page import="Bean.Email"%> <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>结果页</title> </head> <body> <div align="center"> <% String mailAdd=request.getParameter("mailAdd"); Email email=new Email(mailAdd); if(email.isEmail()){ out.print(mailAdd+"<br>是一个标准的邮箱地址!<br>"); } else{ out.print(mailAdd+"<br>不是一个标准的邮箱地址!<br>"); } %> <a href="index.jsp">返回</a> </div> </body> </html>
二、应用
2.1 获取JavaBean属性信息
package bean; public class Produce { private String name="电吉他"; private double price=1880.5; private int count=100; private String factoryAdd="吉林省长春市xxx琴行"; public String getName(){ return name; } public double getPrice(){ return price; } public int getCount(){ return count; } public String getFactoryAdd(){ return factoryAdd; } }
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>获取属性值</title> </head> <body> <jsp:useBean id="produce" class="bean.Produce"></jsp:useBean> <div> <ul> <li> 商品名称:<jsp:getProperty property="name" name="produce"/> </li> <li> 价格:<jsp:getProperty property="price" name="produce" /> </li> <li> 数量:<jsp:getProperty property="count" name="produce" /> </li> <li> 厂址:<jsp:getProperty property="factoryAdd" name="produce" /> </li> </ul> </div> </body> </html>
2.2 对JavaBean属性赋值<jsp:setProperty property="price" name="produce" value="8888">
2.3 在JSP页面中应用JavaBean
主要通过动作标签<jsp:useBean>、<jsp:getProperey>、<jsp:setProperty>来实现对JavaBean对象的操作,将JavaBean对象应用到JSP页面中,可设置4中生命周期:page、request、session、application,默认情况下为page。