首先创建Email类继承Serializable接口以启用其序列化功能,而序列化又是为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。序列化接口没有方法或字段,仅用于标识可序列化的语义。方法是通过java.io.Serializable来实现,没有实现此接口的类将不能使它们的任一状态被序列化或逆序列化,其实我写的时候没有"private static final long serialVerionUID = 1l;"就出现了空指针问题,所以在这里要注意一下Serializable接口。其实,以我的理解Serializable就是java提供的通用数据保存和读取的接口,任何类型实现了Serializable接口,就可以保存到文件中,或者作为数据流通过网络发送到其他的文件或者程序中,极大地简化了类的设计。
package com.caiduping.bean; import java.io.Serializable; public class Email implements Serializable { @SuppressWarnings("unused") //Serialization(序列化)是一种将对象以一连串的字节描述的过程 //serialVersionUID 变量名 private static final long serialVerionUID = 1l; //Email地址 private String mailAdd; //是否是一个标准的email地址 private boolean email; public Email(){ } public Email(String mailAdd){ this.mailAdd = mailAdd; } //检验邮箱格式 public boolean isEmail(){ String check = "^([a-z0-9A-Z]+[-|_|\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\.)+[a-zA-Z]{2,}$"; if(mailAdd.matches(check)){ email = true; } return email; } public String getMailAdd(){ return mailAdd; } public void setMailAdd(String mailAdd){ this.mailAdd = mailAdd; } }
首页面index.jsp:
<form id="form1" name="form1" method="post" action="result.jsp"> <div align="center"> <table width="530" border="1"> <tr> <td colspan="2"><div align="center"><span class="STYLE1">邮箱认证系统</span></div></td> </tr> <tr> <td width="293"><div align="center"><span class="STYLE2">邮箱地址:</span></div></td> <td width="221"><label> <input type="text" name="mailAdd" /> </label></td> </tr> <tr> <td colspan="2"><label> <div align="center"> <input type="submit" name="Submit" value="提交查询内容" /> </div> </label></td> </tr> </table> </div> </form>
最后再写结果result页面result.jsp:
<% 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>
运行效果图: