}
#head{
background: #eeeeee;height: 80px;
}
#headLink{
font-size: 20px;
}
#headWelLink{
font-size: 20px;
}
<%–头部信息–%>
<%
User user =(User)session.getAttribute(“user”);
if(user == null){
response.sendRedirect(“login.jsp”);
}else {
%>
欢迎您:<%=user.getName()%>
我的购物车
安全退出
<%
}
%>
<%–图书信息–%>
<%
Book book = new Book();
BookServiceImpl service = new BookServiceImpl();
List list = service.select(book);
%>
图书列表
返回上一级
编号 书名 价格 作者 封皮 出版社
<%
String bg = null;
for (int i = 0;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 { %> 欢迎您:<%=user.getName()%> 我的购物车 安全退出 <% } %> <%–图书信息–%> <% 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 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 { %> 欢迎您:<%=user.getName()%> 我的购物车 安全退出 <% } %> 图书详情 返回上一级 <% Book book = (Book)session.getAttribute(“book”); %> 图书编号 图书名称 图书价格 图书作者 图书封皮 图书出版社 <%=book.getBookid()%> <%=book.getBookname()%> <%=book.getPrice()%> <%=book.getAuthor()%> <%=book.getPicture()%> <%=book.getPublish()%> 添加到购物车 图书列表 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 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 + “/”; %> 找回密码 找回密码 返回上一级 请输入账号: 2.后端 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 自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。 深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。 既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化! 由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新! 如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端) 最后 你要问前端开发难不难,我就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难』,对于不熟悉某领域技术的人来说,因为不了解所以产生神秘感,神秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。 我特地针对初学者整理一套前端学习资料分享给大家,戳这里即可领取 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 自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。 深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。 [外链图片转存中…(img-tspO91fP-1712420059271)] [外链图片转存中…(img-rQuOBoMj-1712420059272)] 既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化! [外链图片转存中…(img-3NGKhB0R-1712420059272)] 由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新! 如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端) 最后 你要问前端开发难不难,我就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难』,对于不熟悉某领域技术的人来说,因为不了解所以产生神秘感,神秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。 我特地针对初学者整理一套前端学习资料分享给大家,戳这里即可领取 [外链图片转存中…(img-PZl77WVU-1712420059273)] 推荐阅读
发表评论