JSP基礎:JavaBean介紹

       在JSP網頁開發的初級階段,並沒有所謂的框架與邏輯分層的概念,JSP網頁代碼是與業務邏輯代碼寫在一起的。這種凌亂的代碼書寫方式,給程序的調試及維護帶來了很大的困難,直至JavaBean的出現,纔得到了改善。

一、JavaBean概述

       在JSP網頁開發的初級階段,並沒有框架與邏輯分層概念的產生,需要將Java代碼嵌入到網頁中,對JSP頁面中的一些業務邏輯進行處理,如字符串處理、數據庫操作等。其開發流程如下圖所示。

       這種開發方式看上去流程簡單,但是當大量的Java代碼嵌入到JSP頁面中,必定會給修改和維護帶來一定的困難,因爲JSP頁面包含HTML代碼、CSS代碼、Java代碼等,同時再加入業務邏輯處理代碼,既不利於頁面變成人員的設計,也不利於Java程序員對程序的開發。而且將Java代碼寫入到JSP頁面中,不能體現面向對象的開發模式,達不到代碼的複用。

       如果使HTML代碼與Java代碼分離,將Java代碼單獨封裝成爲一個處理某種業務邏輯的類,然後在JSP頁面中調用此類,則可以降低HTML代碼與Java代碼之間的耦合度,簡化JSP頁面,提高Java程序代碼的複用性和靈活性。這種與HTML代碼相分離,而使用Java代碼封裝的類,就是一個JavaBean組件。在JavaWeb開發中,可以使用JavaBean組件來完成業務邏輯的處理。應用JavaBean與JSP整合的開發模式如下圖所示。


       從圖中可以看出,JavaBean的應用簡化了JSP頁面,在JSP頁面中只包含了HTML代碼、CSS代碼,但JSP頁面可以引用JavaBean組件來完成某一業務邏輯,如字符串處理、數據庫操作等。

 

二、JavaBean種類

       起初,JavaBean的目的是爲了將可以重複使用的代碼進行打包。在傳統的應用中,JavaBean主要用於實現一些可視化界面,如一個窗體、按鈕、文本框等,這樣的JavaBean統稱爲可視化的JavaBean。

       隨着技術的不斷髮展與項目的需求,目前JavaBean主要用於實現一些業務邏輯與封裝一些業務對象,由於這樣的JavaBean並沒有可視化的界面,所以又稱爲非可視化的JavaBean。

       可視化的JavaBean一般應用於Swing的程序中,在JavaWeb開發中並不會採用,而是使用非可視化的JavaBean,實現一些業務邏輯或封裝一些業務對象。

       下面通過實例來了解一下非可視化的JavaBean。

       通過非可視化的JavaBean,封裝郵箱地址對象,通過JSP頁面調用該對象來驗證郵箱地址是否合法。

1、 創建名稱爲Email的JavaBean對象,用於封裝郵箱地址。

package com.javaBean.email;

import java.io.Serializable;

public class Email implements Serializable {

	/**
	 * serialVersionUid值
	 */
	private static final long serialVersionUID = 1L;
	//Email 地址
	private String mailAdd;
	//是否是一個標準的Email地址
	private boolean email;
	
	/**
	 * 默認無參的構造方法
	 */
	public Email(){
		
	};
	/**
	 * 構造方法
	 * @param mailAdd Email 地址
	 */
	public Email(String mailAdd){
		this.mailAdd=mailAdd;
	}
	/**
	 * 是否是一個標準的Email地址
	 * @return 布爾值
	 */
	public boolean isEmail(){
		//正則表達式,定義郵箱格式
		String str="\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
		//matches()方法可判斷字符串是否與正則表達式匹配
		if(mailAdd.matches(str)){
			//email 爲真
			email=true;
		}
		//返回 email
		return email;
	}
	public String getMailAdd() {
		return mailAdd;
	}
	public void setMailAdd(String mailAdd) {
		this.mailAdd = mailAdd;
	};
}


2、 創建名稱爲index.jsp頁面,它是程序中的首頁,用於放置驗證郵箱的表單,該表單的提交地址爲result.jsp。

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>郵箱認證系統</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
  </head>
  
  <body>
	<form action="result.jsp" method="post">
		<table align="center" width="300px" border="1px" height="150px">
			<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>

3、 創建名稱爲result.jsp頁面,對index.jsp頁面中的表單進行處理,在此頁面中實例化Email對象,對郵箱地址進行驗證,並將驗證結果輸出到頁面中。

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>驗證結果</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
	<div align="center">
		<%@page import="com.javaBean.email.*" %>
		<%
			//獲取郵箱地址
			String mailAdd=request.getParameter("mailAdd");
			//實例化 Email,並對 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>
該頁面通過JSP內置對象request,接收表單傳遞的mailAdd值,然後通過該值來實例化Email對象,通過Email的isEmail方法判斷郵箱地址是否合法,並在頁面中判斷輸出結果。
效果圖:
認證首頁---


認證失敗---


認證成功---


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章