简单的JSP购物程序(综合运用JavaBean、JDBC、JSP隐含对象,开发一个小型网上购物系统)

内容概括:

                用户网上注册,注册信息写入数据库。
  用户登陆后,进入网上购物系统,选择书籍,加入购物车,购物完毕进入结账界面(可模拟一下,简单输出一些信息);在用户购物的期间内,可随时查看购物车的状      态,进入购物车后,也可返回再选择商品;在购物期间,用户也可以注销。

已解决参数传递和与数据库连接汉字乱码问题


数据库:

product 用户表

六项内容

private String id;
private String name;
private String password;
private String sex;
private String xueli;
private String registTime;

book   书表

七项

private String bookid;
private String bookname;
private String publisher;
private String author;
private String price;
private String publishDate;
private int count;

源代码:

bean 里的代码:

UserBean.java

package bean;


public class UserBean {
private String id;
private String name;
private String password;
private String sex;
private String xueli;
private String registTime;
public String getId() {
	return id;
}
public void setId(String id) {
	this.id = id;
}
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public String getPassword() {
	return password;
}
public void setPassword(String password) {
	this.password = password;
}
public String getSex() {
	return sex;
}
public void setSex(String sex) {
	this.sex = sex;
}
public String getXueli() {
	return xueli;
}
public void setXueli(String xueli) {
	this.xueli = xueli;
}
public String getRegistTime() {
	return registTime;
}
public void setRegistTime(String registTime) {
	this.registTime = registTime;
}

}

BookBean.java

package bean;


public class UserBean {
private String id;
private String name;
private String password;
private String sex;
private String xueli;
private String registTime;
public String getId() {
	return id;
}
public void setId(String id) {
	this.id = id;
}
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public String getPassword() {
	return password;
}
public void setPassword(String password) {
	this.password = password;
}
public String getSex() {
	return sex;
}
public void setSex(String sex) {
	this.sex = sex;
}
public String getXueli() {
	return xueli;
}
public void setXueli(String xueli) {
	this.xueli = xueli;
}
public String getRegistTime() {
	return registTime;
}
public void setRegistTime(String registTime) {
	this.registTime = registTime;
}

}



Cart.java

package bean;

import java.util.HashMap;

public class CartBean {
private String userName;
private HashMap<String,Integer> items=new HashMap<String, Integer>();
public String getUserName() {
	return userName;
}
public void setUserName(String userName) {
	this.userName = userName;
}
public HashMap<String, Integer> getItems() {
	return items;
}
public void setItems(HashMap<String, Integer> items) {
	this.items = items;
}

  public void addItem(String bookId)
  {
	  if(items.containsKey(bookId))
	  {
		  int count=items.get(bookId);
		  count++;
		  items.remove(bookId);
		  items.put(bookId, count);
	  }
	  else
	  {
		  items.put(bookId, 1);
	  }
  }
  public void subItem(String bookId)
  {
	  int count=items.get(bookId);
	  items.remove(bookId);
	  count--;
	  if(count>0)
	  {
		  items.put(bookId, count);
	  }
  }
  public void clearItems()
  {
	  items.clear();
  }
}

dao 里的代码:

base.java

package dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class BaseDao {
  Connection con;
  public Connection getConn()
  {
	  
	  try {
		Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		
		con=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;databaseName=mystar","sa","sa");
		System.out.print("连接成功");
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		System.out.print("连接失败一");
		e.printStackTrace();
	} catch (ClassNotFoundException e) {
		// TODO Auto-generated catch block
		System.out.print("连接失败二");
		e.printStackTrace();
	}
	return con;
  }
}

UserDao.java

package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import bean.UserBean;

public class UserDao {
	
	
	
	public boolean selectUserByNameAndPass(String name,String pass)
	{Connection con=(new BaseDao()).getConn();
		boolean flag=false;
		String selectSql="select * from product where tName=? and tPwd=?";
		System.out.println("select sql  成功");
		try {
			System.out.println("select sql  成功");
			System.out.println(name+" "+pass);
			PreparedStatement pst=con.prepareStatement(selectSql);
			System.out.println("select sql pre  成功");
			pst.setString(1, name);
			pst.setString(2,pass);
			System.out.println("select sql 1 2 成功");
			ResultSet rs=pst.executeQuery();
			System.out.println("select query  成功");
			if(rs.next())
			{
				flag=true;
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return flag;
	}
	
	public boolean selectUserByName(String name)
	{Connection con=(new BaseDao()).getConn();
		boolean flag=false;
		String selectSql="select * from product where tName=?";
		try {
			PreparedStatement pst=con.prepareStatement(selectSql);
			pst.setString(1, name);
			System.out.println(name);
			ResultSet rs=pst.executeQuery();
			if(rs.next())
			{
				flag=true;
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return flag;
	}
	public int insertToUser(UserBean user)
	{Connection con=(new BaseDao()).getConn();
		int count=0;
		String insertSql="insert into product values(?,?,?,?,?)";
		try {
			
			
			
			PreparedStatement pst=con.prepareStatement(insertSql);
			pst.setString(1, user.getName());
			pst.setString(2, user.getPassword());
			pst.setString(3, user.getSex());
			pst.setString(4, user.getXueli());
			//java.sql.Date date=new java.sql.Date((new Date()).getTime());
			pst.setString(5,user.getRegistTime() );
			count=pst.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return count;
		
	}
	
}

BookDao.java

package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import bean.BookBean;
public class BookDao {
	Connection con=new BaseDao().getConn();
   public ArrayList selectAllBooks()
   {
	   ArrayList<BookBean> list=new ArrayList();
	   String selectSql="select * from book";
	   try {
		PreparedStatement pst=con.prepareStatement(selectSql);
		ResultSet rs=pst.executeQuery();
		while(rs.next())
		{
			BookBean book=new BookBean();
			book.setBookid(rs.getString(1));
			book.setBookname(rs.getString(2));
			book.setPublisher(rs.getString(3));
			book.setAuthor(rs.getString(4));
			book.setPrice(rs.getString(5));
			book.setPublishDate(rs.getString(6));
			book.setCount(rs.getInt(7));
			list.add(book);
		}
		
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	   
	   
	   return list;
   }
   
   public String selectBookById(String bookId)
   {
	   String bookName=null;
	   String selectSql="select bookname from book where bookid=?";
	   try {
		PreparedStatement pst=con.prepareStatement(selectSql);
		pst.setString(1, bookId);
		ResultSet rs=pst.executeQuery();
		if(rs.next())
		{
		    bookName=rs.getString(1);
		}
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	return bookName;
   }
}

CartDao.java

package dao;

import java.sql.Connection;

public class CartDao {
Connection con=(new BaseDao()).getConn();

}

JSP 页面:

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
  </head>
  
  <body>
   <%request.setCharacterEncoding("utf-8");
  response.setCharacterEncoding("utf-8"); %>
    <form action="loginAccept.jsp" method="post">
       <table>
       <tr><td colspan="2" align="center">请登录</td></tr>
	   <tr><td>用户名:</td><td><input type="text" name="name"/></td></tr>
	   <tr><td>密码:</td><td><input type="password" name="password"/></td></tr>	
	     <tr>
	     		<td  ><input type="submit" value=" 登陆"/></td>
	     	    <td  align="right"><a href="regist.jsp">注册</a></td>  
	     </tr>  
       </table>
    </form>
  </body>
</html>

登录处理页面  loginAccept.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="dao.UserDao"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'loginAccept.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
   <%request.setCharacterEncoding("utf-8");
  response.setCharacterEncoding("utf-8"); %>
  <jsp:useBean id="user" class="bean.UserBean" scope="session"></jsp:useBean>

  <jsp:setProperty property="*" name="user"/>
  <%
      	UserDao dao=new UserDao();
      	//System.out.println("new  成功");
      	
      //	System.out.println(user.getName()+"  "+user.getPassword());
      boolean flag=dao.selectUserByNameAndPass(user.getName(),user.getPassword());
      System.out.println("flag  初始化成功");
      if(flag)
      {
         response.sendRedirect("displayBook.jsp");
      }
      else
      {
         response.sendRedirect("index.jsp");
      }
   %>
  </body>
</html>
书目录展示  displayBook.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="dao.BookDao"%>
<%@page import="bean.BookBean"%>
<%

String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'displayBooks.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
   <jsp:useBean id="user" class="bean.UserBean" scope="session"></jsp:useBean>
  欢迎您 <jsp:getProperty property="name" name="user"/>前来购书,请挑选您喜欢的书
 <form action="cart.jsp" method="post">"
  <table border="1">
 <tr><td>请选择</td>
 <td>书名</td>
 <td>出版社</td>
 <td>作者</td>
 <td>价格</td>
 <td>出版日期</td>
 <td>库存数量</td>
 </tr>
  <%
    BookDao bookDao=new BookDao();
    ArrayList list=bookDao.selectAllBooks();
    Iterator it=list.iterator();
    while(it.hasNext())
    {
       BookBean book=(BookBean)it.next();
    %>
    <tr>
    <td><input type="checkbox"  name="bookid" value="<%=book.getBookid() %>"/> </td>
    <td><%=book.getBookname() %></td>
    <td><%=book.getPublisher() %></td>
    <td><%=book.getAuthor() %></td>
    <td><%=book.getPrice() %></td>
    <td><%=book.getPublishDate() %></td>
    <td><%=book.getCount() %></td>
    </tr>
    <%   
    }
   %>
   <tr><td colspan="7" align="center">
   <input type="submit" value="提交"/>
   </td></tr>
    </table></form>
  </body>
</html>

增减书籍处理  cart.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="bean.CartBean"%>
<%@page import="dao.BookDao"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'cart.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  <body>
   <jsp:useBean id="user" class="bean.UserBean" scope="session"></jsp:useBean> 
    客户<jsp:getProperty property="name" name="user"/>  的购物车为:
    <form method="post">
    <table border="1">
    <tr><td>请选择</td><td>书名</td><td>数量</td></tr>
    <%
    String[] bookids=request.getParameterValues("bookid");
    
    //得到购物车
    CartBean cart1=(CartBean)session.getAttribute("cart");
    
    if(cart1==null)
    {
        //购物车为空,需要创建一个购物车bean
        CartBean cartTemp=new CartBean();
        cartTemp.setUserName(user.getName());
        HashMap<String,Integer> items=new HashMap<String,Integer>();
        for(String bookid:bookids)
        {
           items.put(bookid,1);
        }
        cartTemp.setItems(items);
        session.setAttribute("cart",cartTemp);
        cart1=(CartBean)session.getAttribute("cart");
    }
    else
    {
    String operateCart=request.getParameter("operateCart");
    if(operateCart==null)
    {
        for(String bookid:bookids)
        {
           cart1.addItem(bookid);
        }
    }
    else
    {
       if(operateCart.equals("add"))
       {
          
          for(String bookid:bookids)
          {
             cart1.addItem(bookid);
          }
       }
       else
       {
           
          for(String bookid:bookids)
          {
             cart1.subItem(bookid);
          }
       }
      
    }
     session.setAttribute("cart",cart1);
    }
    
    //显示cart1购物车里的内容
    HashMap<String,Integer> map=cart1.getItems();
    Set set=map.keySet();
    Iterator it1=set.iterator();
    BookDao bookDao=new BookDao();
    while(it1.hasNext())
    {
       String bookId=(String)it1.next();
       String bookName=bookDao.selectBookById(bookId);
       int count=map.get(bookId);
    %>
    <tr>
    <td><input type="checkbox"  name="bookid" value="<%=bookId%>"/></td>
    <td><%=bookName %></td>
    <td><%=count %></td>
    </tr>
    <%
        }
    
     %>
    <tr><td colspan="3" align="center">
    <input type="submit" value="add" name="operateCart"/>
     <input type="submit" value="sub" name="operateCart"/>
    </td></tr>
    <tr><td colspan="3" align="center">
    <a href="displayBook.jsp">重新购物</a> 
      <a href="logout.jsp">注销用户</a> 
    </td></tr>
    </table>
    </form>
  </body>
</html>

注册页面  regist.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'regist.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
   <%request.setCharacterEncoding("utf-8");
   response.setCharacterEncoding("utf-8"); %>
  <form action="registAccept.jsp" method="post">
     <table>
       <tr><td colspan="2" align="center">请注册</td></tr>
	   <tr><td>用户名:</td><td><input type="text" name="name"/></td></tr>
	   <tr><td>密码:</td><td><input type="password" name="password"/></td></tr>	
	   <tr><td>性别:</td><td><input type="radio" name="sex" value="1"/>男 
	   <input type="radio" name="sex" value="2"/>女</td></tr>		   
	   <tr><td>学历:</td><td><input type="text" name="xueli"/></td></tr>	   
	     <tr><td colspan="2" align="center"><input type="submit" value="提交"/></td></tr>   
       </table></form>
  </body>
</html>

注册处理

registAccept.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="dao.UserDao"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'registAccept.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
   <%request.setCharacterEncoding("utf-8");
  response.setCharacterEncoding("utf-8"); %>
    <jsp:useBean id="user" class="bean.UserBean" scope="session"></jsp:useBean>

    <jsp:setProperty property="*"  name="user"/>
 
        
     <%
     UserDao dao=new UserDao();
     if(!dao.selectUserByName(user.getName()))
     {
       System.out.println("用户名不存在");
       dao.insertToUser(user);
       response.sendRedirect("displayBook.jsp");
     }
     else
     {
        System.out.println("用户已经存在");
        response.sendRedirect("index.jsp");
     }
      %>
  </body>
</html>


  • 3
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值