html/css+jsp+ajax实现简易版购物车

实现的功能:

连接mysql数据库获得书目清单;

图书分页显示;并可以实现跳转,动态获取单页书目而不是直接取回所有

可以往购买池里添加书目并显示及计算总价;

在添加完成后可以点击购买跳转页面


在工作当中前端和后端自然是分开的,但是在学习的时候还是都懂一点比较好,这个只是一个小小的几何,很多功能还没实现,只是一个很简单的,但是花点时间去完善的话还是不错的;主要是用来做前端+后台的综合小练习,不然真正要完善那花的时间太长,影响后续学习。

前端页面部分:

bookview.html;前端部分最重要的页面,用于获取书目列表和添加书目到购物车里

这里不把js文件分开了,因为这个文件主要就是js为主,实现了动态添加节点,避免造成某一页书目太少留有一大片空白的尴尬





图书在线浏览



在线图书购物商城

总共    页 当前第  1  页 首页 上一页 下一页 尾页

总价:     0元    

2.checkOut.html
简单的显示了书目清单和总价,询问用户是否确认购买




Insert title here


书目清单




     
 



3.buy.html
更加简单的页面,实际应用跳转到支付平台网站




Insert title here



 付款完成,购买成功!




服务端部分:
1.首先是封装了数据库连接的类:可以提供数据库连接
package bookstore;
import java.sql.Connection;
import java.sql.DriverManager;
public class ConnectMysql {
 private static Connection con;
 public static Connection getConnection(){
  try {
   Class.forName("com.mysql.jdbc.Driver");
   String url="jdbc:mysql://localhost/student";
   String user="root";
   String password="forever19961010";
   con=DriverManager.getConnection(url, user, password);
   return con;
  } catch (Exception e) {
   // TODO: handle exception
   return con;
  }
  
 }
}
2.javabean:一系列set,get方法,但是实际用到的只有两个;因为只有两列而且在这个练习里没有插入功能
package bookstore;
public class BookBean {
 private String book_id;
 private String book_name;
 private String book_author;
 private float book_price;
 public void setId(String id){
  this.book_id=id;
 }
 public void setName(String name){
  this.book_name=name;
 }
 public void setAuthor(String author){
  this.book_author=author;
 }
 public void setPrice(float price){
  this.book_price=price;
 }
 public String getId(){
  return book_id;
 }
 public String getName(){
  return book_name;
 }
 public String getAuthor(){
  return book_author;
 }
 public float getPrice(){
  return book_price;
 }
}

3.用于获取页面总数以及实现分页从数据库取回;否则对于大数据库用一次性取回方式会被用户杀了祭天的

package bookstore;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;

public class BookList {
 private Collection list;
 private Connection con;
 private ConnectMysql connection;
 public static int rowsPerPage=6;
 private int pageCounts;
 private int rowsCounts;
 public Collection getPage(int pageNum) throws SQLException{
  list=new ArrayList();
  con=connection.getConnection();
  String sql="select * from booklist limit "+(pageNum-1)*rowsPerPage+" , "+rowsPerPage;
  Statement st=con.createStatement();
  ResultSet rs=st.executeQuery(sql);
  while(rs.next()){
   BookBean book=new BookBean();
   //book.setId(rs.getString("book_id"));
   book.setName(rs.getString("book_name"));
   //book.setAuthor(rs.getString("book_author"));
   book.setPrice(rs.getFloat("book_price"));
   list.add(book);
  }
  st.close();
  con.close();
  rs.close();
  return list;
 }
 public int getRowsCount() throws SQLException{
  con=connection.getConnection();
  String sql="select count(*) from booklist";
  Statement st=con.createStatement();
  ResultSet rs=st.executeQuery(sql);
  rs.first();
  rowsCounts=rs.getInt(1);
  
  st.close();
  rs.close();
  con.close();
  return rowsCounts;
 }
 public int getPageCounts()throws SQLException{
  int rows=getRowsCount();
  if(rows%rowsPerPage==0){
   pageCounts=rows/rowsPerPage;
  }else {
   pageCounts=rows/rowsPerPage+1;
  }
  return pageCounts;
 }
 public int getRowsPerPage(){
  return rowsPerPage;
  
 }
}

4.jsp页面:处理前端请求,主要是封装了一个JSON类返回

<%@page import="net.sf.json.JSONArray"%>
<%@page import="net.sf.json.JSONObject"%>
<%@page import="java.util.Collection"%>
<%@page import="java.io.PrintWriter"%>
<%@page import="bookstore.BookList"%>
<%@ page language="java" contentType="text/html; charset=gb2312"
    pageEncoding="gb2312"%>




Insert title here


<%
 BookList bookList=new BookList();
 String pageCounts=String.valueOf(bookList.getPageCounts());
 String pageNum=request.getParameter("pageNum");
 String getPage=request.getParameter("getPage");
 String price=request.getParameter("price");
 if(pageNum!=null){
  PrintWriter writer=response.getWriter();
  Collection collection=bookList.getPage(Integer.valueOf(pageNum));
  JSONObject obj=new JSONObject();
  obj.put("key", collection);
  JSONArray array=obj.getJSONArray("key");
  writer.write(array.toString());
  writer.close();
 }else if(getPage!=null){
  PrintWriter writer=response.getWriter();
  writer.write(pageCounts);
  writer.close();
 }
 if(price!=null){
  System.out.print(price);
 }
%>


你可能感兴趣的:(html/css+jsp+ajax实现简易版购物车)