基于javaweb+jsp的图片展览馆管理系统(java+Springboot+SpringMVC+JPA+Jsp+maven+mysql)
一、项目运行
环境配置:
Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)
项目技术:
Springboot+ SpringMVC + JPA+ Jsp + Html+ JavaScript + JQuery + Ajax + maven等等
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
resp.getWriter().print("<script>alert('请填写分类名称')</script>");
resp.getWriter().print("<script>location.href='../admin/editCategory.jsp'</script>");
return;
}
service.editCategory(category);
resp.getWriter().write("<div style='text-align: center;margin-top: 260px'><img src='" + req.getContextPath()
+ "/img/duigou.png'/>修改成功!</div>");
}
private void delCategory(HttpServletRequest req, HttpServletResponse resp) throws IOException {
String category_id = req.getParameter("category_id");
service.delCategory(category_id);
resp.getWriter().write("<div style='text-align: center;margin-top: 260px'><img src='" + req.getContextPath()
+ "/img/duigou.png'/>删除成功!</div>");
}
// 通过书籍id找到书籍信息
private Book findBookById(String book_id) {
return service.findBookById(book_id);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
resp.getWriter().print("<script>alert('旧密码填写错误!')</script>");
return;
}
service.managerPassword(username, password);
resp.getWriter().write("<div style='text-align: center;margin-top: 260px'><img src='" + req.getContextPath()
+ "/img/duigou.png'/>修改成功!</div>");
}
private void layout(HttpServletRequest req, HttpServletResponse resp) {
try {
HttpSession session = req.getSession();
session.removeAttribute("admin");
resp.sendRedirect("../admin/managerLogin.jsp");
} catch (Exception e) {
e.printStackTrace();
}
}
private void addBookUI(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List<Category> categorys = service.findAllCategory();
req.setAttribute("cs", categorys);
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
管理员登录服务:
@WebServlet("/admin/ManagerServlet")
public class ManagerServlet extends HttpServlet {
private ManagerService service = new ManagerServiceImpl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
String op = req.getParameter("op");// 得到传过来的请求
CartItem cItem = me.getValue();
Orderitem oItem = new Orderitem();
oItem.setId(genOrdernum());
oItem.setBook(cItem.getBook());
oItem.setPrice(cItem.getMoney());
oItem.setQuantity(cItem.getQuantity());
oItem.setOrdernum(ordernum);
oItems.add(oItem);
}
// 建立订单项和订单的关系
order.setItems(oItems);
service.genOrder(order);
req.setAttribute("order", order);
req.getSession().removeAttribute("cart");
req.removeAttribute("cart");
req.getRequestDispatcher("/order.jsp").forward(req, resp);
}
// 生成订单号
private String genOrdernum() {
String book_author = req.getParameter("book_author");
String book_press = req.getParameter("book_press");
String book_desc = req.getParameter("book_desc");
double book_price = Double.parseDouble(req.getParameter("book_price"));
String book_kunumber = req.getParameter("book_kunumber");
String categoryId = req.getParameter("categoryid");
Category findCategoryById = service.findCategoryById(categoryId);
service.editBook(book_id, book_name, book_author, book_press, book_desc, book_price, book_kunumber,findCategoryById);
resp.getWriter().write("<div style='text-align: center;margin-top: 260px'><img src='" + req.getContextPath()
+ "/img/duigou.png'/>修改成功!</div>");
}
private void delBook(HttpServletRequest req, HttpServletResponse resp) throws IOException {
String book_id = req.getParameter("book_id");
}
private void getCategoryBook(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List<Book> books = service.getCategoryBook(req.getParameter("cid"));// 文学艺术类书籍
List<Category> categoryList = service.findAllCategory();// 分类
req.setAttribute("books", books);
req.setAttribute("categoryList", categoryList);
req.setAttribute("currentName", "");
req.getRequestDispatcher("/admin/booksList.jsp").forward(req, resp);
}
private void editBookUI(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String book_id = req.getParameter("book_id");
Book book = findBookById(book_id);
List<Category> category = service.findAllCategory();
HashMap map = new HashMap();
map.put("book", book);
map.put("category", category);
req.setAttribute("map", map);
req.getRequestDispatcher("/admin/editBook.jsp").forward(req, resp);
}
private void editBook(HttpServletRequest req, HttpServletResponse resp) throws FileUploadException, IOException {
if(password==null || password=="") {
req.setAttribute("message", "请填写密码");
req.getRequestDispatcher("/admin/404.jsp").forward(req, resp);
return;
}
HttpSession session = req.getSession();
Administrator admin = service.login(username, password);
if (admin.getUsername() != null && admin.getUsername() != "") {
req.setAttribute("message", "登陆成功");
session.setAttribute("admin", admin);
req.getRequestDispatcher("/admin/message.jsp").forward(req, resp);
} else {
req.setAttribute("message", "账号或密码错误!");
req.getRequestDispatcher("/admin/404.jsp").forward(req, resp);
}
}
private void managerInformation(HttpServletRequest req, HttpServletResponse resp) throws IOException {
String username = req.getParameter("username");
String name = req.getParameter("name");
String sex = req.getParameter("sex");
session.setAttribute("message", "会话已经结束!");
req.getRequestDispatcher("../message.jsp").forward(req, resp);
return;
}
//先判断库存够不够!
Book book = cart.getBook();
String book_id = book.getBook_id();
Book findBookById = clientService.findBookById(book_id);
if(findBookById.getBook_kunumber()-cart.getTotalQuantity()<0) {
session.setAttribute("message", "库存不足,无法购买!");
session.removeAttribute("cart");
req.getRequestDispatcher("../message.jsp").forward(req, resp);
return;
}
Order order = new Order();
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
String op = req.getParameter("op");// 得到传过来的请求
// 管理员登陆
if (op.equals("login")) {
login(req, resp);
}
// 修改管理员资料
if (op.equals("managerInformation")) {
managerInformation(req, resp);
}
// 修改管理员登录密码
if (op.equals("managerPassword")) {
managerPassword(req, resp);
}
// 注销
if (op.equals("layout")) {
layout(req, resp);
}
// 添加书籍前先获取所有分类
if (op.equals("addBookUI")) {
addBookUI(req, resp);
}
HttpSession session = req.getSession();
session.removeAttribute("admin");
resp.sendRedirect("../admin/managerLogin.jsp");
} catch (Exception e) {
e.printStackTrace();
}
}
private void addBookUI(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List<Category> categorys = service.findAllCategory();
req.setAttribute("cs", categorys);
req.getRequestDispatcher("/admin/addBook.jsp").forward(req, resp);
}
private void addBook(HttpServletRequest req, HttpServletResponse resp) throws FileUploadException, IOException {
// 判断表单是不是multipart/form-data类型
boolean isMultipart = ServletFileUpload.isMultipartContent(req);
if (!isMultipart) {
// 修改管理员登录密码
if (op.equals("managerPassword")) {
managerPassword(req, resp);
}
// 注销
if (op.equals("layout")) {
layout(req, resp);
}
// 添加书籍前先获取所有分类
if (op.equals("addBookUI")) {
addBookUI(req, resp);
}
// 添加书籍
}
req.getRequestDispatcher("../showCart.jsp").forward(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
订单服务:
@WebServlet("/order/OrderServlet")
public class OrderServlet extends HttpServlet {
private OrderService service = new OrderServiceImpl();
private ClientServiceImpl clientService=new ClientServiceImpl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
String op = req.getParameter("op");// 得到传过来的请求
// 生成订单
if (op.equals("genOrder")) {
genOrder(req, resp);
}
// 查看订单
if (op.equals("findAllOrders")) {
req.getRequestDispatcher("/admin/managerUsers.jsp").forward(req, resp);
}
private void login(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
String password = req.getParameter("password");
if(username==null || username=="") {
req.setAttribute("message", "请填写用户名");
req.getRequestDispatcher("/admin/404.jsp").forward(req, resp);
return;
}
if(password==null || password=="") {
req.setAttribute("message", "请填写密码");
req.getRequestDispatcher("/admin/404.jsp").forward(req, resp);
return;
}
HttpSession session = req.getSession();
Administrator admin = service.login(username, password);
if (admin.getUsername() != null && admin.getUsername() != "") {
req.setAttribute("message", "登陆成功");
session.setAttribute("admin", admin);
req.getRequestDispatcher("/admin/message.jsp").forward(req, resp);
} else {
HttpSession session = req.getSession();
Administrator admin = service.login(username, password);
if (admin.getUsername() != null && admin.getUsername() != "") {
req.setAttribute("message", "登陆成功");
session.setAttribute("admin", admin);
req.getRequestDispatcher("/admin/message.jsp").forward(req, resp);
} else {
req.setAttribute("message", "账号或密码错误!");
req.getRequestDispatcher("/admin/404.jsp").forward(req, resp);
}
}
private void managerInformation(HttpServletRequest req, HttpServletResponse resp) throws IOException {
String username = req.getParameter("username");
personPassword(req, resp);
}
// 搜索框
if (op.equals("search")) {
search(req, resp);
}
// 详情页面
if (op.equals("particulars")) {
particulars(req, resp);
}
// 添加购物车
if (op.equals("addCart")) {
addCart(req, resp);
}
// 删除购物车中的购物项
if (op.equals("delItem")) {
delItem(req, resp);
}
// 修改购物项数量
if (op.equals("changeNum")) {
HttpSession session = req.getSession();
session.removeAttribute("admin");
resp.sendRedirect("../admin/managerLogin.jsp");
} catch (Exception e) {
e.printStackTrace();
}
}
private void addBookUI(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List<Category> categorys = service.findAllCategory();
req.setAttribute("cs", categorys);
}
private void register(HttpServletRequest req, HttpServletResponse resp) {
try {
String username = req.getParameter("username");
String password = req.getParameter("password");
String name = req.getParameter("name");
String sex = req.getParameter("sex");
String tel = req.getParameter("tel");
String address = req.getParameter("address");
boolean isExist = false;// 判断是否存在该用户
if (!username.equals("") && !password.equals("")) {
isExist = service.register(username, password, name, sex, tel, address);
if (isExist == true) {
resp.getWriter().print("<script>alert('该用户已经注册,请直接登录')</script>");
resp.getWriter().print("<script>location.href='../client/ClientServlet?op=category'</script>");
} else {
resp.getWriter().write("注册成功!");
resp.getWriter().print("<script>location.href='../client/ClientServlet?op=category'</script>");
}
}else {
resp.getWriter().print("<script>alert('请填写账号或密码')</script>");
resp.getWriter().print("<script>location.href='../client/ClientServlet?op=category'</script>");
}
e.printStackTrace();
}
}
// 添加书籍分类
if (op.equals("addCategory")) {
addCategory(req, resp);
}
// 文学艺术类书籍列表
if (op.equals("category")) {
getCategoryBook(req, resp);
}
List<Order> orders = service.findOrders();
HttpSession session = req.getSession();
session.setAttribute("orders", orders);
req.getRequestDispatcher("/admin/managerOrder.jsp").forward(req, resp);
}
private void findAllOrders(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
HttpSession session = req.getSession();
User user = (User) session.getAttribute("user");
List<Order> orders = service.findUserOrders(user);
req.setAttribute("orders", orders);
req.getRequestDispatcher("/person/personOrder.jsp").forward(req, resp);
}
private void genOrder(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
// 取出购物车信息
User user = service.login(username, password);
if (user.getUsername() != null && user.getUsername() != "") {
req.setAttribute("message", "登陆成功");
session.setAttribute("user", user);
req.getRequestDispatcher("/message.jsp").forward(req, resp);
} else {
req.setAttribute("message", "用户名或密码错误,请重新登录");
req.getRequestDispatcher("/message.jsp").forward(req, resp);
}
}
private void layout(HttpServletRequest req, HttpServletResponse resp) {
try {
HttpSession session = req.getSession();
session.removeAttribute("user");// 获取session对象,从session中移除登陆信息
resp.sendRedirect("../client/ClientServlet?op=category");
} catch (Exception e) {
e.printStackTrace();
}
}
private void register(HttpServletRequest req, HttpServletResponse resp) {
try {
}
book.setFilename(filename);
book.setPath(path);
InputStream inputStream = item.getInputStream();
FileOutputStream fos = new FileOutputStream(fileDir);
int len = 0;
while ((len = inputStream.read()) != -1) {
fos.write(len);
}
} catch (IOException e) {
e.printStackTrace();
if (op.equals("managerPassword")) {
managerPassword(req, resp);
}
// 注销
if (op.equals("layout")) {
layout(req, resp);
}
// 添加书籍前先获取所有分类
if (op.equals("addBookUI")) {
addBookUI(req, resp);
}
// 添加书籍
if (op.equals("addBook")) {
try {
addBook(req, resp);
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 添加书籍分类
req.setAttribute("book", book);
req.getRequestDispatcher("/particulars.jsp").forward(req, resp);
}
// 通过书籍id找到书籍信息
private Book findBookById(String book_id) {
Book book = service.findBookById(book_id);
return book;
}
private void addCart(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
String book_id = req.getParameter("book_id");
Book book = findBookById(book_id);
HttpSession session = req.getSession();
Cart cart = (Cart) session.getAttribute("cart");
if (cart == null) {
cart = new Cart();
String strTime = simpleDateFormat.format(time);
// path属性filename
String path = strTime +File.separator + "books";// 存放到book对象中的路径
// String path = "books";// 存放到book对象中
String filename = fileName + "." + fileType;
// fileDir:图片最终存在于fileDir
File fileDir = new File(dirImages, path + File.separator + filename);
// InputStream inputStream = item.getInputStream(); 从请求 对象中 通过流的方式
// 把 上传的文件加载到 内存中 构建输出流
File parentDir = new File(dirImages, path);// 父目录
if (!parentDir.exists()) {
parentDir.mkdirs();
}
book.setFilename(filename);
book.setPath(path);
InputStream inputStream = item.getInputStream();
FileOutputStream fos = new FileOutputStream(fileDir);
int len = 0;
while ((len = inputStream.read()) != -1) {
fos.write(len);
}
} catch (IOException e) {
e.printStackTrace();
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 删除书籍
if (op.equals("delBook")) {
delBook(req, resp);
}
// 获取书籍分类列表
if (op.equals("categoryList")) {
categoryList(req, resp);
}
// 获得分类信息
if (op.equals("editCategoryUI")) {
Book book = cart.getBook();
String book_id = book.getBook_id();
Book findBookById = clientService.findBookById(book_id);
if(findBookById.getBook_kunumber()-cart.getTotalQuantity()<0) {
session.setAttribute("message", "库存不足,无法购买!");
session.removeAttribute("cart");
req.getRequestDispatcher("../message.jsp").forward(req, resp);
return;
}
Order order = new Order();
order.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
String ordernum = genOrdernum();
order.setOrdernum(ordernum);
order.setQuantity(cart.getTotalQuantity());
order.setMoney(cart.getTotalMoney());
order.setUser(user);
// 订单项
List<Orderitem> oItems = new ArrayList<Orderitem>();
for (Map.Entry<String, CartItem> me : cart.getItmes().entrySet()) {
CartItem cItem = me.getValue();
Orderitem oItem = new Orderitem();
oItem.setId(genOrdernum());
oItem.setBook(cItem.getBook());
oItem.setPrice(cItem.getMoney());