MVC的概念,大家都清楚吧,Model,View,Control 首先我们看看这个目录结构 --+login ----------+WEB-INF -----------------------+classes -beans -tags -----------+tlds
login 是主目录放jsp文件,在例子login.jsp,loginFailed.jsp,login_form.jsp,newAccount.jsp,welcome.jsp,accountCreated.jsp
Web-inf下面有web.xml配置文件,classes文件夹放类,tlds文件夹放自定义标签 由于我没有用到数据库,所以没有用LIB文件夹,是来放置 *.jar 文件的。
classes目录下,有beans,tags文件夹,分别放置User,LoginDB类,和自定义标签类GetRequestParameterTag,classes目录下还直接放了LoginServlet,NewAccountServlet控制器类
我们先看beans下的两个业务对象类 User.java package beans;
public class User implements java.io.Serializable { private final String userName, password, hint; //final强调此属性初始化后,不能修改hint是口令提示 public User(String userName, String password, String hint) { this.userName = userName; this.password = password; this.hint = hint; } public String getUserName(){ return userName; } public String getPassword(){ return password; } public String getHint(){ return hint; } //判断当前对象用户名和密码是否相等 public boolean equals(String uname, String upwd) { return getUserName().equals(uname) && getPassword().equals(upwd); } }
LoginDB.java package beans; import java.util.Iterator; import java.util.Vector; public class LoginDB implements java.io.Serializable { private Vector users = new Vector(); //Vector类是同步的,所以addUser就不需要同步了 public void addUser(String name, String pwd, String hint) { users.add(new User(name, pwd, hint)); } //下面方法判断是否存在正确的user public User getUser(String name,String pwd) { Iterator it = users.iterator(); User user; //迭代需要同步 synchronized(users) { while(it.hasNext()){ user = (User)it.next(); if(user.equals(name,pwd)) return user; //如果返回真,就返回当前user } } return null; } public String getHint(String name) { Iterator it = users.iterator(); User user; synchronized(users) { while(it.hasNext()){ user = (User)it.next(); if(user.getUserName().equals(name)) return user.getHint(); } } return null; } }
出处:蓝色理想
责任编辑:帅青蛙
上一页 下一页 用MVC架构简单的注册、登录例子 [2]
◎进入论坛网络编程版块参加讨论
|