购物系统项目的实现大学论文.docx

上传人:b****6 文档编号:7837524 上传时间:2023-01-26 格式:DOCX 页数:35 大小:743.86KB
下载 相关 举报
购物系统项目的实现大学论文.docx_第1页
第1页 / 共35页
购物系统项目的实现大学论文.docx_第2页
第2页 / 共35页
购物系统项目的实现大学论文.docx_第3页
第3页 / 共35页
购物系统项目的实现大学论文.docx_第4页
第4页 / 共35页
购物系统项目的实现大学论文.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

购物系统项目的实现大学论文.docx

《购物系统项目的实现大学论文.docx》由会员分享,可在线阅读,更多相关《购物系统项目的实现大学论文.docx(35页珍藏版)》请在冰豆网上搜索。

购物系统项目的实现大学论文.docx

购物系统项目的实现大学论文

毕业设计

 

课程名称:

web程序设计实践

实验题目:

购物系统项目的实现

 

学院:

计算机学院

专业:

网络工程

姓名/学号:

             

指导教师:

     

日期:

           

一、实践内容的基本要求

1、独立设计并完成一个Javaweb应用系统,应用系统可以是:

购物车、学生信息管理系统、教师信息管理系统等(可以自选);

2、系统分为:

前台页面显示(JSP),后台逻辑控制(Servlet);

3、系统的功能包括:

(1)注册、登陆功能;

(2)数据的增、删、改、查功能

4、系统必须使用数据库,数据库包含至少3个以上的表。

5、系统必须使用JavaBean技术。

二、系统需求

2.1开发工具及技术

此次设计主要采用MyEclipse加Tomcat后台服务器进行,设计过程中页面视图主要使用JSP技术实现,后台控制使用Servlet技术实现,业务逻辑控制使用JavaBean技术实现,构成MVC框架。

下面对JSP技术、Servlet技术、JavaBean技术进行简要介绍。

2.1.1JSP

JSP(JavaServerPages)技术是一个纯Java平台的技术,它主要用来产生动态网页内容,包括HTML、DHTML、和XML。

JSP技术能够让网页人员轻易建立起功能强大、有弹性的动态内容。

Servlet/JSP容器收到客户端发出的请求时,首先执行其中的程序片段,然后将执行结果以HTML合适响应给客户端。

其中程序片段可以是操作数据库、重新定向网页以及发阿松E-mail等,这些都是建立动态网站所需要的功能,所有程序片段和JSP标记都在服务器端执行,网络上传送给客户端的仅是得到的结果,与客户端的浏览器无关。

因此,JSP成为服务器端语言。

JSP的有点如下:

1)“一次编写,各处执行”特性。

一个JSP程序可以运行于支持JSP的任何应用服务器,而不需要对代码做任何修改。

2)搭配可重用组件。

JSP技术科使用跨平台、可重用的组件(如JavaBean或EnterpriseJavaBean组件)来执行更复杂的运算、数据处理。

3)采用标记化页面开发。

Web页面开发人员可以运用自己定义好的标记,无需再写复杂的Java语法,就能快速开发出动态内容网页。

4)实现了角色的分离。

JSP技术允许将工作分为两类:

页面的图形内容和页面的动态内容。

不具备Java编程语言知识的人员可以创建页面的图形内容,然后由Java程序员向此文档插入Java代码,实现动态内容。

5)N层企业应用架构的支持。

JSP技术主要负责前端显示,而分散性的对象系统则主要依赖EJB(EnterpriseJavaBean)和JNDI(JavaNamingandDirectoryInterface)构建而成。

内部对象说明:

request客户端请求,此请求会包含来自GET/POST请求的参数;respons网页传回客户端的响应;pageContext网页的属性是在这里管理;session与请求有关的会话;applicationservlet正在执行的内容;out用来传送响应的输出流;config代码片段配置对象;page JSP网页本身;exception 针对错误网页,未捕捉的例外。

2.1.2Servlet

Servlet是用Java语言编写的服务器端程序,是由服务器端调用和执行的、按照Servlet自身规范编写的Java类。

Servlet程序就是百分之百的Java程序。

Servlet是使用JavaServletAPI编写的,运行在Web服务器端的Java类。

当服务器会加载Servlet,创建Servlet实例,调用Servlet实例的init()方法进行初始化,然后调用service()方法处理请求,最后调用destroy()方法销毁Servlet。

其中,init()方法、destroy()方法均只执行一次。

Servlet控制过程中需要用到ServletContext或者ServletRequest对象和RequestDispacher对象,通过RequestDispacher的forward()方法和include()方法。

2.1.3JavaBean

JavaBean是JavaWeb程序的重要组件,它是一个面向对象编程中封装了属性和方法的类,它封装了数据和业务逻辑;JavaBean供JSP或Servlet调用,完成数据封装和数据处理等功能。

使用JavaBean可以实现代码的重用。

在JSP中使用JavaBean有三种动作标记:

useBean>动作标记、

getProperty>动作标记、

setProperty>动作标记。

JavaBean的设计规范

(1)JavaBean是一个public类。

(2)JavaBean有一个公共的、无参的构造方法。

(3)JavaBean所有的属性定义为private。

(4)JavaBean中,需要对每个属性提供两个公共方法。

setXxx():

设置属性xxx的值。

getXxx():

获取属性xxx的值(若属性类型是boolean,则方法名为isXxx())。

(5)定义JavaBean时,通常放在一个命名的包下。

2.2系统需求

2.2.1系统的安全性

本购物系统在管理权限上要严格进行控制,具体要求如下:

1)管理员要想管理本系统的商品信息,必须先要凭用户名和密码登陆到系统中,没有权限的用户不能通过任何方式登录系统查看并修改系统的任何信息和数据,以确保系统的严密性和安全性。

普通用户能在线浏览信息,但是想要把商品加入购物车、购买商品、查看购物车、查看订单等功能。

2)在具体实现中设定不同权限,不同权限用户登录到系统后,不能越级操作,管理员可以使用所有模块,除了修改用户信息;普通用户能在线浏览信息,不能删除修改商品信息。

2.2.2数据的完整性

1)各种记录信息的完整性,信息记录内容不能为空

2)各种数据间相互联系的正确性

3)相同数据在不同记录中的一致性

2.3界面需求

界面设计目前已经成为评价软件质量的一条重要指标,一个好的用户界面可以增加用户使用系统的信心和兴趣,提高工作效率,JSP技术是用JAVA语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。

创建动态页面非常方便。

用户界面是指软件系统与用户交互的接口,通常包括输出、输入、人-机对话的界面格式等。

(1)输出设计

输出是由计算机对输入的原始信息进行加工处理,形成高质量的有效信息,并使之具有一定的格式,提供管理者使用,这是输出设计的主要职责和目标。

系统设计的过程正好和实施过程相反,并不是从输入设计到输出设计,而是从输出设计到输入设计,这是因为输出表格直接与使用者相联系,设计的出发点应当是保证输出表格方便地为使用者服务,正确及时反映和组成用于各部门的有用信息。

输出设计的原则是考虑既要全面反映不同管理层的各项需要,又要言简意赅,不要将用户需要和不需要的都提供给用户。

(2)输入设计

输入数据的收集和录入是比较费事的,需要大量的人力和一定设备,并且容易出错。

如果输入系统的数据有错误,则处理后的输出将扩大这些错误,因此输入数据的正确性对于整个系统质量的好坏是具有决定性意义的。

输入设计的原则有如下几点:

1)输入量应保持在能满足处理要求的最低限度。

设计中可采用设置字段初值,下拉式数据窗口等方式尽量减少用户键盘输入量。

输入量越少,错误率就越少,数据准备时间也减少。

2)输入的准备及输入过程应尽量容易进行,从而减少错误的发生。

3)应尽量早对输入数据进行检查(尽量接近原数据发生点),以便使错误及时得到更正。

4)输入数据尽早地用其处理所需的形式被记录,以避免数据由一种介质转移到另一种介质时需要转录而可能发生的错误

三、系统分析与设计

3.1系统架构设计

3.3.1运行环境

操作系统版本:

Win7

开发工具:

MyEclipse10

后台服务器:

apache-tomcat-6.0.30

开发语言:

Java

数据库:

SQLServer2008

浏览器:

搜狗浏览器

3.1.2系统的架构分层

2.3普通用户用户功能模块图

图2.4管理员用户功能模块图

3.2系统详细设计

3.2.1数据库设计

(1)普通用户表(t_user)

列名

数据类型

长度

允许空

是否主键

说明

id

int

4

用户id

loginname

varchar

50

用户名

loginpw

varchar

50

用户密码

name

varchar

50

真实姓名

sex

varchar

50

性别

age

varchar

20

年龄

address

varchar

20

住址

tel

int

20

电话

email

varchar

20

email

qq

int

20

qq

(2)商品类别信息表(t_catelog)

列名

数据类型

长度

允许空

是否主键

说明

id

int

4

类别ID

name

varchar

50

类别名称

del

varchar

50

是否删除

(3)商品信息表(t_goods)

列名

数据类型

长度

允许空

是否主键

说明

id

int

4

商品ID

catelog_id

int

4

类别ID

bianhao

varchar

50

商品编号

mingcheng

varchar

50

名称

jieshao

varchar

50

介绍

pinpai

varchar

50

商品品牌

fujian

Date

50

商品图片

shichangjia

varchar

50

商品价格

(4)公告信息表(t_gonggao)

列名

数据类型

长度

允许空

是否主键

说明

id

int

4

公告id

title

varchar

50

公告标题

content

varchar

50

公告内容

shijian

varchar

50

发布日期

(5)管理员信息表(t_admin)

列名

数据类型

长度

允许空

是否主键

说明

userId

int

4

编号

userName

varchar

50

用户名

userPw

varchar

50

密码

(6)订单信息表(t_order)

列名

数据类型

长度

允许空

是否主键

说明

id

int

50

用户id

bianhao

int

4

编号

shijian

varchar

50

下单时间

zhuangtai

varchar

50

订单状态

songhuodizhi

varchar

50

送货地址

fukuanfangshi

varchar

50

付款方式

jine

varchar

50

总金额

user_id

int

4

会员ID

3.2.2数据库的连接

关键代码如下:

publicDBContent(){

StringCLASSFORNAME="com.microsoft.jdbc.sqlserver.SQLServerDriver";

//连接数据库的驱动

Stringurl="jdbc:

microsoft:

sqlserver:

//localhost:

1433;databaseName=bs";

Stringuser="root";//连接数据库的用户名

Stringpassword="root";//连接数据库的密码

try{

Class.forName(CLASSFORNAME);

con=DriverManager.getConnection(url,user,password);//加载数据库的驱动

stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

}

catch(Exceptionex){

ex.printStackTrace();

}

}

 

四、系统实现

4.1管理员模块

4.1.1管理员登录

1、说明:

为了提高安全性,防止用户绕过前台进入后台,设置对特定人员的登录,对普通用户进行拦截操作。

在登陆页面输入用户名和密码以,点击提交按钮,跳转到登陆的service中,在该service中会对用户名,密码进行判断,如果正确提示“通过验证”,进入到管理界面,如果错误则提示“用户名和密码不正确”,页面调转到登陆页。

2、loginservice关键代码如下:

publicStringlogin(StringuserName,StringuserPw,intuserType)

{

try

{

Thread.sleep(700);

}catch(InterruptedExceptione)

{

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

Stringresult="no";

if(userType==0)//系统管理员登陆

{

Stringsql="fromTAdminwhereuserName=?

anduserPw=?

";

Object[]con={userName,userPw};

ListadminList=adminDAO.getHibernateTemplate().find(sql,con);

if(adminList.size()==0)

{

result="no";

}

else

{

WebContextctx=WebContextFactory.get();

HttpSessionsession=ctx.getSession();

TAdminadmin=(TAdmin)adminList.get(0);

session.setAttribute("userType",0);

session.setAttribute("admin",admin);

result="yes";

}

}

if(userType==2)

{

}

returnresult;

}

4.1.2管理员主页面

说明:

显示管理员可操作的功能。

4.1.3修改个人密码

1、说明:

管理员可修改自己的密码,但不能修改登录名

2、关键代码如下:

publicStringadminPwEdit(StringuserPwNew)

{

System.out.println("DDDD");

try

{

Thread.sleep(700);

}

catch(InterruptedExceptione)

{

e.printStackTrace();

}

WebContextctx=WebContextFactory.get();

HttpSessionsession=ctx.getSession();

TAdminadmin=(TAdmin)session.getAttribute("admin");

Stringsql="updatet_adminsetuserPw=?

whereuserId=?

";

Object[]params={userPwNew,admin.getUserId()};

DBmydb=newDB();

mydb.doPstm(sql,params);

return"yes";

}

4.1.4网站公告管理

1、说明:

服务器收到客户端发出的请求,调用后台的公告Servlet查询出所有的公告信息,并把这些信息封转到数据集合List中,绑定到request对象,然后页面跳转到相应的jsp,显示出公告信息。

还可以对公告进行添加和删除。

2、关键代码如下:

publicvoidgonggaoAdd(HttpServletRequestreq,HttpServletResponseres)

{

Stringid=String.valueOf(newDate().getTime());

Stringtitle=req.getParameter("title");

Stringcontent=req.getParameter("content");

Stringshijian=newDate().toLocaleString();

Stringsql="insertintot_gonggaovalues(?

?

?

?

)";

Object[]params={id,title,content,shijian};

DBmydb=newDB();

mydb.doPstm(sql,params);

mydb.closed();

req.setAttribute("message","操作成功");

req.setAttribute("path","gonggao?

type=gonggaoMana");

StringtargetURL="/common/success.jsp";

dispatch(targetURL,req,res);

}

publicvoidgonggaoDel(HttpServletRequestreq,HttpServletResponseres)

{

Stringid=req.getParameter("id");

Stringsql="deletefromt_gonggaowhereid=?

";

Object[]params={id};

DBmydb=newDB();

mydb.doPstm(sql,params);

mydb.closed();

req.setAttribute("message","操作成功");

req.setAttribute("path","gonggao?

type=gonggaoMana");

StringtargetURL="/common/success.jsp";

dispatch(targetURL,req,res);

}

publicvoidgonggaoMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException

{

ListgonggaoList=newArrayList();

Stringsql="select*fromt_gonggao";

Object[]params={};

DBmydb=newDB();

try

{

mydb.doPstm(sql,params);

ResultSetrs=mydb.getRs();

while(rs.next())

{

Tgonggaogonggao=newTgonggao();

gonggao.setId(rs.getString("id"));

gonggao.setTitle(rs.getString("title"));

gonggao.setContent(rs.getString("content"));

gonggao.setShijian(rs.getString("shijian"));

gonggaoList.add(gonggao);

}

rs.close();

}

catch(Exceptione)

{

e.printStackTrace();

}

mydb.closed();

req.setAttribute("gonggaoList",gonggaoList);

req.getRequestDispatcher("admin/gonggao/gonggaoMana.jsp").forward(req,res);

}

4.1.5类别信息管理

1、说明:

调用后台的action类查询所有商品,还可以对类别信息进行添加和删除的操作。

2、关键代码如下:

publicvoidcatelogAdd(HttpServletRequestreq,HttpServletResponseres)

{

Stringname=req.getParameter("name").trim();

Stringdel="no";

Stringsql="insertintot_catelog(name,del)values(?

?

)";

Object[]params={name,del};

DBmydb=newDB();

mydb.doPstm(sql,params);

mydb.closed();

req.setAttribute("message","操作成功");

req.setAttribute("path","catelog?

type=catelogMana");

StringtargetURL="/common/success.jsp";

dispatch(targetURL,req,res);

}

publicvoidcatelogDel(HttpServletRequestreq,HttpServletResponseres)

{

Stringsql="updatet_catelogsetdel='yes'whereid="+Integer.parseInt(req.getParameter("id"));

Obje

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

当前位置:首页 > 经管营销 > 公共行政管理

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

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