将之前用servlet写的程序转化为jsp+servlet的简单的MVC的三层结构。项目中程序的包如图
首先是实体对象:
package com.contactSystem.entiey;
public class Contact {
private String Id;
private String name;
private String sex;
private String age;
private String phone;
private String qq;
private String email;
public String getId() {
return Id;
}
public void setId(String id) {
Id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getQq() {
return qq;
}
public void setQq(String qq) {
this.qq = qq;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "Contact [Id=" + Id + ", name=" + name + ", sex=" + sex
+ ", age=" + age + ", phone=" + phone + ", qq=" + qq
+ ", email=" + email + "]";
}
}
然后就是对数据操作的抽象类
package com.contactSystem.dao;
import java.io.FileNotFoundException;
import java.io.UnsupportedEncodingException;
import java.util.List;
import org.dom4j.DocumentException;
import com.contactSystem.entiey.Contact;
public interface ContactOperate {
public void addContact(Contact contact) throws Exception;
public void updateContact(Contact contact) throws Exception;
public void removeContact(String id) throws Exception;
public Contact findContact(String id) throws Exception;
public List allContacts();
//根据名称姓名查询是否有存在重复。
public boolean checkIfContact(String name);
}
具体实现类
package com.contactSystem.dao.daoImpl;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import javax.persistence.Id;
import javax.persistence.Tuple;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import com.contactSystem.dao.ContactOperate;
import com.contactSystem.entiey.Contact;
import com.contactSystem.util.XMLUtil;
public class Operater implements ContactOperate {
@Override
//添加联系人
public void addContact(Contact contact) throws Exception {
// TODO Auto-generated method stub
File file=new File("e:/contact.xml");
Document doc=null;
Element rootElem=null;
if (file.exists()) {
doc=new SAXReader().read(file);
rootElem=doc.getRootElement();
}else {
doc=DocumentHelper.createDocument();
rootElem=doc.addElement("ContactList");
}
//开始添加个体
Element element=rootElem.addElement("contact");
//有系统自动生成一随机且唯一的ID,赋给联系人Id,系统提供了一个包UUID包
String uuid=UUID.randomUUID().toString().replace("-", "");
element.addAttribute("Id", uuid);
element.addElement("姓名").setText(contact.getName());
element.addElement("name").setText(contact.getName());
element.addElement("sex").setText(contact.getSex());
element.addElement("age").setText(contact.getAge());
element.addElement("phone").setText(contact.getPhone());
element.addElement("email").setText(contact.getEmail());
element.addElement("qq").setText(contact.getQq());
//写入到本地的xml文档中
XMLUtil.write2xml(doc);
}
@Override
public void updateContact(Contact contact) throws Exception {
// TODO Auto-generated method stub
//通过xpath查找对应id的联系人
Document document=