=====================================================================
=====================================================================
book.jsp
<%–
Created by IntelliJ IDEA.
User: shuijianshiqing
Date: 2020/5/24
Time: 10:50
To change this template use File | Settings | File Templates.
–%>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” pageEncoding=“UTF-8” %>
<%@ page import=“java.util.List” %>
<%@ page import=“com.sjsq.po.Book” %>
<%@ page import=“com.sjsq.service.impl.BookServiceImpl” %>
<%@ page import=“com.sjsq.po.User” %>
<%–头部信息–%>
<%
User user =(User)session.getAttribute(“user”);
if(user == null){
response.sendRedirect(“login.jsp”);
}else {
%>
<%
}
%>
<%–图书信息–%>
<%
Book book = new Book();
BookServiceImpl service = new BookServiceImpl();
List list = service.select(book);
%>
图书列表
返回上一级
<%
String bg = null;
for (int i = 0;i<list.size();i++){
Book b =list.get(i);
if(i%2 == 0){
bg = “pink”;
}else{
bg = “yellow”;
}
%>
<%=b.getBookid()%> <%=b.getBookname()%> <%=b.getPrice() %> <%=b.getAuthor() %> <%=b.getPicture() %> <%=b.getPublish() %><%
}
%>
cart.jsp
<%–
Created by IntelliJ IDEA.
User: shuijianshiqing
Date: 2020/5/31
Time: 10:45
To change this template use File | Settings | File Templates.
–%>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>
<%@ page import=“com.sjsq.po.User” %>
<%@ page import=“com.sjsq.po.Card” %>
<%@ page import=“com.sjsq.service.CardService” %>
<%@ page import=“com.sjsq.service.impl.CardServiceImpl” %>
<%@ page import=“java.util.List” %>
<%@ page import=“com.sjsq.dao.BookDao” %>
<%@ page import=“com.sjsq.dao.impl.BookDaoImpl” %>
<%–头部信息–%>
<%
User user =(User)session.getAttribute(“user”);
if(user == null){
response.sendRedirect(“login.jsp”);
}else {
%>
<%
}
%>
<%–图书信息–%>
<%
CardService service = new CardServiceImpl();
List list = service.getCard(user.getId());
BookDao dao = new BookDaoImpl();
Double totalPrice = 0D;
Double bookPrice = 0D;
%>
购物车图书
返回上一级
<%
for (int i = 0;i<list.size();i++){
Card card = list.get(i);
String bookName = dao.getBook(card.getBookid()).getBookname();
bookPrice = dao.getBook(card.getBookid()).getPrice()*card.getBooknum();
totalPrice = bookPrice + totalPrice;
%>
<%=card.getUsername() %> <%=card.getBookid() %> <%=bookName %> <%=card.getBooknum() %> <%=bookPrice%><%
}
%>
价格总计 <%=totalPrice %>detail.jsp
<%–
Created by IntelliJ IDEA.
User: shuijianshiqing
Date: 2020/5/24
Time: 10:51
To change this template use File | Settings | File Templates.
–%>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” pageEncoding=“UTF-8” %>
<%@ page import=“com.sjsq.po.Book” %>
<%@ page import=“com.sjsq.po.User” %>
<%
// 获取绝对路径路径 ,开发项目一定要使用绝对路径,不然肯定出错
String path = request.getContextPath();
String basePath = request.getScheme() + “😕/” + request.getServerName() + “:”
- request.getServerPort() + path + “/”;
%>
<%–头部信息–%>
<%
User user =(User)session.getAttribute(“user”);
if(user == null){
response.sendRedirect(“login.jsp”);
}else {
%>
<%
}
%>
图书详情
返回上一级
<%
Book book = (Book)session.getAttribute(“book”);
%>
doCart.jsp
<%–
Created by IntelliJ IDEA.
User: shuijianshiqing
Date: 2020/5/31
Time: 10:40
To change this template use File | Settings | File Templates.
–%>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” pageEncoding=“UTF-8” %>
<%@ page import=“com.sjsq.po.Book” %>
<%@ page import=“com.sjsq.po.User” %>
<%@ page import=“com.sjsq.service.CardService” %>
<%@ page import=“com.sjsq.service.impl.CardServiceImpl” %>
<%-- 处理购物车 --%>
<%
// 获取用户的信息
User user =(User)session.getAttribute(“user”);
// 获取书籍的信息
Book book = (Book)session.getAttribute(“book”);
// 定义购物车服务
CardService service = new CardServiceImpl();
// 获取图书数量且加1
Integer booknum = service.getBookNum(book) + 1;
// 执行添加购物车操作
boolean flag = service.addCard(user,book,booknum);
if(flag){
// 添加成功返回到购物车页面
response.sendRedirect(“cart.jsp”);
}else{
//
response.sendRedirect(“doCartFail.jsp”);
}
%>
doCartFail.jsp
<%–
Created by IntelliJ IDEA.
User: shuijianshiqing
Date: 2020/5/31
Time: 11:45
To change this template use File | Settings | File Templates.
–%>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>
添加购物车失败
请重新添加
返回上一级
doInfo.jsp
<%–
Created by IntelliJ IDEA.
User: shuijianshiqing
Date: 2020/5/24
Time: 10:51
To change this template use File | Settings | File Templates.
–%>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” pageEncoding=“UTF-8” %>
<%@ page import=“com.sjsq.po.Book” %>
<%@ page import=“com.sjsq.service.BookService” %>
<%@ page import=“com.sjsq.service.impl.BookServiceImpl” %>
<%
// 获取绝对路径路径 ,开发项目一定要使用绝对路径,不然肯定出错
String path = request.getContextPath();
String basePath = request.getScheme() + “😕/” + request.getServerName() + “:”
- request.getServerPort() + path + “/”;
%>
<%
Book book = new Book();
String sid = request.getParameter(“bookid”);
Integer id = Integer.parseInt(sid);
BookService service = new BookServiceImpl();
book.setBookid(id);
Book bookCur = service.getBook(book);
// 控制台打印出类的信息(日志的前身)
System.out.print(“doInfo.jsp的信息–>”);
System.out.println(bookCur);
session.setAttribute(“book”, bookCur);
response.sendRedirect(“detail.jsp”);
%>
doregister.jsp
<%–
Created by IntelliJ IDEA.
User: shuijianshiqing
Date: 2020/5/21
Time: 23:45
To change this template use File | Settings | File Templates.
–%>
<%@page import=“com.sjsq.dao.impl.UserDaoImpl”%>
<%@page import=“com.sjsq.dao.UserDao”%>
<%@page import=“com.sjsq.po.User”%>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” pageEncoding=“UTF-8”%>
<%
// 设置获取注册时的编码为UTF-8
request.setCharacterEncoding(“UTF-8”);
User user=new User();
//获取register.jsp页面提交的账号和密码
String name=request.getParameter(“name”);
String password=request.getParameter(“password”);
String email=request.getParameter(“email”);
String phone=request.getParameter(“phone”);
//获取register.jsp页面提交的账号和密码设置到实体类User中
user.setName(name);
user.setPassword(password);
user.setEmail(email);
user.setPhone(phone);
//引入数据交互层
UserDao dao=new UserDaoImpl();
boolean flag=dao.register(user);
if(flag){
response.sendRedirect(“login.jsp”);
}else{
response.sendRedirect(“register.jsp”);
}
%>
dosearchPassword.jsp
<%–
Created by IntelliJ IDEA.
User: shuijianshiqing
Date: 2020/5/22
Time: 23:23
To change this template use File | Settings | File Templates.
–%>
<%@page import=“java.util.List”%>
<%@page import=“com.sjsq.service.impl.UserServiceImpl”%>
<%@page import=“com.sjsq.po.User”%>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” pageEncoding=“UTF-8” %>
<%
// 获取绝对路径路径 ,开发项目一定要使用绝对路径,不然肯定出错
String path = request.getContextPath();
String basePath = request.getScheme() + “😕/” + request.getServerName() + “:”
- request.getServerPort() + path + “/”;
%>
<%
User user=new User();
//获取searchPassword.jsp页面提交的账号和密码
String name=request.getParameter(“name”);
user.setName(name);
UserServiceImpl service=new UserServiceImpl();
List list=service.selectUser(user);
request.setAttribute(“list”, list);
for(User u:list){
request.setAttribute(“user”, u);
out.print(u);
}
if(user!=null){
//response.sendRedirect(“search.jsp”);//不传输数据的转发
request.getRequestDispatcher(“search.jsp”).forward(request, response);
}
%>
fail.jsp
<%–
Created by IntelliJ IDEA.
User: shuijianshiqing
Date: 2020/5/26
Time: 23:14
To change this template use File | Settings | File Templates.
–%>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>
现存图书列表
登录失败
info.jsp
<%–
Created by IntelliJ IDEA.
User: shuijianshiqing
Date: 2020/5/26
Time: 22:56
To change this template use File | Settings | File Templates.
–%>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” pageEncoding=“UTF-8” %>
<%@ page import=“com.sjsq.po.User”%>
<%@ page import=“com.sjsq.dao.UserDao”%>
<%@ page import=“com.sjsq.dao.impl.UserDaoImpl”%>
<%@ page import=“com.sjsq.service.UserService” %>
<%@ page import=“com.sjsq.service.impl.UserServiceImpl” %>
<%@ page import=“java.util.List” %>
<%
// 获取绝对路径路径 ,开发项目一定要使用绝对路径,不然肯定出错
String path = request.getContextPath();
String basePath = request.getScheme() + “😕/” + request.getServerName() + “:”
- request.getServerPort() + path + “/”;
%>
现存图书列表
---装饰中---
<%
// 设置接收的编码为UTF-8
request.setCharacterEncoding(“utf-8”);
User user = new User();
UserDao dao = new UserDaoImpl();
String name = request.getParameter(“name”);
String password=request.getParameter(“password”);
user.setName(name);
user.setPassword(password);
User us=dao.login(user);
// 把数据库里面的User获取出来
UserService service = new UserServiceImpl();
List list = service.selectUser(user);
for(int i=0;i<list.size();i++){
user = list.get(i);
}
System.out.println(“显示用户信息:”);
System.out.println(user);
session.setAttribute(“user”,user);
if(us != null){
response.sendRedirect(“book.jsp”);
}else{
response.sendRedirect(“fail.jsp”);
}
%>
login.jsp
<%–
Created by IntelliJ IDEA.
User: shuijianshiqing
Date: 2020/5/19
Time: 22:44
To change this template use File | Settings | File Templates.
–%>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” pageEncoding=“UTF-8” %>
<%
// 获取绝对路径路径 ,开发项目一定要使用绝对路径,不然肯定出错
String path = request.getContextPath();
String basePath = request.getScheme() + “😕/” + request.getServerName() + “:”
- request.getServerPort() + path + “/”;
%>
用户登录
---正在美化中---
logout.jsp
<%–
Created by IntelliJ IDEA.
User: shuijianshiqing
Date: 2020/5/25
Time: 21:51
To change this template use File | Settings | File Templates.
–%>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” pageEncoding=“UTF-8” %>
<%
session.invalidate();
response.sendRedirect(“login.jsp”);
%>
register.jsp
<%–
Created by IntelliJ IDEA.
User: shuijianshiqing
Date: 2020/5/21
Time: 23:14
To change this template use File | Settings | File Templates.
–%>
<%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8” %>
用户注册
---装饰中---
注册
重置
search.jsp
<%–
Created by IntelliJ IDEA.
User: shuijianshiqing
Date: 2020/5/22
Time: 23:28
To change this template use File | Settings | File Templates.
–%>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” pageEncoding=“UTF-8” %>
<%
// 获取绝对路径路径 ,开发项目一定要使用绝对路径,不然肯定出错
String path = request.getContextPath();
String basePath = request.getScheme() + “😕/” + request.getServerName() + “:”
- request.getServerPort() + path + “/”;
%>
您的密码是:${user.password}
返回上一级
searchPassword.jsp
<%–
Created by IntelliJ IDEA.
User: shuijianshiqing
Date: 2020/5/22
Time: 23:14
To change this template use File | Settings | File Templates.
–%>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” pageEncoding=“UTF-8” %>
<%
// 获取绝对路径路径 ,开发项目一定要使用绝对路径,不然肯定出错
String path = request.getContextPath();
String basePath = request.getScheme() + “😕/” + request.getServerName() + “:”
- request.getServerPort() + path + “/”;
%>
找回密码
返回上一级
Book
package com.sjsq.po;
import java.io.Serializable;
/**
-
@author shuijianshiqing
-
@date 2020/5/19 22:40
*/
public class Book implements Serializable {
private static final long serialVersionUID = 1L;
private Integer bookid;
private String bookname;
private Double price;
private String author;
private String picture;
private String publish;
public static long getSerialVersionUID() {
return serialVersionUID;
}
public Integer getBookid() {
return bookid;
}
public void setBookid(Integer bookid) {
this.bookid = bookid;
}
public String getBookname() {
return bookname;
}
public void setBookname(String bookname) {
this.bookname = bookname;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getPicture() {
return picture;
}
public void setPicture(String picture) {
this.picture = picture;
}
public String getPublish() {
return publish;
}
public void setPublish(String publish) {
this.publish = publish;
}
@Override
public String toString() {
return “Book{” +
“bookid=” + bookid +
“, bookname='” + bookname + ‘’’ +
“, price=” + price +
“, author='” + author + ‘’’ +
“, picture='” + picture + ‘’’ +
“, publish='” + publish + ‘’’ +
‘}’;
}
}
Card
package com.sjsq.po;
/**
-
@author shuijianshiqing
-
@date 2020/5/29 19:34
*/
public class Card {
// 主键
private Integer id;
// 用户Id
private Integer userid;
// 用户名
private String username;
// 书名
private Integer bookid;
// 书本的数量
private int booknum;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getUserid() {
return userid;
}
public void setUserid(Integer userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Integer getBookid() {
return bookid;
}
public void setBookid(Integer bookid) {
this.bookid = bookid;
}
public int getBooknum() {
return booknum;
}
public void setBooknum(int booknum) {
this.booknum = booknum;
}
@Override
public String toString() {
return “Card{” +
“id=” + id +
“, userid=” + userid +
“, username='” + username + ‘’’ +
“, bookid=” + bookid +
“, booknum=” + booknum +
‘}’;
}
}
User
package com.sjsq.po;
import java.io.Serializable;
/**
-
@author shuijianshiqing
-
@date 2020/5/19 22:19
-
用户的实体类
*/
public class User implements Serializable {
// 增加序列号,作用是反序列化的时候不会报错,切能进行IO的持久化
public static final long serialVersionUID = 1L;
private Integer id;
private String name;
private String password;
private String email;
private String phone;
public static long getSerialVersionUID() {
return serialVersionUID;
}
public Integer getId() {
return id;
}
public void setId(Integer 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 getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@Override
public String toString() {
return “User{” +
“id=” + id +
“, name='” + name + ‘’’ +
“, password='” + password + ‘’’ +
“, email='” + email + ‘’’ +
“, phone='” + phone + ‘’’ +
‘}’;
}
}
BookDao
package com.sjsq.dao;
import com.sjsq.po.Book;
import java.util.List;
/**
-
@author shuijianshiqing
-
@date 2020/5/20 23:13
-
图书信息接口
*/
public interface BookDao {
/**
-
查询图书信息
-
@param sql
-
@param arr
-
@return
*/
public List select(String sql,Object[] arr);
/**
-
根据图书编号进行查询
-
@param id
-
@return
*/
public Book getBook(Integer id);
}
CardDao
package com.sjsq.dao;
import com.sjsq.po.Book;
import com.sjsq.po.Card;
import com.sjsq.po.User;
import java.util.List;
/**
-
@author shuijianshiqing
-
@date 2020/5/29 19:42
*/
public interface CardDao {
/**
-
通过用户Id获取用户的购物车
-
@param id
-
@return
*/
public List getCard(Integer id);
/**
-
添加用户信息和图书信息到用户的购物车
-
@param user
-
@param book
-
@param booknum
-
@return
*/
public boolean addCard(User user, Book book,Integer booknum);
/**
-
使用Book来获取booknum
-
@param book
-
@return
*/
public Integer getBookNum(Book book);
}
UserDao
package com.sjsq.dao;
import com.sjsq.po.User;
import java.util.List;
/**
-
@author shuijianshiqing
-
@date 2020/5/20 22:10
-
创建一个接口用于声明用户登录注册的方法
*/
public interface UserDao {
/**
-
用户登录
-
@param user
-
@return
*/
public User login(User user);
/**
-
用户注册
-
@param user
-
@return
*/
public boolean register(User user);
/**
-
查询用户信息
-
@param sql
-
@param arr
-
@return
*/
public List selectUser(String sql,Object arr[]);
}
BookService
package com.sjsq.service;
import com.sjsq.po.Book;
import java.util.List;
/**
-
@author shuijianshiqing
-
@date 2020/5/20 23:37
-
Book的Service层
*/
public interface BookService {
/**
-
查询图书信息
-
@param book
-
@return
*/
public List select(Book book);
/**
-
根据编号来查询
-
@param book
-
@return
*/
public Book getBook(Book book);
}
CardService
package com.sjsq.service;
import com.sjsq.po.Book;
import com.sjsq.po.Card;
import com.sjsq.po.User;
import java.util.List;
/**
-
@author shuijianshiqing
-
@date 2020/5/29 23:00
*/
public interface CardService {
/**
-
获取用户的购物车
-
@param id
-
@return
*/
public List getCard(Integer id);
/**
-
添加用户信息和图书信息到用户的购物车
-
@param user
-
@param book
-
@param booknum
-
@return
*/
public boolean addCard(User user, Book book, Integer booknum);
/**
-
根据Book获取booknum
-
@param book
-
@return
*/
public Integer getBookNum(Book book);
}
UserService
package com.sjsq.service;
import com.sjsq.po.User;
import java.util.List;
/**
-
@author shuijianshiqing
-
@date 2020/5/20 22:54
-
Service层
*/
public interface UserService {
/**
-
用户查询的信息
-
@param user
-
@return
*/
public List selectUser(User user);
}
BookServiceImpl
package com.sjsq.service.impl;
import com.sjsq.dao.BookDao;
import com.sjsq.dao.impl.BookDaoImpl;
import com.sjsq.po.Book;
import com.sjsq.service.BookService;
import java.util.ArrayList;
import java.util.List;
/**
-
@author shuijianshiqing
-
@date 2020/5/20 23:42
-
Book的Service实现层
*/
public class BookServiceImpl implements BookService {
private BookDao dao = new BookDaoImpl();
/**
-
查询所有图书信息
-
@param book
-
@return
*/
@Override
public List select(Book book) {
StringBuffer sql = new StringBuffer("select * from book where 1 = 1 ");
List list = new ArrayList();
if(book != null){
// 根据bookid来查找对应的书籍
if(book.getBookid() != null && book.getBookid() != 0){
sql.append(" and bookid = ?");
list.add(book.getBookid());
}
}
return dao.select(sql.toString(),list.toArray());
}
/**
-
根据图书编号查询信息
-
@param book
-
@return
*/
@Override
public Book getBook(Book book) {
if(book.getBookid() != null && book.getBookid() != 0){
return dao.getBook(book.getBookid());
}
return null;
}
}
CardServiceImpl
package com.sjsq.service.impl;
import com.sjsq.dao.CardDao;
import com.sjsq.dao.impl.CardDaoImpl;
import com.sjsq.po.Book;
import com.sjsq.po.Card;
import com.sjsq.po.User;
import com.sjsq.service.CardService;
import java.util.List;
/**
-
@author shuijianshiqing
-
@date 2020/5/29 23:01
*/
public class CardServiceImpl implements CardService {
private CardDao dao = new CardDaoImpl();
@Override
public List getCard(Integer id) {
if(id != null){
return dao.getCard(id);
}
return null;
}
/**
-
添加信息到购物车
-
@param user
-
@param book
-
@param booknum
-
@return
*/
@Override
public boolean addCard(User user, Book book, Integer booknum) {
return dao.addCard(user,book,booknum);
}
/**
-
根据Book查询booknum
-
@param book
-
@return
*/
@Override
public Integer getBookNum(Book book) {
if(dao.getBookNum(book) == null){
return 0;
}
return dao.getBookNum(book);
}
}
UserServiceImpl
package com.sjsq.service.impl;
import com.sjsq.dao.UserDao;
import com.sjsq.dao.impl.UserDaoImpl;
import com.sjsq.po.User;
import com.sjsq.service.UserService;
import java.util.ArrayList;
import java.util.List;
/**
-
@author shuijianshiqing
-
@date 2020/5/20 22:56
*/
public class UserServiceImpl implements UserService {
// 定义dao对象
private UserDao dao = new UserDaoImpl();
/**
-
查询用户信息
-
@param user
-
@return
*/
@Override
public List selectUser(User user) {
StringBuffer sql = new StringBuffer("select * from user where 1 = 1 ");
List list = new ArrayList();
if(user != null){
// 按照姓名查询
if(user.getName() != null && !user.getName().equals(“”)){