JSP技术中使用MVC模式实现Web购物车

时间:2022-07-04 04:39:59

JSP技术中使用MVC模式实现Web购物车

摘要 本文介绍了使用JSP技术实现基于MVC模式的Web购物车的设计思想,并给出了部分程序代码。

关键词 Web购物车;JSP;MVC;JavaBean;Servlet

中图分类号 TP393 文献标识码 A 文章编号 1674-6708(2010)17-0121-02

0 引言

Java Server Pages简称JSP,是由Sun公司倡导,多个公司共同建立的一种技术标准,它建立在Servlet之上。应用JSP,程序员或非程序员可以高效率地创建Web应用程序,并使得开发的Web应用程序具有安全性高、跨平台等优点。

1 MVC模式

MVC是Model-View-Controller(模型-视图-控制器)的缩写,最早是应用在SmallTalk语言中,为图形方式交互的软件提供一种架构。当软件变得复杂时,适当地按功能分解能使结构更加清晰。同样,对于界面显示和数据处理都较复杂的软件,将它们分离开来更利于维护,MVC正是为了这一问题而提出的。

MVC模式包含模型、视图、控制器3部分,其原理如图1,其中模型部分定义了软件的数据模型及操作细节,视图部分专门处理图形界面,控制器则是模型和视图之间的协调者。

图1MVC模式原理示意图

从功能上看,视图和模型部分是互相影响的,如当用户单击界面的按钮时,模型部分应该执行相应的操作。但一般情况下,视图和模型不会直接将变化事件通知对方,而是通过控制器来从中协调。在设计时,视图部分将事件和控制器的事件处理器关联起来,而事件处理器又和模型部分的数据操作挂钩,当用户操作界面元素时,视图部分发出事件,控制器捕获该事件并通知模型部分执行数据操作,然后通知视图更新。当然这并不是说视图和模型部分完全没有联系,但MVC的设计思想是尽量减少这两者的耦合。

Web购物车在具体实现时,JavaBean实现模型部分,负责处理逻辑以及向JSP页面提供数据接口。Servlet实现控制器的功能,负责创建Bean对象,调用相关的处理方法,并根据处理结果转到适当的页面。JSP页面则实现视图功能,它从JavaBean获取数据并生成页面内容,专门负责显示,不包括处理逻辑。这样的处理很好地实现了数据层和表示层的分离,使开发工作更加容易和迅速,各层次间的数据传递如图2。

2 Web购物车的具体实现

2.1 功能结构设计

在Web购物车系统中不同用户拥有自己的购物车,能够实现的购物操作有:购买商品、查看购物车、移除商品、清空购物车。

2.2 数据库设计

根据功能结构设计,可以得到规范化的数据表。

1)user表(用户名、密码),该表用来记录用户信息;

2)goods表(商品编号、商品名称、商品价格),该表用于记录商品信息;

3)buy表(商品购买者、商品编号、购买数量),该表用于存储购买信息。

2.3 JavaBean设计

此处可设计两个Bean类,一个QueryBean类专门负责封装数据库基本操作(查询与更新),另一个shopCar类封装购物车的购物操作(购买商品、移除商品、清空购物车)。shopCar类直接调用QueryBean类中的方法来操作特定的数据表,即对buy表进行更新操作(添加记录、修改记录、删除记录)。

QueryBean类中的两个主要方法的代码为:

public ResultSet getQuery(String sqls){//数据库查询操作

try{

conn=DriverManager.getConnection(dbUrl,dbUser,dbPassword);

stm=conn.createStatement();

rs=stm.executeQuery(sqls);

}

catch(Exception e){

System.out.println(e.toString());

}

return rs;

}

public void setModify(String sqls){//数据库更新操作

try{

conn=DriverManager.getConnection(dbUrl,dbUser,dbPassword);

stm=conn.createStatement();

stm.executeUpdate(sqls);

}

catch(Exception e){

System.out.println(e.toString());

}

}

2.4 Servlet设计

此处用来控制购物车操作的Servlet类比较简单,只需处理用户触发的“购买”、“移除”和“清空购物车”操作。在此Servlet类中首先通过HttpServletRequest对象获取用户触发的操作类型,再获取该类操作需要的参数,然后将参数传递给shopCar类所创建的Bean对象的对应处理方法,通过处理方法的调用实现用户要求的操作。

2.5 JSP页面设计

商品信息显示页面――show.jsp,在该页面中初始化商品信息列表。由于商品信息都保存在数据表goods中,故商品信息列表的初始化是通过查询数据表goods获取商品信息。该页面实现商品购买操作,查看购物车操作。

购物车查看页面――showcar.jsp,该页面用来显示用户的购买信息,通过查询访问数据表buy和数据表goods,输出购买商品的相关信息,同时计算出购物车中商品的应付总金额。该页面实现商品移除、清空购物车操作,并有链接去往商品显示页面。

页面中的购买、移除和清空购物车操作需要调用处理购物的Servlet类,商品信息和购买信息的查询显示需要使用QueryBean类中封装的数据库查询方法。

3 结论

购物车在电子商务网站中有着广泛的使用,本文中的购物车使用JSP+JavaBean+Servlet的MVC模式进行开发的,其实购物车也可以采用JSP+JavaBean的MVC模式(JSP页面综合了视图和控制器的功能)进行开发,设计者可以根据网站的具体设计采用不同的MVC模式,一般来说当应用较简单时采用JSP+JavaBean的MVC模式,当应用复杂时采用JSP+JavaBean+Servlet的MVC模式。

参考文献

[1]傅进勇,邓少烽,李波.JSP网络编程[M].北京:电子工业出版社,2008,5.

[2]郭珍,王国辉.JSP程序设计教程[M].北京:人民邮电出版社,2008,5.

[3]邓子云,张赐.JSP网络编程从基础到实践[M].北京:电子工业出版社,2005,9.

[4]王先国.JSP动态网页编程技术[M].北京:电子工业出版社,2006,12.

[5]冯燕奎,赵德奎.JSP实用案例教程[M].北京:清华大学出版社,2004,5.

上一篇:义马煤业集团某矿冲击地压分析与防治 下一篇:中原油田GPS生产车辆管理系统