基于MVC模式的购物车程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
选题名称:基于MVC模式的购物车程序
目录
1.系统设计------------------------------------------- 1
1.1 开发平台-------------------------------------- 1
1.2 开发工具-------------------------------------- 1
1.3 应用服务器等相关技术-------------------------- 1
1 数据库结构----------------------------------------- 3
2.1数据表的设计 ---------------------------------- 3
2.1结构说明 -------------------------------------- 4
3.应用结构------------------------------------------- 5
3.1整个应用的介绍 -------------------------------- 5
3.2应用中的MVC层次结构介绍----------------------- 5
2.4功能说明,及相关图表--------------------------- 6 4 系统界面截图--------------------------------------- 8
4.1登录模块截图 ---------------------------------- 8
4.3结账模块截图 ---------------------------------- 9
5.关键代码及说明------------------------------------ 10
5.1关于数据的存储模块和图书的对象化模块的代码: --- 10
6 对Java Web的认识-------------------------------- 12
1.系统设计
1.1 开发平台
JDK 1.6
JDK 是Sun公司提供的Java开发工具包,是JSP不可缺少的开发环境之一,在安装JSP服务器之前必须安装和配置。
自从Java推出以来,JDK已经成为使用最广泛的Java SDK。
JDK 是整个Java的核心,包括了Java运行环境、Java 工具和Java基础类库。
JDK是学好Java的第一步。
从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。
1.2 开发工具
NetBeans IDE 7.3
NetBeans是一个全功能的开放源码Java IDE,可以帮助开发人员编写、编译、调试和部署Java应用,并将版本控制和XML编辑融入其众多功能之中。
NetBeans 可支持Java 2平台标准版(J2SE)应用的创建、采用JSP和Servlet 的2层Web应用的创建,以及用于2层Web应用的API及软件的核心组的创建。
此外,NetBeans 最新牒还预装了两个Web服务器,即Tomcat和GlassFish,从而免除了繁琐的配置和安装过程。
所有这些都为Java开发人员创造了一个可扩展的开放源多平台的Java IDE,以支持他们在各自所选择的环境中从事开发工作,如Solaris、Linux、Windows或Macintosh。
1.3 应用服务器等相关技术
1.3.1应用服务器Tomcat
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
Tomcat 实际上运行JSP 页面和Servlet。
另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet
和JSP容器,独立的Servlet容器是Tomcat的默认模式。
不过,Tomcat处理静态HTML的能力不如Apache服务器。
1.3.1 JSP技术简介
JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
它是在传统的网页HTML文件中插入Java 程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件。
用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
1.3.2 Servlet技术简介
servlet是使用Java Servlet 应用程序设计接口(API)及相关类和方法的 Java 程序。
除了 Java Servlet API,Servlet 还可以使用用以扩展和添加到 API 的 Java 类软件包。
Servlet 在启用 Java 的 Web 服务器上或应用服务器上运行并扩展了该服务器的能力。
Java servlet对于Web服务器就好象Java applet对于Web浏览器。
Servlet装入Web服务器并在Web服务器内执行,而applet装入Web浏览器并在Web浏览器内执行。
Java Servlet API 定义了一个servlet 和Java使能的服务器之间的一个标准接口,这使得Servlets具有跨服务器平台的特性。
1.3.3 JavaBean简介
JavaBean是基于Java的组件模型,是一种用Java编写的特殊结构的类,通过封装成为具有某种功能或者处理某个业务的对象,通过JavaBean可以无限扩充Java程序的功能,JavaBean组件可以被修改或与其他组件结合起来创建基于组件的应用件,是可重用的软件组件。
用JSP开发的web程序可以结合JavaBean技术来扩充网页中程序的功能。
JavaBean在网页生成之前的需要被创建出来,对于创建和编译JavaBean苑文件的工具和方法很多。
该语法格式如下:
代码方式:
类名对象名 =new 类名 ();
标签方式(javabean方式)
<jsp:useBean
id=“对象名”
class=“所在包名. 类名”
scope=“范围“
/>
1数据库结构
2.1数据表的设计
Book表是图书的信息(包括:图书编号,图书名称,图书价格,图书库存),如表2.1
Order表是购物车的信息(包括:用户ID,图书编号,图书单价,购买数量),如表2.2
User表是用户的信息(包括:用户ID,用户密码),
如表2.3
2.1结构说明
2.2.1图书实体E-R图
2.2.2购物车实体E-R
2.2.3用户实体E-R
3.应用结构
3.1整个应用的介绍
此购物车应用是主要是实现网上选书、购书、产生订单等功能的系统。
需要实现图书信息展示、购物车管理、用户登录管理、订单处理等模块。
根据网上书店的基本需求,本系统需要完成的具体任务如下:
(1)图书选购::当用户进入购物网页时,应该在主页面中显示的书目信息,以供用户选择所需图书,图书信息包括图书编号、图书名称、图书库存、图书价格。
(2)结账管理:当用户选择购买某图书产品时,应该能够将对应图书信息,如:价格、数量记录到对应的购物车中,最后汇总用户购买所有图书图书信息,再确定所购图书图书的价格、数量等信息,确定付款总额,并允许用户返回图书选购页面,选择其他图书,并添加到购物车中,。
(3)用户登录:为了能够实现图书图书的购买,用户需要登录。
3.2应用中的MVC层次结构介绍
Model-View-Controller模型,简称MVC模型,开发的经典模型。
对于大规模的应用系统开发,考虑到开发的效率、维护的可能性和扩展的方便性,产生了MVC标准模式。
MVC模式是经过多年的应用经验积累,逐步演化出来的,是WEB编程不段复杂和分工的结果。
MVC模式由三个部分组成:
(1)Model逻辑层:应用系统的业务逻辑模块及数据库操作。
(2)View显示层:用于生成用户端显示结果、或给用户交互的页面。
(3)Control控制层:调配整个应用的流程,充当指挥员的角色。
本应用应用了MVC模型,由JSP、Servlet、JavaBean组成。
JSP是显示层、Servlet是控制层、JavaBean是逻辑层。
在此应用中JSP主要是实现注册登录界面、购物界面,订单结账界面的显示。
Servlet主要是从注册登录界面读取用户名传递给购物界面跟结账界面来显示用户名,从购物界面读取订单信息传递给结账页面,最后在结账时调用Java类计算总价。
JavaBean中有数据类,与图书对应,它实现界面与逻辑的分离,通过传递参数进行调用。
Jsp页面通过发送一个操作类型变量,从而使得servlet获知应当进行的操作,并通过调用javabean
进行实际的执行,这样页面与逻辑就得到了分离,互不干涉和影响实现了购物的一些简单操作。
2.2.1功能模块表
2.2.2代码关系图
2.4功能说明,及相关图表 2.4.1页面详细功能介绍
用户登录Entry.jsp 页面详细功能及描述
1) 提交用户登录请求,同时提交用户登录信息的表单。
2) 提交登录用户名、密码的表单元素。
购物车各文件对应功能模块表
对应模块 对应文件 对应功能 登录模块 Entry.jsp 用于注册登录 购物模块 Shop.jsp 用于显示图书的情况 结账模块 Account.jsp 用于显示结账的情况
数据存储模块 UserServlete.java
用于数据的存储和计算 Shopping.java 图书处理模块 BuyBean.java
用于实现图书的对象化
3) 登录按钮。
在该页面中,用户在表单中输入用户名及密码,单击“确定”按钮后,将提交登录请求,并跳转到选购图书界面。
选购图书信息Shop.jsp详细功能及描述
1)获取用户名。
2) 获取图书基本信息集合。
3) 显示图书编号、名称、价格、库存。
4) 单击“提交”按钮后。
在该页面中将图书信息显示出来,同时如果用户单击“提交”按钮,将提交购物请求,并跳转到结账界面。
结账信息Account.jsp页面详细功能及描述
1) 获取用户所有选购图书信息集合。
2) 显示所购图书书名、数量、总价。
3) 提交返回购书请求的超链接。
本页面将显示与当前用户相关的所有购物信息。
同时用户可以单击“返回重新购买”按钮提交重新购买请求跳转到购物主页面。
2.4.2功能模块图
4 系统界面截图4.1登录模块截图
4.2购物模块截图
4.3结账模块截图
5.关键代码及说明
5.1关于数据的存储模块和图书的对象化模块的代码:
下面附录一些关键的代码:
结账处理:
else if(action.equals("CHECKOUT")){
float total=0;
for(int i=0;i<buylist.size();i++){
Book book=(Book)buylist.elementAt(i);
float price=bool.getPrice();
int count=book.getCount();
total+=(price*count);
}
total+=0.005;
String amount=new Float(total).toString();
int n=amount.substring(0,n+3);
amount=amount.substring(0,n+3);
req.setAttribute("amount",amount);
String url="/Account.jsp";
ServletContext xc=getServletContext();
RequestDispatcher rd=sc.getRequestDispatcher(url);
rd.forward(req,res);
………
6)实现图书的对象化
JavaBean.java:
package Javabean;
public class BuyBean {
private String pid ;
private String name ;
private float price ;
private int accum ;
private int count ;
public String getPid() {
return pid;
}
public void setPid(String pid) {
this.pid = pid;
}
public String getName() {
return name;
}
public void setName(String name) {
= name;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
public int getAccum() {
return accum;
}
public void setAccum(int accum) {
this.accum = accum;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
}
6 对Java Web的认识
写报告时对开发平台和环境还有开发工具有些混淆,然后进行了了解。
了解到开发平台是软件开发过程所使用运行的平台,可以是多语言平台。
开发工具是单一语言的开发工具。
开发环境包含开发平台、硬件设施、操作系统以及与之相关的软件。
最简单的网页是由HTML生成的静态网页,比如它可以实现一个用户登录界面,但是当用户输入用户名和密码后,要如何验证是否用户名密码正确,就要在后台逻辑上有相应的操作。
用户名和密码被传给了服务器,传给了Tomcat,传给了再form标记,action属性中指定的程序,这个程序就在Tomcat中。
HTML 没有逻辑能力,但是有很多技术能接受浏览器发送过来的用户信息,并且进行相应的验证,然后返回结果给浏览器。
在Java语言基础上,衍生出来的Web后台技术就是Servlet。
运行Servlet文件后,运行结果会被发送给浏览器,因为是运行结果,所以浏览器得到的内容是什么。
通常在设计的时候并不确定,所以将这个过程看到的页面就做动态页面。
Servlet是JSP技术的基础,JSP本身就是预先被编译成Servlet,Tomcat 先将JSP文件翻译成Servlet,并且调用JDK将Servlet翻译后再运行的,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。
当程序复杂到一定程度后,程序逻辑的难度增加了很多,这个时候就会出现
技术将程序的不同部分分离到不同的文件中,分离实用的技术就是JavaBean,JavaBean实际就是一个普普通通的类,JavaBean只是代表一种思想,一个分离的思想。