logo资料库

javaweb课程设计报告.docx

第1页 / 共24页
第2页 / 共24页
第3页 / 共24页
第4页 / 共24页
第5页 / 共24页
第6页 / 共24页
第7页 / 共24页
第8页 / 共24页
资料共24页,剩余部分请下载后查看
目录
第1章 系统需求分析
1.1系统设计目的
1.2系统需求
1.2.1功能需求
1.3开发环境
第2章系统设计
2.1MVC模式分析
2.2SSH分析
2.3Struts、Hibernate和Spring的整合
2.3.1Spring整合Hibernate
2.3.2Spring整合Struts2
2.3.3Struts2、Hibernate和Spring的整合开发
2.4数据库设计
2.4.1数据库字典
第3章功能实现
湖南科技大学计算机科学与工程学院 WEB 编程课程设计报告 题目:基于 SSH 仿今日头条的新闻网站 号:______________ 学 名:______________ 姓 指导老师:______________ 完成时间:______________ 1
目录 目录 .............................................................................................................................................................................. 2 第 1 章 系统需求分析 ................................................................................................................................................3 1.1 系统设计目的 .............................................................................................................................................. 3 1.2 系统需求 ...................................................................................................................................................... 3 1.2.1 功能需求 ............................................................................................................................................3 1.2.2 性能需求 ......................................................................................................... 错误!未定义书签。 1.3 运行环境 ...................................................................................................................................................... 3 1.3.1 硬件环境 ......................................................................................................... 错误!未定义书签。 1.3.2 软件环境 ......................................................................................................... 错误!未定义书签。 第 2 章 系统设计 ........................................................................................................................................................4 2.1MVC 模式分析 ................................................................................................................................................ 4 2.1.1 模型(Model)..................................................................................................... 错误!未定义书签。 2.1.2 视图(View)........................................................................................................错误!未定义书签。 2.1.3 控制器(Controller)........................................................................................... 错误!未定义书签。 2.2SSH 分析 ..........................................................................................................................................................4 2.2.1Struts2 框架:......................................................................................................错误!未定义书签。 2.2.2Hibernate 框架: ................................................................................................. 错误!未定义书签。 2.2.3Spring 框架:....................................................................................................... 错误!未定义书签。 2.3Struts、Hibernate 和 Spring 的整合....................................................................................................... 5 2.3.1Spring 整合 Hibernate......................................................................................................................... 5 2.3.2Spring 整合 Struts2 ..............................................................................................................................6 2.3.3Struts2、Hibernate 和 Spring 的整合开发........................................................................................ 7 2.4 前台分页方法改进 ..................................................................................................... 错误!未定义书签。 2.5 数据库设计 ....................................................................................................................................................9 2.4.1 数据库字典.........................................................................................................................................9 第 3 章 功能实现 ......................................................................................................................................................11 3.1 网站前台功能实现 ..................................................................................................... 错误!未定义书签。 3.1.1 前台页面效果图...............................................................................................................................11 3.1.2 前台主要实现代码 .......................................................................................... 错误!未定义书签。 3.2 网站后台功能实现 ..................................................................................................... 错误!未定义书签。 3.2.1 后台页面效果图: ............................................................................................. 错误!未定义书签。 3.2.2 后台主要实现代码:......................................................................................... 错误!未定义书签。 第 4 章 结束语 ..........................................................................................................................错误!未定义书签。 4.1 论文总结 ......................................................................................................................错误!未定义书签。 4.2 未来工作 ......................................................................................................................错误!未定义书签。 2
第 1 章 系统需求分析 1.1 系统设计目的 本系统设计目的旨在建立一个以 SSH 框架为基础的仿今日头条的新闻网站。通过此次项目实 战来熟悉前端页面布局设计与编码、熟练使用 java web 中比较流行的框架------SSH 框架、了 解并熟练掌握复杂数据库的设计与实现等各种项目开发能力。 1.2 系统需求 1.2.1 功能需求 1)首页:为网站提供一个首页,在上面显示网站的重要信息包括网站 LOGO,用户的登录,用 户的注册接口,新闻一级分类显示,最新新闻以及当日最热新闻显示等。 2)用户的注册:主要针对未注册的用户,完成注册功能使用,在注册过程中,需要进行数据的 前台非空校验,及使用 AJAX 完成用户名是否存在的异步校验。在校验通过后即可完成注册, 在后台同样需要进行数据校验及发送一封激活邮件。 3)用户的激活:已经注册的用户,需要进入邮箱点击激活链接进行用户的激活。 4)用户的登录:已经注册的用户,并且该用户已经激活的情况下,输入用户名和密码即可 登录。 5)用户的退出:针对已经登录的用户,退出该系统使用。 6)二级分类展示:点击首页一级分类,可以调转到另一个界面显示出相对应的二级分类以 及该一级分类相关的全部文章。 7)二级分类下小分类展示:点击某个二级分类,即可以显示出二级分类对应的新闻。 8)新闻详细信息展示:点击任意具体新闻的标题即可调转到另一个页面显示新闻的详细信 息,包括标题、作者、发布时间、浏览量、是否收藏等 9)文章作者及其文章显示:在点击详细文章链接后,会显示出该文章作者对应的一系列文 章以及你是否已经关注的信息。 10)个人中心:用户成功登陆后,点击它的名字会调转到个人信息页面,包括收藏的新闻、 关注的用户、自己的粉丝等信息 11)文章搜索:在搜索栏中输入要搜索的关键字,将会搜索出对应的文章。 1.3 开发环境 本系统的软件开发及运行环境具体要求如下: a) 操作系统:windows 7 b) c) 开发工具:Eclipse Java EE IDE for Web Developers.Version: Oxygen Release (4.7.0) d) Web 服务器:Tomcat 8.0 JDK 环境:jdk 1.8 3
e) 数据库:Mysql Server 5.7(使用 Navicat 可视化工具) f) 浏览器:谷歌浏览器 第 2 章系统设计 2.1MVC 模式分析 MVC 是一种将应用程序的逻辑层和表现层进行分离的方法。MVC 式的出现不仅实现了功能 模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件 的可复用性。 模型是应用程序的主体部分。模型表示业务数据。通常来说,你的模型类将包含取出、 插入、更新、删除你的数据库信息的功能。 视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。一个视图通 常是一个网页,但是在 CI 中,一个视图也可以是一个页面片段,如页头、页尾。 控制器工作就是根据用户的输入,控制用户界面数据显示和更新 model 对象状态。 是模型、视图以及其它任何处理 HTTP 请求所必须的资源之间的中介,并生成网页。 2.2SSH 分析 SSH 即 Struts+Spring+Hibernate,是典型的 J2EE 三层结构,分为表现层、中间层和数据访问层。 三层体系将数据表现、业务逻辑和数据访问分开。业务逻辑、数据访问、权限拦截及合法性 校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接, 再由中间层与数据库打交道。 Struts2 是一个具有很好实用价值的 Web MVC 框架,它减少了直接运用 MVC 模式来开 发 Web 应用的周期。重要的是它是一个开源框架,方便开发者深入研究了解其机制,越来 越广泛的接受和应用。而且它提供一个好的控制器和一套定制的标签库 Taglib,着力在控制 器和视图上的应用,完美的体现了 MVC 设计思想。 Hibernate 是轻量级 Java EE 应用的持久层解决方案,是流行的 ORM 框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以面向对象的方式来操纵数据库。 Hibernate 不仅管理 Java 类到数据库表的映射,还提供数据查询和获取数据的操作,可以减 少人工使用 SQL 和 JDBC 处理数据的时间。 Spring 是从实际开发中抽取出来的开源框架,为企业的开发提供一个轻量级的解决方 案。该解决方案包括:基于 Ioc(控制反转)的核心机制,以及 AOP(面向切面编程)的思想,能 与多种持久层技术的整合,是优秀的 Web MVC 框架等。Spring 致力于 Java EE 应用各层的解 决方案而不是仅仅专注于某一层的方案,它贯穿表现层、业务层、持久层,降低各层组件的 耦合度,实现软件各层的解耦. 4
2.3Struts 、 Hibernate 和 Spring 的整合 本章的前部分,我们已经了解了轻量级 JAVA EE 分层的设计模式,在 Java 界多种优秀框架在 对应层找到了自己的位置。如表示层有:Struts、WebWork、Velocity、JSF、Tapestry 等。持 久层有:Hibernate、Entity EJB、iBATIS、TopLink、OJB 等;将各层的开源框架有机的整合在 一起作为软件系统的主体架构,使得系统具各高度的可扩展性、可维护性。在各种整合的方 案中,struts+hibernate+spring 已成为 JAVAEE 应用开发的主流体系。 2.3.1Spring 整合 Hibernate Spring 以其开放性,能与大部分 ORM 框架良好的整合.这样 Spring 就能轻松地使用 ORM。 Spring 提供了 DAO 支持,DA0 组件是应用的持久层访问的重要组件,我们把主要精力集中 在数据的管理口上。 此外,Spring 还提供了一致的异常抽象,不需要在编码时显示的捕获各种特定的异常。 通过 Bibernate 进行数据持久层操作时,Hibernate 的 Session 接口提供了基本的数据访问方 法,获得 Hibernate Session 对象方法是要实现 Hibernate 的 SessionFactory 接口,SessionFactory 接口极为重要,它是单个数据库映射关系编译后的内存镜像,负责打开、关闭和管理 Session。 Hibernate 访问时,需要手动创建 SessionFactory 实例,这是繁琐的工作,我们希望能以声明 式的方式管理 SessionFactory 实例。Spring 的 loc 容器提供了这种方式,通过配置文件的配置 管理 SessionFactory 实例,使用 Spring 管理 Session 对象,使用 Spring 实现声明式的事务管 理。 下面是 Spring 对 Hibernate 的整合时的关键步骤。 1、在 Spring 的配置文件 ApplicationContext.xml 中配置 Hibernate 对 SessionFactory 的设置。 如下面的示例代码。 org.hibernate.dialect.MySQLDialect true true update cn/itcast/shop/user/vo/User.hbm.xml 5
当 Spring 的 IoC 容器配置了 SessionFactory Bean,它随应用的部署启动而加载,可以利用 Spring 依赖注入特性将该 Bean 注入其它 Bean。我们由配置文件还可以看出,以声明式的方式管理 SessionFactory 时,可以让应用在不同数据源间切换,一旦持久层服务发生改变,程序代码 不需要改动,只需修改配置文件即可,使得系统的可维护性加强。 2、使用 Spring 中的 HibernateDaosupport 和 HibernateTemplate 类简化 Hibernate DAO 实现类 的编写,完成数据持久化的操作。 3、通过 Spring 的事务机制进行统一的事务管理。Spring 可以采用编程式和声明式两类事务 管理。声明式的事务管理更灵活。可以在 Spring 中使用注解式的声明式事务管理: 2.3.2Spring 整合 Struts2 Spring 也提供了 MVC 模式的支持,但 Struts 是比较单纯的 MVC 框架,开发中更倾向 Spring 和 Struts 整合开发。 Struts 和 Spring 的整合比较简单顺畅。整合关键点是:将 Struts 中的 Action 的实例生成不再 由 Struts 负责,而交给 Spring 容器管理,主要目的是让控制器与业务逻辑组件实现分离。基 于该目的,我们采用工厂模式策略,让 Spring 容器管理 Action,利用 IoC 的依赖注入特性为 控制器注入业务逻辑组件。Struts 只单纯扮演控制器的角色。 下面是 Spring 和 Struts 整合的关键步骤。 Struts 的核心控制器必须能装载 Spring 的应用程序环境。 Spring 和 Struts 整合有两种方式 1、Struts2 的 Action 由 Struts2 框架自身创建. 2、Struts2 的 Action 交给 Spring 框架创建. 我们推荐使用第二种方式,因为第二种方式,Action 类由 Spring 容器进行管理,可以方便的 对 Action 类进行 AOP 的编程.但第二种有一个关键地方:就是在 Struts2 框架创建 Action 类的 时候,默认是多例的.而 Spring 容器在管理类的时候,默认创建是单例的.单例的这种方式就容 易产生线程安全问题.所以一定要配置类的 scope 属性. 在 Spring 的配置文件中: 在 Struts 的配置文件中: class="cn.itcast.shop.user.action.UserAction" 6
2.3.3Struts2、Hibernate 和 Spring 的整合开发 将两组整合放在一起进行开发,就可以进行三者的组合开发。在进行三者整合开发时,一般 可以采取由上往下和由下往上的分层开发的原则,多数实际项目开发,往往采用后者的开发 模式,即: (1)从底层开发,先开发领域对象,即一些实体类,这些领域对象会在各层之间进行传递, 利用 Hibernate 做好领域对象和数据库表的映射关系。 (2)DAO 层的开发。它是专门独立出来对数据进行持久化,即处理数据的 CRUD 操作,也是利 用 Spring 对 Hibernate 提供的 DAO 支持类 HibernateDaoSupport 来实现的。每个 DAO 组件对 应一个数据库表。 (3)Service 层的开发。这层主要是具体业务组件开发,主要用于处理各类业务逻辑,并且能 隔离事务和对其他资源调度。 (4)Action 层开发。主要是处理 Web 请求,由 Spring 进行管理。 附:Struts.xml 和 applicationContext.xml Struts.xml: /WEB-INF/jsp/index.jsp /WEB-INF/jsp/regist.jsp /WEB-INF/jsp/login.jsp /WEB-INF/jsp/login.jsp /WEB-INF/jsp/msg.jsp index /WEB-INF/jsp/person1.jsp /WEB-INF/jsp/viceindex.jsp /WEB-INF/jsp/viceindex2.jsp /WEB-INF/jsp/detail.jsp /WEB-INF/jsp/login.jsp /WEB-INF/jsp/detail.jsp /WEB-INF/jsp/search.jsp index 7
/WEB-INF/jsp/detail.jsp /WEB-INF/jsp/login.jsp /WEB-INF/jsp/person2.jsp /WEB-INF/jsp/person3.jsp 部分的 applicationContext.xml org.hibernate.dialect.MySQLDialect true true false update cn/itcast/news/user/vo/User.hbm.xml cn/itcast/news/category/vo/Category.hbm.xml cn/itcast/news/categorysecond/vo/CategorySecond.hbm.xml 8
分享到:
收藏