`

mvc实现一个很简单的书店(帮忙看看解答错误)

阅读更多

//通过绘画对象传递数据,利用javabean封装处理过程,用一个Servlet作为控制器

//不过有点错误,我把jsp贴出来

//Book.java
/*封装图书对象
 */
package bookstoreMVC;

public class Book {

	private String bookId ;
	private String bookName ;
	private float price ;
	
	public Book(String Id, String Name, float price){
		this.bookId = Id ;
		this.bookName = Name ;
		this.price = price ;
	}
	
	public String getBookId(){
		return bookId ;
	}
	
	public String getBookName(){
		return bookName ;
	}
	
	public float getPrice(){
		return price ;
	}
}
//BookDB.java:没有用数据库存放图书,使用了此类,比较简单
package bookstoreMVC;

import java.util.*;

public class BookDB {

	private ArrayList books ;
	
	public BookDB(){
		
		books = new ArrayList() ;
		
		Book book ;
		
		book = new Book("1", "新概念英语", (float)8.30) ;
		books.add(book) ;
		
		book = new Book("2", "考研英语词汇", (float)15.70) ;
		books.add(book) ;
		
		book = new Book("3", "美语发音基础", (float)6.20) ;
		books.add(book) ;
		
		book = new Book("4", "随机数学", (float)18.90) ;
		books.add(book) ;
		
		book = new Book("5", "离散数学", (float)20.10) ;
		books.add(book) ;
		
		book = new Book("6", "图论", (float)27.40) ;
		books.add(book) ;
		
		book = new Book("7", "算法导论", (float)69.30) ;
		books.add(book) ;
		
		book = new Book("8", "JAVA核心技术", (float)108.30) ;
		books.add(book) ;
		
		book = new Book("9", "搜索引擎", (float)58.20) ;
		books.add(book) ;
	}
	
	public Book getBook(String bookId){
		if(bookId == null)
			return null ;
		for(Iterator it = books.iterator();it.hasNext();){
			
			Book book = (Book)it.next() ;
			if(book.getBookId().equals(bookId))
				return book ;
		}
		return null ;
	}
	
	public ArrayList getBooks(){
		return books ;
	}
}

//ShoppingCart.java
package bookstoreMVC;

import java.util.*;

public class ShoppingCart {

	HashMap items = null ;
	int numberOfItems = 0 ;
	
	public ShoppingCart(){
		items = new HashMap() ;
	}
	
	public synchronized void add(String bookId, Book book){
		
		if(items.containsKey(bookId)){
			ShoppingCartItem oldItem = (ShoppingCartItem)items.get(bookId) ;
			oldItem.increase() ;
		}
		else{
			ShoppingCartItem newItem = new ShoppingCartItem(book) ;
			items.put(bookId, newItem) ;
		}
	}
	
	public synchronized void remove(String bookId){
		
		if(items.containsKey(bookId)){
			
			ShoppingCartItem item = (ShoppingCartItem)items.get(bookId) ;
			item.decrease() ;
			if(item.getNumber()<=0)
				items.remove(bookId) ;
		}
	}
	
	public synchronized List getItems(){
		List result = new ArrayList() ;
		Iterator it = items.values().iterator() ;
		while(it.hasNext())
			result.add(it.next()) ;
		return result ;
	}
	
	public synchronized int getNumberOfItems(){
		
		numberOfItems = 0 ;
		for(Iterator it = getItems().iterator(); it.hasNext(); ){
			ShoppingCartItem item = (ShoppingCartItem)it.next() ;
			numberOfItems += item.getNumber() ;
		}
		return numberOfItems ;
	}
	
	public synchronized float getTotal(){
		
		double total = 0 ;
		for(Iterator it = getItems().iterator(); it.hasNext(); )
		{
			ShoppingCartItem item = (ShoppingCartItem)it.next() ;
			total += (double)(item.getBook().getPrice())*item.getNumber() ;
		}
		return (float)(Math.round(total*100)/100.0) ;
	}
	
	public synchronized void clear(){
		items.clear() ;
		numberOfItems = 0 ;
	}
}


//ShoppingCartItem.java
package bookstoreMVC;

public class ShoppingCartItem {

	Book book ;
	int number ;
	
	public ShoppingCartItem(Book book){
		this.book = book ;
		number = 1 ;
	}
	
	public void increase(){
		number ++ ;
	}
	
	public void decrease(){
		number -- ;
	}
	
	public int getNumber(){
		return number ;
	}
	
	public Book getBook(){
		return book ;
	}
	
	public void setNumber(int num){
		this.number = num ;
	}
}

//Dispatcher.java: Servlet
package bookstoreMVC;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.* ;
import javax.servlet.http.*;

public class Dispatcher extends HttpServlet {

	 
	public void doGet(HttpServletRequest req, HttpServletResponse res)
			throws ServletException, IOException 
	{
		String bookId = null ;
		String clear = null ;
		Book book = null ;
		BookDB bookDB = new BookDB() ;
		
		HttpSession session = req.getSession() ;
		String selected = req.getServletPath() ;
		
		ShoppingCart cart = (ShoppingCart)session.getAttribute("cart") ;
		
		if(cart == null){
			cart = new ShoppingCart() ;
			session.setAttribute("cart",cart) ;
		}
		if(selected.equals("/bookcatalog")){
			bookId = req.getParameter("Add") ;
			if(bookId != null){
				book = bookDB.getBook(bookId) ;
				cart.add(bookId,book) ;
			}
		}
		else if(selected.equals("/bookshowcart")){
			bookId = req.getParameter("Remove") ;
			if(bookId != null){
				cart.remove(bookId) ;
			}
			clear = req.getParameter("Clear") ;
			if(clear != null && clear.equals("clear")){
				cart.clear() ;
			}
		}
		
		String selectedpage="/src/bookstoreMVC/" + selected + ".jsp" ;
		
		try{
			req.getRequestDispatcher(selectedpage).forward(req, res) ;
		}catch(Exception e){
			e.printStackTrace() ;
		}
		
	}

	 
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String selectedpage = "/src/bookstoreMVC/" + request.getServletPath() + ".jsp" ;
		try{
			request.getRequestDispatcher(selectedpage).forward(request, response) ;
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}


//jsp

//head.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Head.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

  </head>
  
  <body bgcolor="#EEF9DF">
     <center>
     <font size="4">BookStore</font>
     <hr/><br/>
  
//end.html
<hr/><br/>
<font size="3">BookStore</font>
</center>
</body>
</html>

//Global.jsp
<%@ page import="java.util.*,bookstoreMVC.*"%>
<% ShoppingCart cart = (ShoppingCart)session.getAttribute("cart") ;
	if(cart == null){
		
		cart = new ShoppingCart() ;
		session.setAttribute("cart", cart) ;
	
	}	
%>




//bookstore.jsp
<%@ page contentType="text/html;charset=gb2312" language="java" import="java.sql.*"
		errorPage=""%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml/DTD/xhtml1-transitional.dtd" >

<%@page pageEncoding="gb2312" %>
<%request.setCharacterEncoding("gb2312"); %>
<%@page import="java.util.*,bookstoreMVC.*" %>
<jsp:useBean id="bookDB" class="bookstoreMVC.BookDB" scope="session" />
<%@include file="Head.html" %>
<table>
	<%for(ListIterator it = bookDB.getBooks().listIterator(); it.hasNext();){
	
		Book book = (Book)it.next() ;
	 %>
	 <tr>
	 	<td bgcolor="#99CCCC" height="20" width="150">
	 		<b>
	 		<%=book.getBookName() %>
	 		</b>
	 	</td>
	 	
	 	<td bgcolor="#CCFF99" height="20" width="50">
	 		<font size=2 color="#FF0000">
	 		<%=book.getPrice() %>
	 		</font>
	 	</td>
	 	
	 	<td bgcolor="ffffaa" height="20" width="100">
	 		<a href="bookcatalog?Add=<%=book.getBookId() %>">
	 		<font size="2" color="0000ff">加入购物车
	 		</font></a>
	 	</td>
	 </tr>
    <%}%>
</table>	
<%@include file="end.html" %>	

//bookstorecatalog.jsp
<%@ page contentType="text/html;charset=gb2312" language="java" import="java.sql.*"
		errorPage=""%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml/DTD/xhtml1-transitional.dtd" >

<%@page pageEncoding="gb2312" %>
<%request.setCharacterEncoding("gb2312"); %>
<%@include file="Global.jsp"%>
<%@include file="Head.html"%>
<jsp:useBean id="bookDB" class="bookstoreMVC.BookDB" scope="session"/>
<%
	String bid = request.getParameter("Add");
	Book addBook = null ;
	if(bid != null){
		addBook = bookDB.getBook(bid);
	}		
 %>
 <%
 	if(bid != null){
  %>
  		<font color="red" size="3">
  		<%=addBook.getBookName() %>
  		</font>
  		<br/>
<%}%>

<%
	if(cart.getNumberOfItems()>0)
	{
%>
		<a href="bookshowcart?Clear=0&Remove=0">
		<font size="2" color="#0000FF">
		查看购物车
		</font></a>	
		&nbsp;&nbsp;&nbsp;&nbsp;
		<a href="bookcashier">
		<font size="2" color="#0000FF">
		结账</font></a>
	<%} %>
<table>
	<%for(ListIterator it = bookDB.getBooks().listIterator();it.hasNext();){
			Book book = (Book)it.next(); %>
  			<tr>
  				<td bgcolor="#99CCCC" height="20" width="150">
  					<b>
  					<%=book.getBookName() %>
  					</b>
  				</td>
  				
  				<td bgcolor="#CCFF99" height="20" width="100">
  					<font size=2 color="#FF0000">
  					<%=book.getPrice() %></font>
  				</td>
  				
  				<td bgcolor="ffffaa" height="20" width="100">
  					<a href="bookcatalog?Add=<%=book.getBookId() %>">
  					<font size="2" color="0000ff">
  					加入购物车</font></a>			
  				</td>
  			</tr>
  	<%} %>		
</table>

<%@ include file="end.html"%>

//bookshowcart.jsp
<%@ page contentType="text/html;charset=gb2312" language="java" import="java.sql.*"
		errorPage=""%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml/DTD/xhtml1-transitional.dtd" >

<%@page pageEncoding="gb2312" %>
<%request.setCharacterEncoding("gb2312"); %>
<%@include file="Global.jsp"%>
<%@include file="Head.html"%>
<jsp:useBean id="bookDB" class="bookstoreMVC.BookDB" scope="session" />

<% 
	String clear = request.getParameter("Clear") ;
	String remove = request.getParameter("Remove") ;
%>

<%
	if(clear != null && clear.equals("clear"))
	{
 %>	
 		<font color="red" size="2">
 		购物车已清空</font>
 		<br/><br/>
 <% } %>
 <%
 	if(!remove.equals("0"))
 	{
 		Book removeBook = bookDB.getBook(remove) ;
 %>
 		<font size="2">
 		已删除
 		</font>
 		<font color="red" size="2">
 		<%=removeBook.getBookName() %>
 		</font><br/><br/>
 <% } %>
 <%
 	if(cart.getNumberOfItems()>0)
 	{
  %>
  		<font size="2">
  		购物清单</font><br/>
  		<table>
 			<tr>
 				<th align="left" width="50"><font size="2">数量</font></th>
 				<th align="left" width="150"><font size="2">书名</font></th>
 				<th align="left" width="50"><font size="2">价格</font></th>
 			</tr>
 			<%for(Iterator it=cart.getItems().iterator();it.hasNext();){
 					ShoppingCartItem item = (ShoppingCartItem)it.next() ;
 					Book book = (Book)item.getBook();
 			 %>
 			 <tr bgcolor="#CCFFCC">
 			 	<td align="left">
 			 		<font size="2"><%=item.getNumber() %></font>
 			 	</td>
 			 	<td align="left">
 			 		<%=book.getBookName() %>
 			 	</td>
 			 	<td align="left">
 			 		<font size="2"><%=book.getPrice() %></font>
 			 	</td>
 			 	<td align="left">
 			 		<a href="booksshowcart?Remove=<%=book.getBookId() %>">
 			 		<font size="2" color="#0000FF">删除</font></a>
 			 	</td>
 			 </tr>
 			 <%} %>
  		</table>	
  			<br/>	
  		<table>
			
			<tr>
				<td colspan=2 align=right>
					<font color="#FF0000">总计:</font>
				</td>
				<td align=right>
					<font color="#FF0000"><%=cart.getTotal() %>元</font>
				</td>
			</tr>
			  		
  		</table>
  		
  		<br/>
  		
  		<a href="bookcatalog"><font size=2 color="#0000FF">继续购物</font></a>
  		&nbsp;&nbsp;&nbsp;&nbsp;
  		<a href="bookcashier"><font size=2 color="#0000FF">结账</font></a>
  		&nbsp;&nbsp;&nbsp;&nbsp;
  		<a href="bookshowcart?Clear=clear&Remove=0"><font size=2 color="#0000FF">清空购物车</font></a>
  		&nbsp;&nbsp;&nbsp;&nbsp;
  <%}else{ %>
  		<font size="2">购物车内没有商品</font>	
  		<br/>
  		<a href="bookcatalog"><font size=2 color="#0000FF">继续购物</font></a>
  <%} %>
  <%@include file="end.html" %>			

//bookcashier.jsp
<%@ page contentType="text/html;charset=gb2312" language="java" import="java.sql.*"
		errorPage=""%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml/DTD/xhtml1-transitional.dtd" >

<%@page pageEncoding="gb2312" %>
<%request.setCharacterEncoding("gb2312"); %>
<%@include file="Global.jsp"%>
<%@include file="Head.html"%>
<jsp:useBean id="bookDB" class="bookstoreMVC.BookDB" scope="session" />
总计:
<%=cart.getTotal()%>
<form action="bookreceipt" method="post">
	<table>
		<tr>
			<td>姓名:</td>
			<td><input type="text" name="cardname" value="" size=20/></td>
		</tr>
		<tr>
			<td>信用卡号:</td>
			<td><input type="text" name="cardnumber" value="" size=20/></td>
		</tr>
		<tr>
			<td colspan=2><input type="submit" value="提交"/></td>
		</tr>
	</table>
</form>
<%@includel file="end.html"%>

//bookreceipt.jsp
<%@ page contentType="text/html;charset=gb2312" language="java" import="java.sql.*"
		errorPage=""%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml/DTD/xhtml1-transitional.dtd" >

<%@page pageEncoding="gb2312" %>
<%request.setCharacterEncoding("gb2312"); %>
<%@page import="java.util.Date"%>
<%@include file="Global.jsp"%>
<%@include file="Head.html"%>
<jsp:useBean id="bookDB" class="bookstoreMVC.BookDB" scope="session" />
<%=request.getParameter("cardname")%>,谢谢惠顾
<br/><br/>
发货时间:<%=new Date((new Date()).getTime()+86400000)%>
<br/>br>
<%session.removeAttribute("cart");%>
<a href="bookstore">
	<font size="2" color="#0000FF">继续购物</font>
</a>
<%@include file="end.html" %>





 

 

 

MVC 文件 类型
Model

BookDB.java

Book.java

ShoppingCart.java,

ShoppingCartItem.java

JavaBean
View

bookstore.jsp

bookcatalog.jsp

bookcashier.jsp

bookreceipt.jsp

bookshowcart.jsp

jsp页面
Controller Dispatcher.java Servlet
0
1
分享到:
评论
1 楼 gtandsn 2011-05-11  
还行吧,基础很到位,

相关推荐

    网上书店用mvc实现

    【网上书店用MVC实现】是一个基于ASP.NET技术框架,运用模型-视图-控制器(MVC)设计模式开发的项目。在这个项目中,我们将会深入探讨MVC模式在实际Web应用开发中的应用,以及ASP.NET如何为这种模式提供强大的支持。...

    MVC三层架构的网上书店

    总结来说,"MVC三层架构的网上书店"项目展示了如何利用MVC模式来构建一个完整的Web应用,通过分离关注点,提高了代码的可读性和可扩展性。理解和掌握这一模式对于Java Web开发者来说至关重要,有助于提升项目的质量...

    一个基于mvc模式用jsp实现的网上书店

    本项目是一个基于MVC模式,利用JSP技术实现的网上书店系统,其核心知识点主要包括以下几个方面: 1. **MVC模式**:MVC模式分为模型(Model)、视图(View)和控制器(Controller)三个部分。模型处理数据和业务逻辑,视图...

    基于MVC实现的简单注册登录小Demo

    本项目“基于MVC实现的简单注册登录小Demo”旨在为初学者提供一个直观的学习实例,帮助理解MVC模式如何应用于实际的注册登录功能。通过分析这个Demo,我们可以深入探讨MVC模式、注册登录的实现细节以及数据库配置。 ...

    ASP.NET MVC3书店实例

    - **ASP.NET MVC3书店**:这是一个虚拟的示例网站,旨在通过构建一个简单的在线书店来介绍如何使用ASP.NET MVC框架与Visual Studio进行Web开发。本项目适合初学者,即使是完全没有Web开发经验的新手也能跟随教程学习...

    MVC模式网上书店系统

    在“MVC模式网上书店系统”中,这种设计模式被巧妙地应用,以实现一个高效、可扩展且易于维护的在线图书销售平台。 **模型(Model)** 模型是系统的核心,负责处理业务逻辑和数据管理。在这个网上书店系统中,模型...

    .NET MVC实现文件上传

    通过上述步骤,我们就实现了一个简单的文件上传功能。在实际应用中,可能还需要结合数据库存储文件元数据,或者使用云存储服务来保存文件。总之,理解.NET MVC的控制器和视图机制,以及如何处理HTTP请求和文件流,是...

    asp.net mvc验证码实现

    ASP.NET MVC是一个强大的Web应用程序开发框架,用于构建动态、数据驱动的网站。在这个场景中,我们关注的是在ASP.NET MVC中实现验证码的功能。验证码的主要目的是防止自动机器人或恶意用户进行非法操作,例如垃圾...

    基于mvc模式开发的网上书店

    数据库是任何Web应用程序的核心,网上书店项目中的数据库设计可能包括书籍信息、用户账户、订单信息等表,这些都是实现一个完整网上书店功能所必需的。 【标签】:“mvc”、“c#”、“网上书店” 1. **MVC模式**:...

    mvc 实现登录注册+数据库

    通过以上步骤,你可以构建一个简单的基于MVC架构的登录注册系统。随着技术的深入,你还可以考虑引入验证码、Session管理、权限控制等功能,进一步提升系统的安全性与用户体验。在实际开发中,Spring Boot和Spring ...

    基于MVC模式的网上书店

    在这个项目中,我们将深入探讨如何利用MVC模式构建一个功能完善的网上书店。 **Model(模型)**是系统的核心,负责处理业务逻辑和数据管理。在我们的网上书店中,模型层可能包括`书籍`、`作者`、`分类`等实体类,...

    MVC实现多媒体播放

    在“MVC实现多媒体播放”的项目中,我们主要关注如何利用ASP.NET MVC框架来构建一个后台管理系统,支持多媒体资源(包括图片、音频和视频)的上传、查看和播放功能。以下是一些关键知识点: 1. **ASP.NET MVC框架**...

    MVC的简单实现

    在提供的"MVCDemo"项目中,我们可以看到一个具体的MVC模式实现案例。通过分析源代码,我们可以更深入地了解MVC模式的每个组件是如何协同工作的。这种实现方式为后续学习和使用三大框架(Spring MVC、Struts、JSF)...

    网上书店源码 mvc 模式网上书店源码

    此外,`jsp电子商务`表明该源码不仅是一个简单的书店,还包含了电子商务的基本特性,如用户注册、登录、订单管理等。 标签中提到了`java网上书店`,这意味着源码可能部分使用了Java语言编写,尤其是在后台处理逻辑...

    MVC网上书店

    【MVC网上书店】是一个基于C#开发的Web应用程序,主要使用了Microsoft的Model-View-Controller(MVC)框架。...总的来说,"MVC网上书店"是一个很好的实践项目,可以帮助开发者提升他们的Web开发技能。

    C++实现简单的MVC框架

    本项目是用C++实现的一个简单的MVC框架,名为MVCDemo,旨在帮助开发者理解MVC设计模式的基础概念。 首先,我们来详细解释MVC的三个组成部分: 1. Model(模型):模型层是应用的核心,它负责管理数据和业务逻辑。...

    JSP(MVC模式))网上书店

    综上所述,一个基于JSP MVC模式的网上书店项目,需要结合MyEclipse的开发环境,利用SQL Server 2000存储数据,通过session管理用户会话,以实现用户浏览、搜索图书,添加到购物车,以及完成支付等一系列功能。...

    MVC模式下的网上书店管理系统

    总结来说,这个网上书店管理系统通过MVC模式实现了业务逻辑与用户界面的解耦,提高了代码的可读性和可维护性。开发者可以独立地修改模型以优化业务逻辑,更新视图以改进用户体验,或调整控制器以处理新的用户请求。...

    C#的mvc框架,实现简单的web功能

    C#的mvc框架,实现简单的web功能。可以应用在泛微oa等需要基础开发简单功能的网站。erp,crm等系统。

Global site tag (gtag.js) - Google Analytics