ImageVerifierCode 换一换
格式:DOC , 页数:34 ,大小:1.76MB ,
资源ID:2487771      下载积分:12 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2487771.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(web应用大型实验报告基于ssh的javaweb网站设计.doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

web应用大型实验报告基于ssh的javaweb网站设计.doc

1、JAVA WEB 大型实验教育科学与技术学院Web应用大型实验报告题 目 虚拟网上银行 专 业 计算机科学与技术(专升本) 班 级 计算机专升本2015(2)班 姓 名 任课教师 2016年 12 月目录一、系统设计目标3二、开发环境概述3三、系统需求说明3四、使用框架简介31.简介32.Struts框架结构43.Spring框架结构54.hibernate框架结构6五、软件结构图7六、数据库设计71.用户表设计72.用户详细信息表设计73.账户状态表设计84.账单表设计85.账单类型表设计86.管理员表设计87.数据表关系图8七、系统功能展示(附主要代码)91.目录结构示意92.Status

2、配置展示93.Spring配置展示(部分)104.整合Hibernate数据源配置125.业务流程图展示(部分)146.用户功能实现147.用户逻辑业务实现168.数据接口层18八、前端界面功能设计211.相关框架212.账单222.1可视化账单252.2下拉账单253.账单导出26九、版本管理工具TaoCode28十、服务器管理28十一、小结28一、 系统设计目标本系统设计目的主要是模仿真实的网上银行体系,设计一个虚拟的网上银行系统。将真实的业务需求作为我们的开发前提。通过大型实验的方式,让我们对于java web的框架技术有个实际性的了解。在针对实际复杂的银行存储业务中,如何使用代码的方式

3、,解决业务逻辑问题。同时扩宽对于新技术的了解和使用。如前端技术,后端主流框架技术,以及对于网络传输,数据库操作,服务器的维护等等。二、 开发环境概述后台服务器使用linux centos版本服务器,搭建Apache-tomcat环境。JDK为java 1.8版本。主要编程语言为Java,Html,Css,JavaScript。开发工具为intellij idea。Svn版本库为TaoCode。三、 系统需求说明虚拟网上银行的核心业务为存款,取款和转账。用户上需要区分普通用户和管理员用户。普通用户只能实现存取款以及转账,管理员用户不能存取款,也不能转账。管理员账户可以对所有开户的账号进行管理,冻

4、结账户或者恢复账户。管理员拥有开通账户的权限,还能够查询所有用户。四、 使用框架简介1.简介网上银行系统使用的主要框架为Status、hibernate和Spring。Struts对Model,View和Controller都提供了对应的组件。Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,可以应用在任何使用JDBC的场合,可

5、以在Servlet/JSP的Web应用中使用,也可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。2.Struts框架结构Struts对Model,View和Controller都提供了对应的组件。在右图中,ActionServlet,这个类是Struts的核心控制器,负责拦截来自用户的请求。Action,这个类通常由用户提供,该控制器负责接收来自ActionServlet的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给JSP页面显示。2.Model部分由ActionForm和JavaBean组成,其中ActionForm用于封装用户的请求参数,封装成Ac

6、tionForm对象,该对象被ActionServlet转发给Action,Action根据ActionForm里面的请求参数处理用户的请求。JavaBean则封装了底层的业务逻辑,包括数据库访问等。3.View部分该部分采用JSP实现。Struts提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与Model的有效交互,并增加了现实功能。对应上图的JSP部分。4.Controller组件Controller组件有两个部分组成系统核心控制器,业务逻辑控制器。系统核心控制器,对应上图的ActionServlet。该控制器由Struts框架提供,继承HttpServlet类,

7、因此可以配置成标注的Servlet。该控制器负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器。业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是调用Model来完成处理。对应Action部分。3.Spring框架结构1.简介目的:解决企业应用开发的复杂性功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能范围:任何Java应用简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。2.轻量从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Sprin

8、g所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。3.控制反转Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。4.面向切面Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对

9、象只实现它们应该做的完成业务逻辑仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。5.容器Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。6.框架Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提

10、供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。4.hibernate框架结构Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代C

11、MP,完成数据持久化的重任。Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五个核心接口分别加以介绍。1.Session接口Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里

12、当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSesion对象称为用户session。2.SessionFactory接口SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。3.Configuration接口Configuration接口负责配置并启动Hib

13、ernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。4.Transaction接口Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。5.Query和Criteria接口Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。五、 软件结构图六、 数据库设计1. 用户表设计2. 用户详细信息表设计3. 账户状态表设计4. 账单表设计5. 账单类型表设计6.

14、 管理员表设计7. 数据表关系图七、 系统功能展示(附主要代码)1. 目录结构示意l Action -具体实现方法l Biz -业务逻辑类l Dao -数据接口层l Entity - 数据实例类l Utils - 使用工具类2. Status配置展示3. Spring配置展示(部分)Spring主要配置整体项目的事务管理系统,AOP切面定义,以及消息通知。Spring作为IOC容器,拥有非常好的控制反转机制。我们可以通过spring的注入方式,将对象的实例生成转交给spring去管理,减少代码的复杂性和提高复用性。 4.整合Hibernate数据源配置在这个过程中,我们通过spring接管hi

15、bernate。将数据源配置成为一个单独的bean置于spring容器中。在以往的JDBCTemplate中事务提交成功,异常处理都是通过Try/Catch 来完成,而在Spring中。Spring容器集成了TransactionTemplate,她封装了所有对事务处理的功能,包括异常时事务回滚,操作成功时数据提交等复杂业务功能。这都是由Spring容器来管理,大大减少了程序员的代码量,也对事务有了很好的管理控制。Hibernate中也有对事务的管理,hibernate中事务管理是通过SessionFactory创建和维护Session来完成。而Spring对SessionFactory配置也

16、进行了整合,不需要在通过hibernate.cfg.xml来对SessionaFactory进行设定。Spring对事务有很好的封装,自己有一套事务管理的封装,使业务逻辑与事务管理分离,进一步达到解耦作用。 这样的话就可以很好的利用Sping对事务管理强大功能。避免了每次对数据操作都要现获得Session实例来启动事务/提交/回滚事务还有繁琐的Try/Catch操作。这些也就是Spring中的AOP(面向切面编程)机制很好的应用。一方面使开发业务逻辑更清晰、专业分工更加容易进行。另一方面就是应用Spirng AOP隔离降低了程序的耦合性使我们可以在不同的应用中将各个切面结合起来使用大大提高了代

17、码重用度。 org.hibernate.dialect.MySQLDialect true com/dao/AccountEntity.hbm.xml com/dao/AdminEntity.hbm.xml com/dao/PersoninfoEntity.hbm.xml com/dao/StatusEntity.hbm.xml com/dao/TransactionLogEntity.hbm.xml com/dao/TransactionTypeEntity.hbm.xml 5.业务流程图展示(部分)6.用户功能实现package com.action;import com.biz.User

18、Biz;import com.dao.AccountEntity;import com.dao.Password;import com.dao.PersoninfoEntity;import org.apache.struts2.interceptor.RequestAware;import org.apache.struts2.interceptor.SessionAware;import com.opensymphony.xwork2.ActionSupport;import javax.annotation.Resource;import java.util.Map;/* * Creat

19、ed by 38909 on 2016/10/6. */public class UserAction extends ActionSupport implements RequestAware, SessionAware /定义通过resource 注解注入的属性userBiz ,可省略set方法 Resource private UserBiz userBiz; public void setUserBiz(UserBiz userBiz) this.userBiz = userBiz; Map request; Map session; private AccountEntity acc

20、ount; private PersoninfoEntity personinfo; private Password pwd;/退出登陆,销毁hibernate中的session缓存 public String logout() session.remove(account); session.remove(personinfo); return success; /登陆验证方法 public void validateLogin() super.validate(); AccountEntity a = userBiz.getAccount(account.getUsername(); i

21、f (a = null) this.addFieldError(username, 用户名不存在!); else if (!account.getPassword().equals(a.getPassword() this.addFieldError(password, 密码不正确); account = a; /用户登录方法 public String login() personinfo = (PersoninfoEntity) account.getPersoninfos().iterator().next(); session.put(account, account); sessio

22、n.put(personinfos, personinfo); return SUCCESS;7.用户逻辑业务实现package com.biz.impl;import com.biz.UserBiz;import com.dao.AccountEntity;import com.dao.AdminEntity;import com.dao.StatusEntity;import com.entity.UserDao;import org.springframework.transaction.annotation.Transactional;/* * Created by 38909 on

23、2016/10/6. */public class UserBizImpl implements UserBiz UserDao userDao; public void setUserDao(UserDao userDao) this.userDao = userDao; /get 账户 Override public AccountEntity getAccount(String username) return userDao.getAccount(username); Override public boolean modifyAccount(AccountEntity account

24、) return userDao.updateAccount(account); public void reflush(AccountEntity account) userDao.reflush(account); Override Transactional(readOnly = true) public AccountEntity getAccount(int accountid) return userDao.getAccount(accountid); Override public AdminEntity getAdmin(String username) return user

25、Dao.getAdmin(username); Override public boolean modifyAdmin(AdminEntity admin) return userDao.modifyAdmin(admin); /启用账户 Override public void enable(int id) /更据账户编号获取账户对象 AccountEntity account = userDao.getAccount(id); /修改账户对象的状态属性,设置为启用 StatusEntity status = userDao.getStatus(启用); account.setStatus(

26、status); /更新账户 userDao.updateAccount(account); /冻结账户 Override public void locking(int id) AccountEntity account = userDao.getAccount(id); StatusEntity status = userDao.getStatus(冻结); account.setStatus(status); userDao.updateAccount(account); Override public boolean delAccount(int id) AccountEntity a

27、ccount = userDao.getAccount(id); return userDao.delAccount(account); Override public boolean addAccount(AccountEntity account) StatusEntity status = userDao.getStatus(启用); account.setStatus(status); return userDao.addAccount(account); 8.数据接口层package com.entity.impl;import com.dao.AccountEntity;impor

28、t com.dao.AdminEntity;import com.dao.StatusEntity;import com.entity.UserDao;import org.hibernate.Query;import org.hibernate.Session;import org.springframework.orm.hibernate4.support.HibernateDaoSupport;/* * Created by 38909 on 2016/10/6. */public class UserDaoImpl extends HibernateDaoSupport impleme

29、nts UserDao Override public AccountEntity getAccount(String username) String hql = from AccountEntity as a where a.username=:username; Session session = this.getSessionFactory().getCurrentSession(); Query query = session.createQuery(hql); query.setString(username,username); return (AccountEntity)que

30、ry.uniqueResult(); Override public boolean updateAccount(AccountEntity account) super.getHibernateTemplate().merge(account); return true; Override public StatusEntity getStatus(String name) String hql = from StatusEntity as s where s.name =:name; Session session = this.getSessionFactory().getCurrent

31、Session(); Query query = session.createQuery(hql); query.setString(name,name); return (StatusEntity) query.uniqueResult(); Override public StatusEntity getStatus(int id) String hql = from StatusEntity as s where s.id = :id; Session session = this.getSessionFactory().getCurrentSession(); Query query

32、= session.createQuery(hql); query.setInteger(id,id); return (StatusEntity) query.uniqueResult(); Override public void reflush(AccountEntity account) super.getHibernateTemplate().refresh(account); Override public AccountEntity getAccount(int accountid) return (AccountEntity) super.getHibernateTemplat

33、e().get(AccountEntity.class,accountid); Override public AdminEntity getAdmin(String username) String hql = from AdminEntity as a where a.username =:username; Session session = this.getSessionFactory().getCurrentSession(); Query query = session.createQuery(hql); query.setString(username,username); return (AdminEntity) query.uniqueResult(); Override public boolean modifyAdmin(AdminEntity admin) super.getHibernateTemplate().update(admin); return true; Override public boolean delAccoun

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服