一、表结构
字段 UserID UserNm UserPsw UserEmail UserQuestion UserAnswer
登录注册页面设计
中文 用户Id 用户姓名 用户密码 用户邮箱 用户问题 用户答案 类型 Int Varchar(50) Varchar(50) Varchar(50) Varchar(100) Varchar(100) 是否为空 Not Null 二、页面设计
页面设计主要是采用css与javascript代码去美化与验证jsp页面和jsp页面上的操作。
登录页面
注册页面
修改信息页面
三、代码设计
本项目主要是实现了用户登录与注册这两个功能,是结合struts2+hibernate框架整合开发的,DAO作为实现了数据访问操作的所有细节的处理层。开发过程中,Struts2与hibernate主要是靠MyEclipse自动生成:struts2生成MVC模型的控制层的配置,hibernate生成MVC模型的持久层的类对象(PO);数据传值过程中,我主要是设计struts的action类与struts配置,还有DAO模式的设计,JS与css。 DAO设计:
IUserDAO类是其DAO层里的 CRUD 操作基础接口类,HibernateDAO类是那些持久化操作封
装一起的基础工具类,HibernateUtil类是责处理事务、会话或连接等等事务界定操作。UserDAOFactory类是生成DAO的工厂。
持久层接口IPersistentDAO++++++saveObject(Object obj) ()updateObject(Object obj) ()getObjects(String sql) ()getObject(String sql) ()getObject(Class cls, String id) ()deleteObject(Object obj) (): void: void: List: Object: Object: voidIUserDAO实现类UserDAOimpl--+++++ipd: IpersistentDAOgetIpd() ()save(User user) ()update(User user) ()delete(User user) ()findbyname(User user) ()findbyemail(User user) (): IPersistentDAO: Boolean: Boolean: Boolean: User: User++++++HibernateDAO的基础类HibernateDAOsaveObject(Object obj) ()updateObject(Object obj) ()getObjects(String hsql) ()getObjectStringHsql ()getObject(Class cls, String id) ()deleteObject(Object obj) (): void: void: List: Object: Object: voidHibernateUtilUserDAO接口类IUserDAO+++++save(User user) ()update(User user) ()delete(User user) ()findbyname(User user) ()findbyEmail(User user) (): Boolean: Boolean: Boolean: User: User----+++++++++++log: LogINTERCEPTOR_CLASS: Stringconfiguration: ConfigurationsessionFactory: SessionFactorygetSessionFactory() ()rebuildSessionFactory() ()rebuildSessionFactory(Configuration cfg) ()shutdown() ()getCurrentSession() ()reconnect(Session session) ()disconnectedSession() ()closeSession() ()beginTransaction() ()commitTransaction() ()rollbackTransaction() (): SessionFactory: void: void: void: Session: void: Session: void: void: void: void事务界定工具类UserDAOFactory+GetUserInstance (): UserDAOimplDAO工厂类
说明:
UserDAOFacory是供外界进行CRUD 操作的一个接口,是通过声明UserDAO接口,实例化IUserDAO实现类,得到CRUD操作的实例。 HibernateUtil是个静态类型的工具类,主要是处理事务的界定,session,Configuration,Trasaction等等事务方面由此类负责。
HibernateDAO实现了IPersisitentDAO接口,在IUserDAO实现类里通过接口实例化具体类,将HibernateDAO组合在UserDAOimpl类里面。那些持久化操作封装到HibernateDAO这个基础类里,通过这个基础类,DAO的实现类可以在很大程度上简化持久化操作的步骤,减少代码的重复量
Struts设计:
在struts.xml文档里共设置了三个action:login.action是用来登录的,register.action是用来