JAVA web 购物车

JAVA WEB 购物车

登录首页

登录首页

商品页

在这里插入图片描述

搜索商品

在这里插入图片描述

项目架构

在这里插入图片描述

加入购物车servlet(addshopcar)

package com.shop.control;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.shop.javaBean.Item;
import com.shop.javaBean.ShopCar;



public class addshopcar extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
 
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		ShopCar car = (ShopCar) request.getSession().getAttribute("car");
	     if(car==null) {
	    	 car = new  ShopCar();
	    	 request.getSession().setAttribute("car", car);
	     }
	     
	     Item item = new Item(request.getParameter("itemname"),request.getParameter("price"),request.getParameter("icon"));
	     car.additem(item);
	     response.sendRedirect("/shop/shopcar.jsp");
	     
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		doGet(request, response);
	}

}

del购物车servlet(del)

package com.shop.control;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.shop.javaBean.Item;
import com.shop.javaBean.ShopCar;


public class del extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		response.setContentType("text/html;charset=utf-8");
		ShopCar car = (ShopCar) request.getSession().getAttribute("car");
		Item item=new Item(request.getParameter("itemname"),request.getParameter("price"),request.getParameter("icon"));
		car.removeitem(item);
		response.sendRedirect("/shop/shopcar.jsp");
		
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		doGet(request, response);
	}

}

exit购物车servlet(del)

package com.shop.control;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


public class exit extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		HttpSession session = request.getSession();
		session.invalidate();
		request.getRequestDispatcher("/index.jsp").forward(request, response);

	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		doGet(request, response);
	}

}

login购物车servlet(del)

package com.shop.control;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.shop.daoimpl.UserDaoImpl;

public class login extends HttpServlet {


	private static final long serialVersionUID = 1L;


	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		
		
		String username=(String) request.getParameter("username");
		String password=(String) request.getParameter("password");
	
		UserDaoImpl user = new UserDaoImpl();

		if(user.isLogin(username, password)) {
			request.getSession().setAttribute("username", username);
			request.getSession().setAttribute("password", password);
			request.getSession().setAttribute("money", user.getMoney(username, password));
			
			request.getSession().setAttribute("itemlist", user.getItem());

			
			
			response.sendRedirect("/shop/item.jsp");
			return;
			
		}else {
			
			request.setAttribute("logininfo", "用户名或密码错误");
			request.getRequestDispatcher("/index.jsp").forward(request, response);
			//response.sendRedirect("/shop/index.jsp");
		}
		
	
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}






search购物车servlet(sea)

package com.shop.control;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.shop.daoimpl.UserDaoImpl;


public class sea extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		String search=request.getParameter("search");
		System.out.println(search);
		UserDaoImpl user = new UserDaoImpl();
		request.getSession().setAttribute("search", search);
		request.getSession().setAttribute("seaitemlist", user.getseaItem(search));
		response.sendRedirect("/shop/seaitem.jsp");
		
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		doGet(request, response);
	}

}

数据库dao接口

package com.shop.daoimpl;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.shop.javaBean.Item;

public class UserDaoImpl{
	


	String url = "jdbc:sqlserver://localhost:1433;DatabaseName=shopDB;";
	String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
	String dbname="sa";
	String dbpass="123456";
	Connection conn;
	Statement stmt;
    PreparedStatement ps;
    

    
    public UserDaoImpl(){

    	try {	
		
			Class.forName(driverName);
			conn = DriverManager.getConnection(url, dbname, dbpass);
			System.out.println("数据库连接成功");
			
		} catch (SQLException e) {
			System.out.println("数据库连接错误!!!");
		}catch (ClassNotFoundException e1) {
			e1.printStackTrace();
		}
    	
    }

	
	public boolean isLogin(String username,String password) {
		String sql = "select * from shopuser where username="+username+" and password="+password;
        ResultSet rs;
        try {
       	   ps = conn.prepareStatement(sql);
		   rs = ps.executeQuery();
			
			  if(rs.next()) {
			
				  return true;
			  }
	                    
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return false;
	}
	public String getMoney(String username,String password) {
		String sql = "select money from shopuser where username="+username+" and password="+password;
        ResultSet rs;
        try {
       	   ps = conn.prepareStatement(sql);
		   rs = ps.executeQuery();
			
			  if(rs.next()) {
			
				  return rs.getString("money");
			  }
	                    
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return "0";
	}
	
	public Map<String,String> getPricebySname() {
		String sql = "select * from shopitem ";
        ResultSet rs;
        Map<String,String> map=new  HashMap<String,String>();
        try {
       	   ps = conn.prepareStatement(sql);
		   rs = ps.executeQuery();
			
			  while(rs.next()) {
			
				   String sname=rs.getString("sname");
				   String price=rs.getString("price");
				   map.put(sname, price);
			  }
	                    
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return map;
	}

	public List<Item> getItem() {
		String sql = "select * from shopitem";
        ResultSet rs;
        Item item;
        List<Item> list=new  ArrayList<Item>();
        try {
       	   ps = conn.prepareStatement(sql);
		   rs = ps.executeQuery();
			
			  while(rs.next()) {
			
				   String sname=rs.getString("sname");
				   String price=rs.getString("price");
				   String icon=rs.getString("icon");
				   item=new Item(sname,price,icon);
				   list.add(item);
			  }
	                    
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return list;
	}
	public List<Item> getseaItem(String sea) {
		String sql = "select * from shopitem";
        ResultSet rs;
        Item item;
        List<Item> list=new  ArrayList<Item>();
        try {
       	   ps = conn.prepareStatement(sql);
		   rs = ps.executeQuery();
			
			  while(rs.next()) {
			
				   String sname=rs.getString("sname");
				   String price=rs.getString("price");
				   String icon=rs.getString("icon");
				   if(sname.indexOf(sea)>-1) {
				   item=new Item(sname,price,icon);
				   list.add(item);}
			  }
	                    
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return list;
	}
	

}

login检查 权限控制

package com.shop.filter;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


public class loginFilter implements Filter {



	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		HttpServletRequest req=(HttpServletRequest) request;
		HttpServletResponse resp = (HttpServletResponse) response;
		HttpSession session = req.getSession();

		System.out.println(req.getRequestURI());
		

		if(req.getRequestURI() .equals("/shop/")
				||req.getRequestURI() .equals("/shop/index.jsp")
				||req.getRequestURI() .equals("/shop/servlet/login")
				||req.getRequestURI() .equals("/shop/res/bg.jpg"
						)){
			
			
			chain.doFilter(request, response);
			return;
		}else if(session.getAttribute("username")!=null&&session.getAttribute("password")!=null){
			    System.out.println("username不为空");
				chain.doFilter(request, response);
				return;
			
		}else{
			System.out.println("session 空");
			resp.sendRedirect("index.jsp");
			return;
		}
		
		
	}


	public void init(FilterConfig fConfig) throws ServletException {
		
	}
	public void destroy() {
		
	}

}

java bean

package com.shop.javaBean;

public class Item extends Object{
	
	private String name;//名字
	private String price;//价格
	private String icon;//图片

	
	
	public Item(String name, String price, String icon) {
		
		this.name = name;
		this.price = price;
		this.icon = icon;
	}



	public String getName() {
		return name;
	}



	public String getPrice() {
		return price;
	}



	public String getIcon() {
		return icon;
	}
@Override
    public boolean equals(Object obj) {

    	  return true;
    }
}


package com.shop.javaBean;

import java.util.ArrayList;
import java.util.List;

public class ShopCar {
	
	
	
	List<Item> list;
	
	
	public List<Item> getList() {
		return list;
	}

	public ShopCar(){
		
		list = new ArrayList<Item>();
		
	}
	
	public void additem(Item item) {
		list.add(item);
	}
	public void removeitem(Item item) {
		list.remove(item);
	}
	

	

}

数据库sql server 2008 r2

USE [master]
GO
/****** Object:  Database [shopDB]    Script Date: 12/20/2019 21:52:19 ******/
CREATE DATABASE [shopDB] ON  PRIMARY 
( NAME = N'shopDB', FILENAME = N'D:\ProgramFiles\SQLserver\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\shopDB.mdf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'shopDB_log', FILENAME = N'D:\ProgramFiles\SQLserver\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\shopDB_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
ALTER DATABASE [shopDB] SET COMPATIBILITY_LEVEL = 100
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [shopDB].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO
ALTER DATABASE [shopDB] SET ANSI_NULL_DEFAULT OFF
GO
ALTER DATABASE [shopDB] SET ANSI_NULLS OFF
GO
ALTER DATABASE [shopDB] SET ANSI_PADDING OFF
GO
ALTER DATABASE [shopDB] SET ANSI_WARNINGS OFF
GO
ALTER DATABASE [shopDB] SET ARITHABORT OFF
GO
ALTER DATABASE [shopDB] SET AUTO_CLOSE OFF
GO
ALTER DATABASE [shopDB] SET AUTO_CREATE_STATISTICS ON
GO
ALTER DATABASE [shopDB] SET AUTO_SHRINK OFF
GO
ALTER DATABASE [shopDB] SET AUTO_UPDATE_STATISTICS ON
GO
ALTER DATABASE [shopDB] SET CURSOR_CLOSE_ON_COMMIT OFF
GO
ALTER DATABASE [shopDB] SET CURSOR_DEFAULT  GLOBAL
GO
ALTER DATABASE [shopDB] SET CONCAT_NULL_YIELDS_NULL OFF
GO
ALTER DATABASE [shopDB] SET NUMERIC_ROUNDABORT OFF
GO
ALTER DATABASE [shopDB] SET QUOTED_IDENTIFIER OFF
GO
ALTER DATABASE [shopDB] SET RECURSIVE_TRIGGERS OFF
GO
ALTER DATABASE [shopDB] SET  DISABLE_BROKER
GO
ALTER DATABASE [shopDB] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
GO
ALTER DATABASE [shopDB] SET DATE_CORRELATION_OPTIMIZATION OFF
GO
ALTER DATABASE [shopDB] SET TRUSTWORTHY OFF
GO
ALTER DATABASE [shopDB] SET ALLOW_SNAPSHOT_ISOLATION OFF
GO
ALTER DATABASE [shopDB] SET PARAMETERIZATION SIMPLE
GO
ALTER DATABASE [shopDB] SET READ_COMMITTED_SNAPSHOT OFF
GO
ALTER DATABASE [shopDB] SET HONOR_BROKER_PRIORITY OFF
GO
ALTER DATABASE [shopDB] SET  READ_WRITE
GO
ALTER DATABASE [shopDB] SET RECOVERY FULL
GO
ALTER DATABASE [shopDB] SET  MULTI_USER
GO
ALTER DATABASE [shopDB] SET PAGE_VERIFY CHECKSUM
GO
ALTER DATABASE [shopDB] SET DB_CHAINING OFF
GO
EXEC sys.sp_db_vardecimal_storage_format N'shopDB', N'ON'
GO
USE [shopDB]
GO
/****** Object:  Table [dbo].[shopuser]    Script Date: 12/20/2019 21:52:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[shopuser](
	[username] [varchar](50) NOT NULL,
	[password] [varchar](50) NULL,
	[money] [varchar](50) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[shopitem]    Script Date: 12/20/2019 21:52:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[shopitem](
	[sname] [varchar](50) NULL,
	[price] [varchar](50) NULL,
	[icon] [varchar](50) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值