已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题目: 基于SSH架构的班级人员信息 展示系统设计专业: J计算机1302 学号: 4131110036 姓名: 周昌 一、 目的随着计算机技术普及应用及学校信息化的飞速发展,以人工方式对信息进行管理己不再适用,使用计算机化管理系统已经成为学校管理中不可或缺的一部分。如何在社会高速发展的现在,提高学校工作效率以及管理效率是各校发展必须考虑的问题。 传统的管理方式往往采用人工的方式对班级人员文档进行管理,这种粗放的管理模式效率很低,且不利于班级人员档案的升级和维护。为了解决传统管理模式中存在的矛盾和突出问题,保证人员管理中数据的可靠性、安全性,操作的正确性、高效性,就需要充分运用计算机资源将公式的人事信息充分的统一起来管理。 目前,基于SSH构建的员工管理系统已经成为社会进步与发展的又一关键因素。使用基于SSH构建的员工管理体系不但能够有效地减少银行日常工作流程,优化人力资源成本,而且也能够为银行职员搭载一个不受地域限制的沟通桥梁。利用此管理系统有着工作便捷,提高效率,规范程序,智能办公,方便实用,成本低廉等优点。此系统具备大范围使用的客观条件,能够保证管理系统的信息化水平提高。 因此我们此次设计的该系统主要功能是先登入一个用户登录系统,登录成功进入到班级信息展示页面,里面有每个人的信息,点击照片或者学号跳入到另外一个界面显示学生的个人详细信息,如果登录不成功,则两个页面都不能进入。2、 相关技术简介 Ssh为struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。 集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。1、struts struts是开源框架。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。Struts 是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。Struts是Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用MVC模式,能够很好地帮助java 开发者利用J2EE开发Web应用。和其他的java架构一样,Struts 也是面向对象设计,将MVC模式分离显示逻辑和业务逻辑的能力发挥得淋漓尽致。Struts 框架的核心是一个弹性的控制层,基于如 Java Servlets,JavaBeans,ResourceBundles与XML等标准技术,以及 Jakarta Commons 的一些类库。Struts由一组相互协作的类(组件)、Servlet以及jsp tag lib组成。基于struts构架的web应用程序基本上符合JSP Model2的设计标准,可以说是一个传统 MVC设计模式的一种变化类型。2、hibernate Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。3、springSpring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。传统J2EE应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致J2EE的应用没有真正实现Write Once及Run Anywhere的承诺。Spring作为开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务、事务处理等。Spring致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以说Spring是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。然而,Spring并不想取代那些已有的框架,而是与它们无缝地整合。三、系统设计与实现1、页面文件介绍1.1.Login.jsp该页为登陆页,受LoginAction控制,页内主要含有个表单,提交到login.action。学生信息管理系统学生登陆1.2List.jsp该页为登陆后展学列表的页,受 ListAction 控制。页内通过 s:iterator成表格,将List的学数据展出来。学生信息管理系统学生列表,你好。学号照片姓名班级学号照片姓名班级a href=detail?id=a href=detail?id=img src=photos/width=24 height=24登出3.Detail.jsp该页为学信息查看页,受DetailAction控制。学生信息管理系统姓名学号照片img src=photos/班级身份证性别省份生日-年龄登出2、 核心类介绍2.1model层Modle 层就是对应的数据库表的实体类。2.1.1User这是对应数据库表users的持久化类,代表户对象。package com.orzfly.StudentBook.model;import java.util.List;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.Table;import org.hibernate.Session;import org.hibernate.query.Query;import com.orzfly.StudentBook.helper.HibernateSessionFactory;EntityTable(name = users)public class User implements java.io.Serializable private static final long serialVersionUID = 5539065061159701472L;private Integer id;private String name;private String password;public User() public User(String name, String password) = name;this.password = password;IdGeneratedValueColumn(name = id, unique = true, nullable = false)public Integer getId() return this.id;public void setId(Integer id) this.id = id;Column(name = name)public String getName() return ;public void setName(String name) = name;Column(name = password)public String getPassword() return this.password;public void setPassword(String password) this.password = password;2.1.2Student这是对应数据库表students的持久化类,代表学对象。package com.orzfly.StudentBook.model;import java.util.List;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.Table;import javax.persistence.Transient;import org.hibernate.Session;import org.hibernate.query.Query;import com.orzfly.StudentBook.helper.HibernateSessionFactory;import com.orzfly.StudentBook.helper.IdcardInfoExtractor;EntityTable(name = students)public class Student implements java.io.Serializable private static final long serialVersionUID = 2224561345678905434L;private Integer id;private String firstName;private String lastName;private String className;private String photoFileName;private String idNumber;private IdcardInfoExtractor idcardInfo; public Student() public Student(String firstName, String lastName, String className,String photoFileName, String idNumber) this.firstName = firstName;this.lastName = lastName;this.className = className;this.photoFileName = photoFileName;this.idNumber = idNumber;IdGeneratedValueColumn(name = id, unique = true, nullable = false)public Integer getId() return this.id;public void setId(Integer id) this.id = id;Column(name = firstName)public String getFirstName() return firstName;public void setFirstName(String firstName) this.firstName = firstName;Column(name = lastName)public String getLastName() return lastName;public void setLastName(String lastName) this.lastName = lastName;Column(name = className)public String getClassName() return className;public void setClassName(String className) this.className = className;Column(name = photoFileName)public String getPhotoFileName() return photoFileName;public void setPhotoFileName(String photoFileName) this.photoFileName = photoFileName;Column(name = idNumber)public String getIdNumber() return idNumber;public void setIdNumber(String idNumber) this.idNumber = idNumber;Transientprivate IdcardInfoExtractor getIdcardInfo() if (this.idcardInfo = null) this.idcardInfo = new IdcardInfoExtractor(this.idNumber);return this.idcardInfo; Transientpublic String getGender() return getIdcardInfo().getGender();Transientpublic String getProvince() return getIdcardInfo().getProvince();Transient public int getYear() return getIdcardInfo().getYear(); Transient public int getMonth() return getIdcardInfo().getMonth(); Transient public int getDay() return getIdcardInfo().getDay(); Transient public int getAge() return getIdcardInfo().getAge(); 2.2Dao层Dao层是使了Hibernate连接数据库、操作数据库(增删改查)。2.2.1UserDao这是持久层的户。package com.orzfly.StudentBook.dao;import java.util.List;import com.orzfly.StudentBook.model.User;public interface UserDao public User findByUsername(String username);public List findAll();2.2.2StudentDao这是持久层的学。package com.orzfly.StudentBook.dao;import java.util.List;import com.orzfly.StudentBook.model.Student;public interface StudentDao public Student findById(Integer id);public List findAll();2.3Daolmap层2.3.1UserDaolmap这是相应的具体实现。package com.orzfly.StudentBook.dao.impl;import java.util.List;import org.springframework.orm.hibernate5.HibernateTemplate;import com.orzfly.StudentBook.dao.UserDao;import com.orzfly.StudentBook.model.User;public class UserDaoImpl implements UserDao private HibernateTemplate hibernateTemplate;public HibernateTemplate getHibernateTemplate() return hibernateTemplate;public void setHibernateTemplate(HibernateTemplate hibernateTemplate) this.hibernateTemplate = hibernateTemplate;Overridepublic User findByUsername(String username) return (User) this.hibernateTemplate.find(from User u where = ?, username).get(0);Overridepublic List findAll() return (List) this.hibernateTemplate.find(from User);2.3.2StudentDaoImpl这是相应的具体实现。package com.orzfly.StudentBook.dao.impl;import java.util.List;import org.springframework.orm.hibernate5.HibernateTemplate;import com.orzfly.StudentBook.dao.StudentDao;import com.orzfly.StudentBook.model.Student;public class StudentDaoImpl implements StudentDao private HibernateTemplate hibernateTemplate;public HibernateTemplate getHibernateTemplate() return hibernateTemplate;public void setHibernateTemplate(HibernateTemplate hibernateTemplate) this.hibernateTemplate = hibernateTemplate;Overridepublic Student findById(Integer id) return (Student) this.hibernateTemplate.get(Student.class, id);Overridepublic List findAll() return (List) this.hibernateTemplate.find(from Student);2.4ServiceService 层引对应的Dao数据库操作,在这可以编写需要的代码(如简单的判断)。2.4.1Userservice这是业务逻辑层的户接。package com.orzfly.StudentBook.service;import java.util.List;import com.orzfly.StudentBook.model.User;public interface UserService public User findByUsername(String username);public List findAll();2.4.2Studentservice这是业务逻辑层的学接。package com.orzfly.StudentBook.service;import java.util.List;import com.orzfly.StudentBook.model.Student;public interface StudentService public Student findById(Integer id);public List findAll();2.5servicelmpl2.5.1Userservicelmpl这是业务逻辑层的户接的具体实现。package com.orzfly.StudentBook.service.impl;import java.util.List;import com.orzfly.StudentBook.dao.UserDao;import com.orzfly.StudentBook.model.User;import com.orzfly.StudentBook.service.UserService;public class UserServiceImpl implements UserService private UserDao userDao;public UserDao getUserDao() return userDao;public void setUserDao(UserDao userDao) this.userDao = userDao;Overridepublic User findByUsername(String username) return userDao.findByUsername(username);Overridepublic List findAll() return userDao.findAll();2.5.2Studentservicelmpl这是业务逻辑层的学接的具体实现。package com.orzfly.StudentBook.service.impl;import java.util.List;import com.orzfly.StudentBook.dao.StudentDao;import com.orzfly.StudentBook.model.Student;import com.orzfly.StudentBook.service.StudentService;public class StudentServiceImpl implements StudentService private StudentDao studentDao;public StudentDao getStudentDao() return studentDao;public void setStudentDao(StudentDao studentDao) this.studentDao = studentDao;Overridepublic List findAll() return studentDao.findAll();Overridepublic Student findById(Integer id) return studentDao.findById(id);2.6Interceptor2.6.1PrivilegeInterceptor这是个校验户是否登陆的Struts2拦截器。如果没有登陆会返回login结果要求跳到登陆页去。package com.orzfly.StudentBerceptor;import com.opensymphony.xwork2.Action;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionInvocation;import erceptor.AbstractInterceptor;public class PrivilegeInterceptor extends AbstractInterceptor Overridepublic String intercept(ActionInvocation invocation) throws Exception ActionContext actionContext = invocation.getInvocationContext();Object user = actionContext.getSession().get(user);if (user != null) return invocation.invoke(); else return Action.LOGIN;2.7Domain2.7.1User这是登陆页(LoginAction)中到的数据类。package com.orzfly.StudentBook.domain;public class User private String username;private String password;public String getUsername() if (username = null) return ;return username;public void setUsername(String username) this.username = username;public String getPassword() if (password = null) return ;return password;public void setPassword(String password) this.password = password;2.8Action引对应的Service层,在这结合Struts的配置件,跳转到指定的页,当然也能接受页传递的请求数据,也可以做些计算处理。2.8.1LoginAction登陆页的为类,校验户名和密码并跳转列表页或是报错。package com.orzfly.StudentBook.action;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.opensymphony.xwork2.Action;import com.orzfly.StudentBook.model.User;import com.orzfly.StudentBook.service.UserService;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ActionContext;public class LoginAction extends ActionSupport private com.orzfly.StudentBook.domain.User user;public com.orzfly.StudentBook.domain.User getUser() return user;public void setUser(com.orzfly.StudentBook.domain.User user) this.user = user;public String execute() if (this.user != null) ApplicationContext applicationContext = new ClassPathXmlApplicationContext(classpath:applicationContext.xml);UserService userService = applicationContext.getBean(userService, UserService.class);User model = userService.findByUsername(this.user.getUsername();if (model != null & model.getPassword().equals(this.user.getPassword() ActionContext context = ActionContext.getContext();context.getSession().put(user, model.getName();return Action.SUCCESS;addActionError(鐧婚檰澶辫触锛岃妫煡浣犵殑瀛彿鍜屽瘑鐮佹槸鍚纭);return Action.ERROR;2.8.2ListAction列表页的为类,列出所有学的信息。package com.orzfly.StudentBook.action;import com.opensymphony.xwork2.Action;import com.orzfly.StudentBook.model.Student;import com.orzfly.StudentBook.model.User;import com.orzfly.StudentBook.service.StudentService;import com.orzfly.StudentBook.service.UserService;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ActionContext;import java.util.List;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class ListAction extends ActionSupport private List students;private User self;public List getStudents() return students;public void setUsers(List students) this.students = students;public User getSelf() return self;public void setSelf(User self) this.self = self;public String execute() ActionContext context = ActionContext.getContext();ApplicationContext applicationContext = new ClassPathXmlApplicationContext(classpath:applicationContext.xml);StudentService studentService = applicationContext.getBean(studentService, StudentService.class);UserService userService = applicationContext.getBean(userService, UserService.class);User self = userService.findByUsername(String) context.getSession().get(u
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 制造业基层员工外包合同
- 玻璃安装技术交底
- 危险品运输安全培训考试题(附答案)
- 环境整治服务外包合同
- 医务人员手卫生监测方案
- 风管式空调安装施工工艺及施工方法
- 专业销售团队外包合同
- 酒店考试常识题目及答案
- 基础地基三七灰土施工方案
- 养老护理员康复部分练习题库及答案
- 诊所安全生产管理制度
- 合同授权债权转让协议
- 社会工作探访记录
- 智慧树知道网课《中国古都文化》课后章节测试答案
- 机关宣传稿培训
- 2025年抗肿瘤药物临床合理应用培训试题及答案
- 铁路线路起道作业课件
- 新22G01 砌体房屋结构构造(烧结普通砖、烧结多孔砖)
- DBJ50-T-291-2018 建设工程施工现场安全资料管理标准
- 2025卫生职称(副高)考试小儿内科学高级职称(副高)历年考试真题及答案
- 2025年托育园考试题库及答案
评论
0/150
提交评论