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()方法判断邮箱地址是否合法,并在页面中输出判断结果。

原文地址:https://www.cnblogs.com/gaopeng527/p/4418583.html