代码如下ackage cn.itcast.domain;import java.util.Date;public class User {  

private String id;
private String username;
private String password;
private String email;
private Date birthday;


public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}



}
package cn.itcast.dao;import cn.itcast.domain.User;public interface UserDao { User find(String username, String password); void add(User user); User find(String username);}ackage cn.itcast.dao.impl;import java.text.SimpleDateFormat;import org.dom4j.Document;
import org.dom4j.Element;import cn.itcast.dao.UserDao;
import cn.itcast.domain.User;
import cn.itcast.utils.XmlUtils;//根据业务需求来
public class UserDaoXmlImpl implements UserDao { public User find(String username,String password){

try{
Document document = XmlUtils.getDocument();
Element e = (Element) document.selectSingleNode("//user[@username='"+username+"' and @password='"+password+"']");
if(e==null){
return null;
}
User user = new User();
user.setId(e.attributeValue("id"));
user.setEmail(e.attributeValue("email"));
user.setPassword(e.attributeValue("password"));
user.setUsername(e.attributeValue("username"));
String birth = e.attributeValue("birthday");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
user.setBirthday(sdf.parse(birth));

return user;

}catch (Exception e) {
throw new RuntimeException(e);
}
}

public void add(User user){

try{
Document document = XmlUtils.getDocument();
Element root = document.getRootElement();

Element user_node = root.addElement("user");  //创建user结点,并挂到root
user_node.setAttributeValue("id", user.getId());
user_node.setAttributeValue("username", user.getUsername());
user_node.setAttributeValue("password", user.getPassword());
user_node.setAttributeValue("email", user.getEmail());
user_node.setAttributeValue("birthday", user.getBirthday().toLocaleString());

XmlUtils.write2Xml(document);

}catch (Exception e) {
throw new RuntimeException(e);
}

}

public User find(String username){

try{
Document document = XmlUtils.getDocument();
Element e = (Element) document.selectSingleNode("//user[@username='"+username+"']");
if(e==null){
return null;
}
User user = new User();
user.setId(e.attributeValue("id"));
user.setEmail(e.attributeValue("email"));
user.setPassword(e.attributeValue("password"));
user.setUsername(e.attributeValue("username"));
String birth = e.attributeValue("birthday");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
user.setBirthday(sdf.parse(birth));

return user;

}catch (Exception e) {
throw new RuntimeException(e);
}
}


}
package cn.itcast.utils;import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URL;import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;public class XmlUtils {

private static String filename = "users.xml";

public static Document getDocument() throws DocumentException{

URL url = XmlUtils.class.getClassLoader().getResource(filename);
String realpath = url.getPath();

SAXReader reader = new SAXReader();
return reader.read(new File(realpath));

}

public static void write2Xml(Document document) throws IOException{

URL url = XmlUtils.class.getClassLoader().getResource(filename);
String realpath = url.getPath();

OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(new FileOutputStream(realpath), format );
        writer.write( document );
        writer.close(); }

}
package cn.itcast.service;import cn.itcast.domain.User;
import cn.itcast.exception.UserExistException;public interface BusinessService {
void registerUser(User user) throws UserExistException; User loginUser(String username, String password);
ackage cn.itcast.service.impl;import cn.itcast.dao.UserDao;
import cn.itcast.dao.impl.UserDaoJdbcImpl;
import cn.itcast.dao.impl.UserDaoXmlImpl;
import cn.itcast.domain.User;
import cn.itcast.exception.UserExistException;
import cn.itcast.service.BusinessService;//根据需求来
public class BusinessServiceImpl implements BusinessService { UserDao dao = new  UserDaoJdbcImpl();

//提供注册服务
public void registerUser(User user) throws UserExistException{

if(dao.find(user.getUsername())!=null){
//checked exception 
//unchecked exception
//这里抛编译时异常的原因:是我想上一层程序处理这个异常,以给用户一个友好提示
throw new UserExistException("注册的用户名已存在!!!");
}

dao.add(user);
}


public User loginUser(String username,String password){
return dao.find(username, password);
}

}}谁给我讲讲啊  我看着自己头都晕了 不知道应该怎么办啊 各位朋友 讲讲吧

解决方案 »

  1.   

    谁帮我理一下用MVC做的登录界面的实例吧  感觉好难啊  听不懂啊
      

  2.   

    代码那么长,很少有人会看的啦,MVC做登录页面?什么意思,是类似于一个管理系统,有注册有登录功能吗?那是最基本的啊
      

  3.   

    就lz的代码来看 说不上什么一个MVC问题 代码是比较标准的面向接口编程(这是个人观点 因为我也是菜鸟 正在学习中) User 是POJO  UserDAO 提供访问user表的接口  然后是下面的实现 BussinessService是业务接口 同样是也有其实现 调用方法的时候都是调用接口
      

  4.   

    给楼主一个连接,http://download.csdn.net/detail/dw_java08/4542586
    这个系统是我最近整的,你可以参考参考。有问题可以跟我联系,祝你好运!
      

  5.   

    基于swing 的聊天系统要不要..