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方法判断邮箱地址是否合法,并在页面中判断输出结果。
效果图:
认证首页---


认证失败---


认证成功---


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