基于javaweb+mysql的jsp+servlet在线购书商城系统(java+jsp+mysql+servlert+ajax)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的JSP+Servlet在线购书商城系统(java+jsp+mysql+servlert+ajax)
一、项目简述
功能:一个基于JavaWeb的网上书店的设计与实现,归纳 出了几个模块,首先是登录注册模块,图书查找模块,购 物车模块,订单模块,个人中心模块,用户管理模块,图 书管理模块等。 该项目是javaJeb技术的实战操作,采用了MVC设计模 式,包括基本的entity, jscript, servlet,以及ajax异步请 求,查询分页,持久化层方法的封装等等,对javaweb技 术的巩固很有帮助,为J2EE的学习打下基础,适用于课程 设计,毕业设计。
二、项目运行
环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。
项目技术: JSP + Entity+ Servlert + html+ css + JavaScript + JQuery + Ajax + Fileupload 等等。
*/
private void userListByAdmin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
UserDaoImpl dao = new UserDaoImpl();
List<Users> ulist = dao.getUserList();
//获取分页
Integer page=1;
String strPage = request.getParameter("page");
if(StringUtil.isNumber(strPage)==false){
}else{
page =Integer.parseInt(strPage);
}
//封装成分页对象
PageBean<Users> Pager = new PageBean<Users>(page,10,ulist);
request.getSession().setAttribute("ulist", Pager);
response.sendRedirect("admin/userlist.jsp");
}
/**
* 删除用户
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void delUserByAdmin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if(StringUtil.isNumber(request.getParameter("uid"))==false){
response.sendRedirect("admin/userlist.jsp");
return;
}
int userId = Integer.parseInt(request.getParameter("uid"));
UserDaoImpl dao = new UserDaoImpl();
boolean b = dao.delUserByUserId(userId);
//存入操作信息
if(b==true){
request.getSession().setAttribute("ADMIN_MSG_USER","删除成功");
}else{
request.getSession().setAttribute("ADMIN_MSG_USER","删除失败");
}
userListByAdmin(request, response);
}
/**
* 锁定用户
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void lockUserByAdmin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if(StringUtil.isNumber(request.getParameter("uid"))==false){
response.sendRedirect("admin/userlist.jsp");
return;
}
int userId = Integer.parseInt(request.getParameter("uid"));
UserDaoImpl dao = new UserDaoImpl();
//信息完整性校验
if(title==null
|| title.equals("")
|| unitPrice==null
|| unitPrice<0){
request.getSession().setAttribute("ADMIN_MSG_BOOK", "添加失败,请检查图书信息是否正确");
response.sendRedirect("admin/useradd.jsp");
return;
}
//封装对象
Books book = new Books();
book.setTitle(title);
book.setUnitPrice(unitPrice);
book.setAuthor(author);
book.setCategoryId(categoryId);
book.setPublisherId(publisherId);
book.setPublishDate(publishDate);
book.setIsbn(isbn);
book.setWordsCount(wordsCount);
book.setContentDescription(contentDescription);
book.setAuthorDescription(authorDescription);
//调用dao层方法
BookDaoImpl dao = new BookDaoImpl();
//页面跳转
if(dao.addBook(book)){
request.getSession().setAttribute("ADMIN_MSG_BOOK", "添加成功,图书:"+title);
bookListByAdmin(request, response);
}else{
request.getSession().setAttribute("ADMIN_MSG_BOOK", "添加失败!");
response.sendRedirect("admin/bookadd.jsp");
}
}
}
//封装对象
Books book = new Books();
book.setId(bookId);
book.setTitle(title);
book.setUnitPrice(unitPrice);
book.setAuthor(author);
book.setCategoryId(categoryId);
book.setPublisherId(publisherId);
book.setPublishDate(publishDate);
book.setIsbn(isbn);
book.setWordsCount(wordsCount);
book.setContentDescription(contentDescription);
book.setAuthorDescription(authorDescription);
//调用dao层方法
BookDaoImpl dao = new BookDaoImpl();
Boolean b = dao.upBook(book);
//设置修改信息结果字符串
if(b)
request.getSession().setAttribute("ADMIN_MSG_BOOK", "信息编辑成功,BID:"+bookId);
else
request.getSession().setAttribute("ADMIN_MSG_BOOK", "信息编辑失败,BID:"+bookId);
showBookByAdmin(request, response);
}
/**
* 添加图书
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
protected void addBookByAdmin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取提交的参数
String title = request.getParameter("title");
Double unitPrice = Double.parseDouble(request.getParameter("unitPrice"));
String author = request.getParameter("author");
int categoryId = Integer.parseInt(request.getParameter("categoryId"));
int publisherId = Integer.parseInt(request.getParameter("publisherId"));
String publishDate = request.getParameter("publishDate");
String isbn = request.getParameter("ISBN");
int wordsCount =Integer.parseInt( request.getParameter("wordsCount"));
String contentDescription = request.getParameter("contentDescription");
String authorDescription = request.getParameter("authorDescription");
//信息完整性校验
if(title==null
|| title.equals("")
|| unitPrice==null
/**
* 根据出版社名称获取图书,并且跳转到图书显示页面
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
protected void queryByPublish(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String bname = request.getParameter("value");
BookDaoImpl dao = new BookDaoImpl();
List<Books> searchBList = new ArrayList<Books>();
searchBList = dao.getBooksByPublishName(bname);
//封装成分页对象
PageBean<Books> Pager = new PageBean<Books>(1,5,searchBList);
request.getSession().setAttribute("searchBooks", Pager);
response.sendRedirect("search.jsp");
}
/**
* 根据分类名称获取图书,并且跳转到图书显示页面
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
protected void queryByCategoryName(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String bname = request.getParameter("value");
BookDaoImpl dao = new BookDaoImpl();
List<Books> searchBList = new ArrayList<Books>();
searchBList = dao.getBooksByCategoryName(bname);
//封装成分页对象
PageBean<Books> Pager = new PageBean<Books>(1,5,searchBList);
request.getSession().setAttribute("searchBooks", Pager);
response.sendRedirect("search.jsp");
}
/**
* 根据图书Isbn获取图书,并且跳转到图书显示页面
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
protected void queryByIsbn(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String bname = request.getParameter("value");
BookDaoImpl dao = new BookDaoImpl();
List<Books> searchBList = new ArrayList<>();
Books book = dao.getBooksByIsbn(bname);
searchBList.add(book);
//封装成分页对象
PageBean<Books> Pager = new PageBean<Books>(1,5,searchBList);
request.getSession().setAttribute("searchBooks", Pager);
*/
private void bookListByAdmin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
BookDaoImpl dao = new BookDaoImpl();
List<Books> blist = dao.getBookList();
//获取分页
Integer page=1;
String strPage = request.getParameter("page");
if(StringUtil.isNumber(strPage)==false){
}else{
page =Integer.parseInt(strPage);
}
//封装成分页对象
PageBean<Books> Pager = new PageBean<Books>(page,20,blist);
request.getSession().setAttribute("blist", Pager);
response.sendRedirect("admin/booklist.jsp");
}
/**
* 删除图书
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void delBookByAdmin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if(StringUtil.isNumber(request.getParameter("bid"))==false){
response.sendRedirect("admin/booklist.jsp");
return;
}
int bookId = Integer.parseInt(request.getParameter("bid"));
BookDaoImpl dao = new BookDaoImpl();
boolean b = dao.delBookBookId(bookId);
//存入操作信息
if(b==true){
request.getSession().setAttribute("ADMIN_MSG_BOOK","删除成功");
}else{
request.getSession().setAttribute("ADMIN_MSG_BOOK","删除失败");
}
bookListByAdmin(request, response);
}
/**
* 进入编辑图书页面
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void showBookByAdmin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if(StringUtil.isNumber(request.getParameter("bid"))==false){
* @param response
* @throws ServletException
* @throws IOException
*/
protected void queryByIsbn(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String bname = request.getParameter("value");
BookDaoImpl dao = new BookDaoImpl();
List<Books> searchBList = new ArrayList<>();
Books book = dao.getBooksByIsbn(bname);
searchBList.add(book);
//封装成分页对象
PageBean<Books> Pager = new PageBean<Books>(1,5,searchBList);
request.getSession().setAttribute("searchBooks", Pager);
response.sendRedirect("search.jsp");
}
/**
* 根据图书Id获取图书,并且跳转到购买页面
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
protected void buyBook(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
///获取图书Id
int id =Integer.parseInt(request.getParameter("bid"));
BookDaoImpl dao = new BookDaoImpl();
Books book = dao.getBooksById(id);
request.getSession().setAttribute("buyBook", book);
response.sendRedirect("buy.jsp");
}
/**
* 根据分类Id获取图书
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
protected void queryByCategory(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
///获取分类Id
int cId =Integer.parseInt(request.getParameter("cid"));
BookDaoImpl dao = new BookDaoImpl();
List<Books> searchBList = dao.getBooksByCategoryId(cId);
Integer page=1;
//获取分页
String strPage = request.getParameter("page");
if(strPage==null || "".equals(strPage)){
}else{
page =Integer.parseInt(strPage);
}
//将user对象存入session中,便于前台使用
request.getSession().setAttribute("user", user);
response.sendRedirect("admin/index.jsp");
return;
}else{
response.sendRedirect("admin/login.jsp");
return;
}
}
/**
* 用户注销退出
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
protected void logout(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//从session中获取用户信息
Users user = (Users) request.getSession().getAttribute("user");
if(user!=null){
request.getSession().removeAttribute("user");
}
response.sendRedirect("login.jsp");
}
protected void show(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.sendRedirect("user/user.jsp");
}
/**
* 管理员注销退出
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
protected void logoutByAdmin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//从session中获取用户信息
Users user = (Users) request.getSession().getAttribute("user");
if(user!=null){
request.getSession().removeAttribute("user");
}
response.sendRedirect("admin/login.jsp");
}
/**
* 修改用户信息
* @param request
* @param response
* @throws ServletException
clearCart(request, response);
}else if(opt.equals("show")){
showCart(request, response);
}else if(opt.equals("inAmount")){
inAmount(request, response);
}else if(opt.equals("deAmount")){
deAmount(request, response);
}else{
response.sendRedirect("index.jsp");
}
}
/**
* 添加商品到购物车
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
protected void buyCart(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ShoppingCart cart = (ShoppingCart) request.getSession().getAttribute("cart");
if(cart==null){
cart = new ShoppingCart();
}
//获取购买数量
String strNum = request.getParameter("num");
if(!StringUtil.isNumber(strNum))
strNum="1";
int num = Integer.parseInt(strNum);
//获取图书信息
String isbn = request.getParameter("isbn");
BookDaoImpl dao = new BookDaoImpl();
Books book = dao.getBooksByIsbn(isbn);
//把商品添加到购物车
cart.add(book, num);
request.getSession().setAttribute("cart",cart);
//跳转页面
response.sendRedirect("addcartok.jsp");
}
protected void clearCart(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ShoppingCart cart = (ShoppingCart) request.getSession().getAttribute("cart");
if(cart!=null){
return;
}
}
/**
* 用户登录
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
protected void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ShoppingCart cart = (ShoppingCart) request.getSession().getAttribute("cart");
if(cart==null){
cart = new ShoppingCart();
}
//获取参数
String name = request.getParameter("loginId");
String pwd = request.getParameter("loginPwd");
//调用登录验证
UserDaoImpl dao = new UserDaoImpl();
Users user = dao.doLogin(name, pwd);
if(user!=null){
//将user对象存入session中,便于前台使用
request.getSession().setAttribute("user", user);
response.sendRedirect("index.jsp");
return;
}else{
response.sendRedirect("login.jsp");
return;
}
}
/**
* 管理员登录
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
protected void loginByAdmin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ShoppingCart cart = (ShoppingCart) request.getSession().getAttribute("cart");
if(cart==null){
String name = request.getParameter("loginId");
String pwd = request.getParameter("loginPwd");
//调用登录验证
UserDaoImpl dao = new UserDaoImpl();
Users user = dao.doLogin(name, pwd);
if(user!=null){
//将user对象存入session中,便于前台使用
request.getSession().setAttribute("user", user);
response.sendRedirect("index.jsp");
return;
}else{
response.sendRedirect("login.jsp");
return;
}
}
/**
* 管理员登录
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
protected void loginByAdmin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ShoppingCart cart = (ShoppingCart) request.getSession().getAttribute("cart");
if(cart==null){
cart = new ShoppingCart();
}
//获取参数
String name = request.getParameter("loginId");
String pwd = request.getParameter("loginPwd");
//调用登录验证
UserDaoImpl dao = new UserDaoImpl();
Users user = dao.doLoginByAdmin(name, pwd);
if(user!=null){
//将user对象存入session中,便于前台使用
request.getSession().setAttribute("user", user);
response.sendRedirect("admin/index.jsp");
return;
}else{
response.sendRedirect("admin/login.jsp");
return;
}
}
/**
* 用户注销退出
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
protected void logout(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//从session中获取用户信息
* @param response
* @throws ServletException
* @throws IOException
*/
protected void optByAdmin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String opt = request.getParameter("opt");
//判断是否登录
Users user = (Users) request.getSession().getAttribute("user");
if(user==null || user.getUserRoleId()!=3){
response.sendRedirect("admin/login.jsp");
return;
}
//添加分类
if(opt.equals("add")){
addCategoryByAdmin(request, response);
}
//编辑分类
if(opt.equals("edit")){
editCategoryByAdmin(request, response);
}
}
/**
* 添加分类
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
protected void addCategoryByAdmin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取提交的参数
String name = request.getParameter("name");
//信息完整性校验
if(name==null || name.equals("")){
request.getSession().setAttribute("ADMIN_MSG_CATEGORY", "添加失败,请检查分类是否合法输入");
response.sendRedirect("admin/categorylist.jsp");
return;
}
//封装对象
Categories cate = new Categories();
cate.setName(name);
//调用dao层方法
CategoriesDaoImpl dao = new CategoriesDaoImpl();
if(dao.addCategory(cate)){
request.getSession().setAttribute("ADMIN_MSG_CATEGORY", "添加成功");
//初始化分类集合
initCategory(request, response);
}else{
request.getSession().setAttribute("ADMIN_MSG_CATEGORY", "添加失败");
}
//页面跳转
response.sendRedirect("admin/categorylist.jsp");
}
/**
//页面跳转
if(dao.addUser(user)){
request.getSession().setAttribute("ADMIN_MSG_USER", "添加成功,用户名:"+loginId);
userListByAdmin(request, response);
}else{
request.getSession().setAttribute("ADMIN_MSG_USER", "添加失败!");
response.sendRedirect("admin/useradd.jsp");
}
}
}
/**
* Book操作servlet类
*
*/
@WebServlet("/BookServlet")
public class BookServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public BookServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/**
* 初始化分类集合
* @param request
* @param response
*/
private void initPublisher(HttpServletRequest request, HttpServletResponse response){
//获取图书分类
PublisherDaoImpl dao = new PublisherDaoImpl();
List<Publishers> plist = dao.getPublisher();
request.getServletContext().setAttribute("plist", plist);
}
}
@WebServlet("/OrderServlet")
public class OrderServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public OrderServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
@WebServlet("/OrderServlet")
public class OrderServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public OrderServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//判断是否登录
if(request.getSession().getAttribute("user")==null){
//跳转页面
response.sendRedirect("login.jsp");
return;
}
//判断操作
String opt = request.getParameter("opt");
if(opt.equals("add")){
addOrder(request, response);
}
if(opt.equals("show")){
showOrder(request, response);
}
}
/**
* 添加订单
* @param request
* @param response
* @throws ServletException
else if(opt.equals("show")){
showBookByAdmin(request, response);
}
else if(opt.equals("edit")){
editBookByAdmin(request, response);
}
else if(opt.equals("add")){
addBookByAdmin(request, response);
}
}
/**
* 根据书名获取图书,并且跳转到图书显示页面
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
protected void queryByTitle(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String bname = request.getParameter("value");
BookDaoImpl dao = new BookDaoImpl();
List<Books> searchBList = new ArrayList<Books>();
searchBList = dao.getBooksByTitle(bname);
//封装成分页对象
PageBean<Books> Pager = new PageBean<Books>(1,5,searchBList);
request.getSession().setAttribute("searchBooks", Pager);
response.sendRedirect("search.jsp");
}
/**
* 根据出版社名称获取图书,并且跳转到图书显示页面
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
protected void queryByPublish(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String bname = request.getParameter("value");
BookDaoImpl dao = new BookDaoImpl();
List<Books> searchBList = new ArrayList<Books>();
searchBList = dao.getBooksByPublishName(bname);
//封装成分页对象
PageBean<Books> Pager = new PageBean<Books>(1,5,searchBList);
request.getSession().setAttribute("searchBooks", Pager);
response.sendRedirect("search.jsp");
}
Users user = dao.doLogin(name, pwd);
if(user!=null){
//将user对象存入session中,便于前台使用
request.getSession().setAttribute("user", user);
response.sendRedirect("index.jsp");
return;
}else{
response.sendRedirect("login.jsp");
return;
}
}
/**
* 管理员登录
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
protected void loginByAdmin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ShoppingCart cart = (ShoppingCart) request.getSession().getAttribute("cart");
if(cart==null){
cart = new ShoppingCart();
}
//获取参数
String name = request.getParameter("loginId");
String pwd = request.getParameter("loginPwd");
//调用登录验证
UserDaoImpl dao = new UserDaoImpl();
Users user = dao.doLoginByAdmin(name, pwd);
if(user!=null){
//将user对象存入session中,便于前台使用
request.getSession().setAttribute("user", user);
response.sendRedirect("admin/index.jsp");
return;
}else{
response.sendRedirect("admin/login.jsp");
return;
}
}
/**
* 用户注销退出
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
protected void logout(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//从session中获取用户信息
Users user = (Users) request.getSession().getAttribute("user");
if(user!=null){
request.getSession().removeAttribute("user");
CategoriesDaoImpl dao = new CategoriesDaoImpl();
List<Categories> clist = dao.getCategories();
request.getServletContext().setAttribute("clist", clist);
}
}
/**
* Category操作servlet类
*
*/
@WebServlet("/PublisherServlet")
public class PublisherServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public PublisherServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//String opt = request.getParameter("opt");
String role = request.getParameter("role");
//判断是否为管理员操作
if(role!=null && role.equals("3")){
optByAdmin(request, response);
return;
}
}