基于SSH框架的Web网站设计与实现.docx

上传人:b****8 文档编号:9898968 上传时间:2023-02-07 格式:DOCX 页数:48 大小:2.90MB
下载 相关 举报
基于SSH框架的Web网站设计与实现.docx_第1页
第1页 / 共48页
基于SSH框架的Web网站设计与实现.docx_第2页
第2页 / 共48页
基于SSH框架的Web网站设计与实现.docx_第3页
第3页 / 共48页
基于SSH框架的Web网站设计与实现.docx_第4页
第4页 / 共48页
基于SSH框架的Web网站设计与实现.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

基于SSH框架的Web网站设计与实现.docx

《基于SSH框架的Web网站设计与实现.docx》由会员分享,可在线阅读,更多相关《基于SSH框架的Web网站设计与实现.docx(48页珍藏版)》请在冰豆网上搜索。

基于SSH框架的Web网站设计与实现.docx

基于SSH框架的Web网站设计与实现

 

毕业论文(设计)

基于SSH框架的Web网站设计与实现

 

********

指导教师:

张妍(讲师)

专业名称:

通信工程

所在学院:

信息工程学院

 

2013年6月

摘要

本次毕业设计主要以电子商务为主题进行Web网站的设计与开发,在框架方面应用了现今比较主流的SSH框架。

设计背景以大连海洋大学出社为主题,并针对其进行设计与开发电子商务系统。

本次设计包括三个大模块分别为,后台管理OA系统、官网系统、图书出售系统,每个模块又包括了诸多小模块。

项目结构方面采用MVC架构大体上分为视图层、控制层、持久层,持久层细分为DAO层与业务层。

这种结构使得开发开发过程中逻辑清项目结构简明便于后期的功能扩展与二次开发。

技术方面在视图层采用的是Jsp页面技术,在此基础上部分页面引入Ajax请求。

服务器采用开源稳定的Tomcate服务器,数据库是MySQL。

具体的框架版本为Struct2、Hibernate3.3、Spring3.0,开发工具为Meclipse9。

关键词:

Hibernate,Spring,Struct2,Java,数据库

Abstract

ThegraduationprojectdesignsanddevelopsWebsitemainlywiththethemeofe-commerce,andapplisetheSSH(SecureShell)frameworkinthematterofframeworkwhichisthemainstreamtoday.Theprojectdesignsanddevelopse-commercesystemwiththedesignbackgroundoftheprojectwitchbasesonthethemeofDLOUPress.Theprojectcontainsofthreemainmodule.theyare,respectively,thebackstagemanagementOA(OfficeAutomation)system,theofficialwebsitesystemandthebooksellingsystem,andeachmodulecontainsnumerousbranchmodules.

TheMVC(ModelViewController)techniqueisadoptedintheaspectofprojectarchitecturewhichdividedintoViewlayer,ControllayerandHibernate,amongthethreeparts,HibernateissubdividedintoDAO(DataAccessObject)andbusinesslayer.Thisstructuremakesthelogicandsystemstructureclear,andhasgoodexpansibilityandmaintenance.

JSP(JavaServerPages)technologyisadoptedontheViewlayeratthetechnicallevel,basedonthis,partofwebpagesuseAJAX(AsynchronousJavaScriptandXML)requesttechnology.SteadyopensourceTomcateservletisadoptedintheaspectofserverandthedatabaseisMySQL.TheconcretstructureversionisStruct2.1、Hibernate3.3、Spring3.0,andMeclipse9isusedasdevelopmenttool.

Keywords:

Hibernate,Spring,Struct2,Java,DataBase

第一章前言

在JavaWeb设计与开发方面,比较经典的架构为MVC架构“M”指的模型(Mode)。

“模型”在开发过程中指的是持久层,再具体点说就是代码中的DAO(持久层),Service(业务层),Bean组件等,这些用于分析问题的逻辑关系和算法序列的表示体系都属于模型的范畴。

“V”指的是视图(View)在不同的领域所用的技术不同如:

Jsp,PHP,Html都属于视图技术,是直接展现给用户的。

在Java中使用的是Jsp页面,一种动态的页面技术。

“C”指的是控制器(Control)。

这种架构方法,将一个项目有条理的分成了三个部分,从而使开发过程中代码与代码之间的耦合度降低。

[1]

1.1研究目的和意义

应该说没有多少人怀疑计算机OA系统(自动化办公系统)的出现的意义。

计算机OA系统的出现给办公人员带来了便利,但是对现代的办公自动化而言,其目的己经不局限于减轻员工的工作量,而是要将工作人员从繁琐的事务、业务逻辑、工作方式解放出来,用更多的精力去关注更重要的事情。

从而提高企业的效率、增强企业的综合竞争能力。

在这样办公方式下,企业的组织结构、工作职能,能够得到简化,各个部门在信息共有化的基础上进行协调工作,这样便于明确各个部门甚至细微到每个每个工作人员的责任,而领导层可以迅速综合采纳来自多方面的资讯信息,并以此为依据制定企业的发展方针。

从这个意义上讲,在市场竞争越来越据烈化的今天,办公自动化系统己经不再是一种单一的手段、而是一种工具,更成为决定企业未来发展,生存空间的命脉。

1.2国内外研究现状

电子商务在现今信息飞速发展的今天有着举足轻重的地位,当今淘宝、当当网、银行服务系统、企业销售官网等都属于电子商务范畴。

[2]

电子商务的出现使得许多繁琐、逻辑性高、需要大量人力物力的工作可以通过远程网络的形式来处理解决。

大大减少了人力物力的投资,提高了工作效率。

1.3研究内容与方法

在MVC架构的基础上,现今比较成熟稳定的框架技术是SSH框架。

SSH是成熟、稳定、开源的三大框架。

S的是Struct2,在针对MVC架构中Struct2框架扮演着控制器(Control)的角色。

在视图层与服务器交互的过程中由struct2来控制,它的底层技术是Servlet。

第二个S指的是Spring这个开源框架,Spring充当的是一个容器的角色在实例化Bean组件、调用Bean组件、实例化Service层实时,都用Spring这个容器统一实例化并调用。

Spring框架的出现大幅度降低了代码与代码之间的耦合度,在Spring框架中经典的是AOP(面向切面编程)与IOC控制反转。

H指的是Hibernate这个框架主要服务于持久层。

它的出现解决了繁琐的数据库查询工作,直接面对逻辑对象编程与查询更加体现出Java面向对象编程的特点。

Hibernate是一个智能化比较高的框架,使用不好会使服务器效率大大降低。

[3]

第二章可行性与需求分析

2.1可行性分析

1组织和管理可行性

基于电子商务Web门户的办公自动化系统采用分模块的开发方式,将整个项目分为三个大系统,分别为图书出售系统,官网网站最新资讯系统,和后台的OA办公管理系统。

在三大系统的基础上又分为若干个模块,如:

OA系统的,员工管理模块、官网管理模块、图书管理模块,图书出售系统,订单生成模块、分类浏览模块等。

2经济可行性

所谓的经济可行性为在针对企业开发智能化办公系统的过程中,所投入的人力物力软件系统的前期花费,在后期软件的运营过程中是否能带来相应的效益、是否能给使用者带来方便、这工作人员从繁复的逻辑中解放出来从而获得更大的利益,提高工作效率。

3技术可行性

在针对企业的切实业务开发过程中,视图界面的制作时通过现有的功能全面、强大的Dreamweaver开发制作。

在整体布局上强调的是简洁、美观、大方、功能全面和操作的简易可行。

服务器采用的是稳定开源的Tomcate服务器。

在针对中小型企业开发过程中Tomcate服务器可以完美的兼容开发程序。

数据的处理采用的是Mysql数据库,也是一款开源稳定的数据库,兼容多种语言而且速度非常快。

采用的是经典的MVC架构。

框架方面引进的是SSH框架是当今javaEEweb开发中主流的框架。

在MVC架构的基础上,现今比较成熟稳定的框架技术是SSH。

SSH是成熟、稳定、开源的三大框架。

S指的是struct2,在针对MVC架构中Struct2框架扮演着控制器(control)的角色。

在视图层与服务器交互的过程中由Struct2来控制,它的底层技术是Servlet。

第2个S指的是Spring这个开源框架。

Spring充当的是一个容器的角色,在实例化Bean组件、调用Bean组件、实例化Service层时,都用Spring这个框架实例化并调用。

Spring框架的出现大幅度降低了代码与代码之间的耦合性,在Spring框架中经典的是AOP(面向切面编程)与IOC控制反转。

H指的是Hibernate,这个框架主要服务于持久层。

它的出现解决了繁琐的数据库查询工作,直接从逻辑对象中调用查询数据即可。

是一个智能化比较强的框架,处理不好会使服务器性能大大降低。

2.2需求分析

2.2.1官网系统功能分析

企业网站不仅代表着企业的网络品牌形象,同时也是开展网络营销的根据地,网站建设的水平对网络营销的效果有直接影响。

企业网站的功能主要表现在八个方面:

品牌形象、产品/服务展示、信息发布、顾客服务、顾客关系、网上调查、网上联盟、网上销售。

2.2.2图书出售系统分析

1业务流程

图1网购基本流程图

2图书出售功能分析

(1)用户身份验证模块(登陆模块)

计算机网络世界中一切信息包括用户的身份信息都是用一组特定的数据来表示的,计算机只能识别用户的数字身份,所有对用户的授权也是针对用户数字身份的授权。

通过登录的方式对用户的身份进行验证,以便于系统确定用户的身份更好的为用户服务。

(2)用户注册模块

通过注册获取用户的信息,并给与用户一定的权限.为后续的系统服务提供具体的对象。

(3)图书浏览、购书模块

根据不同的需求,提供给客户部同的浏览方式。

包括图书查询、分类浏览,按时间浏览等,用户想购买的图书可以添加到购物出付款,购买信息将根据用户信息进行绑定。

(4)购物车模块

该模块可以将出版图书集中付款、批量删除、修改图书数量、结算。

同一用户登陆时可以恢复购物车,未结算商品可以继续结算并且结算后购物车清空。

(5)订单生成模块

根据用户的具体信息生成订单,并与用户的唯一信息(id)进行绑定。

在生成订单过程中用户可以自由的决定是否保留本次的订单地址。

(6)我的信息模块

该模块中购物网用户可以清洗直观的,看到自己的个人信息、订单、地址,并提供对这些信息的修改、增加、删除、查找等操作。

2.2.3OA商务管理系统功能分析

1业务流程:

OA该系统的主要流程是系统管理员或普通用户通过登录模块进入系统主页,之后可以选择相应的功能对自己的信息进行处理。

业务流程图如图所示:

图2OA系统业务流程图

2后台OA商务管理系统功能分析

OA后台管理系统如下:

(1)管理员登陆模块

对用户进行身份验证,由于是后台OA办公系统只有管理员身份有权限登陆。

进行身份验证后,可以进行对官网的维护等信息操作。

(2)用户信息管理模块

可以查看全部用户的信息,修改部分用户的信息。

便于管理员管理维护购书网系统的用户信息。

(3)订单信息管理模块

提供用户订单的增加、删除、修改等必要的工作。

提供订单的分类浏览操作如:

按生成时间排序、按是否成交排序等操作。

(4)员工信息管理模块

该模块提供对员工的增加、删除、修改等必要的工作。

工资新宿调整、人员的调度、部门的更换的操作。

(5)官网管理模块

对企业官网的信息进行动态的维护。

如新闻的发布、文件的上传、文件的下载、最新注意事项、视频的上传。

(6)图书管理模块

该模块提供图书的管理、上架、下架、新图书发行、图书信息浏览等操作。

主要用于管理图书销售网图书的发行、发售、上架,和图书的分类级热销图书模块、编辑推荐模块的图书维护。

第三章设计技术与系统运行环境

3.1设计技术

1页面技术(JSP)

(1)Jsp是什么?

JavaServerPage(Ava服务器端页面技术)Sun公司制订的一种服务器端动态页面生成技术的规范,在Jsp技术当中,只需要在Html标记当中,添加少量的java代码,就可以实现动态页面。

因为直接使用Servlet输出动态页面非常麻烦(需要使用OutPrintln),并且难以维护(如果页面发生改变,需要修改Java代码)。

所以Sun公司才会制订Jsp规范。

(2)Jsp是如何执行的?

Step1:

容器先将.jsp文件转换成一个.java文件(其实,就是将Jsp转换成一个对应的Servlet)。

a,HtmlService方法里,使用out.write输出(write方法会将“null”转换成""输出)。

b,<%%>Service方法里,照搬。

c,<%=%>Service方法里,使用out.print输出。

out.print():

step2:

执行Servlet的Service方法。

2JavaBean组件技术

JavaBean是一种Java类,它遵从一定的设计模式,使它们易于和其他开发工具和组件一起使用。

JavaBean是一种Java语言写成的可重用组件。

为写成JavaBean,类必须是具体的类和公共的类,并且具有无参数的构造器。

JavaBean通过提供符合一致性设计模式的公共方法将内部域暴露称为属性。

众所周知,属性名称符合这种模式,其他Java类可以通过自身机制发现和操作这些JavaBean属性。

[4]

3Servlet技术

(1)什么是Servlet?

Sun公司制订的一种用于扩展Web服务器功能的组件规范,扩展Web服务器功能。

早期的web服务器(比如apachewebserver,is)只能够处理静态资源的请求(需要事先将页面文件写好,并存放到服务器特定的目录下面),不能够处理动态资源的请求即依据请求参数,通过计算,生成一个新的页面)。

扩展方式,早期是使用CGI程序来扩展:

CGI(commongatewayinterface),CGI是一个规范,约定了Web服务器与CGI程序(使用Perl,C等语言开发的,并且符合CGI规范的程序)相互调用的过程。

CGI程序有三个问题:

a,开发比较复杂(需要开发人员去解析请求参数);b,可移值性比较差(C,Perl等语言依赖于平台);c,性能问题(一个请求,会启动一个进程,进程的开销比较大)。

现在,可以使用Servlet来扩展。

[5]

(2)Servlet是如何运行的?

在浏览器地址栏输入http:

//localhost:

8080/项目名/访问路径

Step1:

浏览器依据Ip,Port建立与服务器之间的连接。

Step2:

浏览器将请求数据(请求资源路径,请求参数)按照http协议,打包(http请求数据包),发送给服务器。

Step3:

服务器解析请求数据包,将请求数据封装到Request对象里面(封装的目的,是为了方便Servlet获得请求数据包中的数据,如果没有Request对象,就需要在Servlet类里面编写、解析请求数据包的代码)。

另外,服务器还会创建一个对象Response对象(用来存放servlet处理的结果)。

[6]

Step4,服务器依据请求资源路径(web01/sayHello)找到对应的Servlet的配置,创建Servlet对象。

Step5,服务器会调用Servlet对象的Service方法(在调用该方法时,会将事先创建好的Request,Response对象作为参数传递进来)。

可以在Service方法里面,通过Request获得请求数据,也可以将处理之后的结果存放到Response对象上。

Step6,服务器从response对象上取出处理结果,生成响应数据包。

发送给浏览器。

Step7,浏览器解析响应数据包,取出处理结果,生成相应的界面。

4Struts2技术

Struts框架是基于MVC模式结构,基于Struts开发可以简化开发过程。

图3Struct2框架结构图

(1)Struts2框架应用

1)使用步骤:

a.引入struts开发包b.在web.xml中添加控制器Filter配置。

b在src下添加一个struts.xml配置文件(控制器配置文件)。

dc编写JSP,Action,DAO等组件。

d在struts.xml中添加配置(定义请求和Action对应关系)。

2)引入Struts开发包,(5个必须包,文件上传时需要引io包)

struts2-core-2.1.8.jar:

Struts2开发包。

xwork.jar:

xwork:

内核包。

commons-fileupload-1.2.1.jar:

文件上传用。

commons-io-1.3.2.jar:

上传时使用io读写。

ognl.jar(OGNL表达式语言,与EL相似,但比EL强大)。

Freemarker.jar(模板框架,可以替代JSP)。

4)Struts2框架配置文件:

Struts.xml:

开发者使用,用于定义Action,Result组件。

Struts-default.xml:

框架内置配置,定义了框架底层必要的运行组件。

Bean和struts-default的packge在struts-core.jar包中。

Default.properties:

框架内置配置,定义了一些框架系统参数例如框。

架处理字符的编码,请求类型等.在struts-core.jar包中。

5)Action基本配置:

a.元素,可以有多个,用于定义一组action。

name属性:

指定package名称,多个package时不能重名。

extends属性:

指定继承哪个package,通常指定为"struts-default"。

namespace属性:

指定请求的前缀,默认"/".避免请求名相同时冲突。

b.元素,可以有多个.用于定义具体某一个Action组件。

name属性:

指定该Action对应的请求名。

class属性:

指定Action组件的包名.类名。

method属性:

指定调用Action组件的哪个方法.默认为execute。

c.元素,可以有多个,用于定义某一个响应视图。

name属性:

指定视图标识符,与action业务方法返回值相关。

5Hibernate3.0技术

(1)Hibernate框架作用

Hibernate框架主要是用于实现数据库操作.简化数据库的增删改查原有数据库操作使用JDBC技术,具有以下问题:

a.编写复杂的Sql语句;b.需要编码完成实体对象与数据库记录之间映射。

c.数据库移植性较差,例如不同数据库分页查询不同。

为了解决上述问题,产生一种解决方案ORM:

ObjectRelationMapping对象关系映射。

实现Java对象与关系数据,表数据之间的映射。

[7]

(2)Hibernate框架原理

Hibernate是基于ORM机制实现的.对JDBC技术进行了封装.利用Hibernate可以以对象形式操作数据。

例如可以将对象添加到数据库,可以将数据库记录取出返回对象.session.save(user):

Useruser=(User)session.load(User.class,1)。

(3)Hibernate框架的基本应用

Hibernate体系结构:

a.Java对象(Entity);b.映射描述文件(*.hbm.xml)用于定义实体类和数据表之间对应关系;c.数据表;d.主配置文件(hibernate.cfg.xml)用于定义数据库连接参数和hibernate框架配置参数。

[8]

使用Hibernate步骤:

a.导入Hibernate和数据库驱动开发包b.添加hibernate主配置(1个)c.根据数据表编写实体类(n个)d.编写hbm.xml映射描述文件(n个)e.利用HibernateAPI完成数据库操作。

Configuration:

负责加载Hibernate主配置.SessionFactory:

负责创建Session对象。

该对象创建比较耗费资源,因为需要加载hbm.xml信息,预先生成常规的预编译的SQL.Session:

负责以对象方式对数据库进行增删改查save():

添加操作:

update():

更新操作:

delete():

删除操作:

load():

按主键值查询Transaction:

负责事务管理.默认JDBC自动提交事务,而Hibernate关闭了自动提交,因此需要显式commit.Query:

负责各种方式的查询。

6Spring技术

图4Spring框架示意图

(1)Spring框架整体结构

Spring框架主要由以下6大模块组成。

a.Core核心模块

是各个模块基础,主要提供IOC容器和依赖注入支持。

b.AOP模块

主要提供AOP实现支持。

c.DAO模块

主要提供整合JDBC技术及其事务控制的支持。

d.ORM模块

主要提供整合各种ORM框架及其事务控制的支持。

e.WEB模块

主要提供整合各种WEB技术的支持,例如Struts.此外还提供了Spring的MVC实现。

f.JEE模块

主要提供整合JavaEE服务一些支持。

例如JMS消息服务Email邮件发送服务EJB等。

[9]

(2)SSH开发步骤:

a.引入spring开发包和主配置applicationContext.xml。

b.引入Hibernate开发包,dbcp包,数据库驱动包。

c.根据数据表创建实体类和hbm映射文件。

d.编写DAO接口和实现类。

e.在Spring容器中定义DAO组件,需要注入SessionFactory,essionFactory需要注入DataSource。

f.建议利用junit测试下DAO组件。

g.引入struts开发包和主配置struts.xml。

h.在web.xml中配置sturts主控制器filter。

i.编写Action组件,注意dao或service采取注入形式使用,需名称匹配规则。

j.在struts.xml中,配置Action组件;。

k.编写Jsp。

l.引入Struts和Spring整合的插件包struts2-spring-plugin.jar。

m.在web.xml中添加ContextLoaderListener配置,在服务器启动时实例化Spring容器。

采用AOP方式实现事务管理:

Spring中常用事务类型:

REQUIRED支持当前事务,如果当前没有事务,就新建一个事务。

这是最常见的选择。

SUPPORTS支持当前事务,如果当前没有事务,就以非事务方式执行。

MANDATORY支持当前事务,如果当前没有事务,就抛出异常。

REQUIRES_NEW新建事务,如果当前存在事务,把当前事务挂起。

NOT_SUPPORTED以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

NEVER以非事务方式执行,如果当前存在事务,则抛出异常。

NESTED如果当前存在事

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1