JavaBean示例
例1.通过非可视化的JavaBean,封装邮箱地址对象,通过JSP页面调用该对象来验证邮箱地址是否合法。
(1)创建名称为Email的JavaBean对象,用于封装邮箱地址,关键代码如下:
package com.cn.gao; 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(){ } public Email(String mailAdd){ this.mailAdd=mailAdd; } /** * 是否是一个标准的Email地址 * @return 布尔值 */ public boolean isEmail(){ //正则表达式,定义邮箱格式 String regex = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"; //matches()方法可判断字符串是否与正则表达式匹配 if(mailAdd.matches(regex)){ //email为真 email=true; } return email; } public String getMailAdd(){ return mailAdd; } public void setMailAdd(String mailAdd){ this.mailAdd=mailAdd; } }
说明:虽然在JavaBean的规范中,要求JavaBean对象提供默认无参的构造方法,但除默认无参构造方法外,JavaBean对象也可以根据相关属性提供构造方法,所以Email类为了实例化方便,还提供了使用mailAdd实现的一个构造方法。
(2)创建名为index.jsp的页面,它是程序中的首页,用于放置验证邮箱的表单,该表单的提交地址为result.jsp页面。关键代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%> <% 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>My JSP 'index.jsp' starting page</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="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" name="Submit" value="提交查询内容"/> </td> </tr> </table> </form> </body> </html>
(3)创建名称为result.jsp的页面,对index.jsp页面中的表单进行处理在此页面中实例化Email对象,对邮箱地址进行验证,并将验证结果输出到页面中。关键代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%> <%@page import="com.cn.gao.Email"%> <% 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>My JSP 'result.jsp' starting page</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"> <% //获取邮箱地址 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()方法判断邮箱地址是否合法,并在页面中输出判断结果。