• Java项目--书评网信息系统


    1、项目背景

    在学习完ssm相关知识后,有了基础能力就想通过完成一个javaweb项目来巩固自己所学知识以及在具体开发过程中找出自己的不足因此便完成了书评网信息系统。

    2、项目功能

    手机端网站

    首页

     书籍详情页

     评论区

     登陆界面

     后台管理登陆界面

     书籍管理

    短评管理

     3、项目使用技术

    开发平台: java 、idea、maven
    技术栈:spring、springMvc、Mybatis、MyBatis-Plus、FreeMaker、BootStrap、LayUI

    4、 主要技术点

    SSM整合配置 

    Mybatis-Plus配置与应用
    Boostrap UI框架入门

    Kaptcha验证码组件使用

    1. package com.imooc.reader.controller;
    2. import com.google.code.kaptcha.Producer;
    3. import org.springframework.stereotype.Controller;
    4. import org.springframework.web.bind.annotation.GetMapping;
    5. import javax.annotation.Resource;
    6. import javax.imageio.ImageIO;
    7. import javax.servlet.ServletOutputStream;
    8. import javax.servlet.http.HttpServletRequest;
    9. import javax.servlet.http.HttpServletResponse;
    10. import java.awt.image.BufferedImage;
    11. import java.io.IOException;
    12. // 验证码
    13. @Controller
    14. public class KaptchaController {
    15. @Resource
    16. private Producer kaptchaProducer;
    17. @GetMapping("/verify_code")
    18. public void createVerifyCode(HttpServletRequest request , HttpServletResponse response) throws IOException {
    19. //响应立即过期
    20. response.setDateHeader("Expires",0);
    21. //不缓存任何图片数据
    22. response.setHeader("Cache-Control" , "no-store,no-cache,must-revalidate");
    23. response.setHeader("Cache-Control" , "post-check=0,pre-check=0");
    24. response.setHeader("Pragma" , "no-cache");
    25. response.setContentType("image/png");
    26. //生成验证码字符文本
    27. String verifyCode = kaptchaProducer.createText();
    28. request.getSession().setAttribute("kaptchaVerifyCode",verifyCode);
    29. BufferedImage image = kaptchaProducer.createImage(verifyCode);//创建验证码图片
    30. ServletOutputStream out = response.getOutputStream();
    31. ImageIO.write(image, "png", out);//输出图片流
    32. out.flush(); //立即输出
    33. out.close(); // 关闭流
    34. }
    35. }

    Spring Task任务调度

    1. package com.imooc.reader.task;
    2. import com.imooc.reader.service.BookService;
    3. import org.springframework.scheduling.annotation.Scheduled;
    4. import org.springframework.stereotype.Component;
    5. import javax.annotation.Resource;
    6. /**
    7. * 完成自动计算任务
    8. */
    9. @Component
    10. public class ComputeTask {
    11. @Resource
    12. private BookService bookService;
    13. //任务调度 cson表达式
    14. @Scheduled(cron = "0 * * * * ?")
    15. public void updateEvaluation(){
    16. bookService.updateEvaluation();
    17. System.out.println("已更新所有图书评分");
    18. }
    19. }

    拦截器的使用

    1. package com.imooc.reader.interceptor;
    2. import com.imooc.reader.enity.Member;
    3. import org.springframework.web.servlet.HandlerInterceptor;
    4. import org.springframework.web.servlet.ModelAndView;
    5. import javax.servlet.http.HttpServletRequest;
    6. import javax.servlet.http.HttpServletResponse;
    7. import javax.servlet.http.HttpSession;
    8. // 拦截后台管理系统页面,必须进行登陆
    9. public class LoginInterceptor implements HandlerInterceptor {
    10. //方法执行之前拦截
    11. @Override
    12. public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    13. HttpSession session = request.getSession();
    14. Member member = (Member) session.getAttribute("loginManagementMember");
    15. //true 放行 false拦截
    16. if(member!=null){
    17. return true;
    18. }
    19. //如果没有登录成功,或者没有先进入拦截页面进行登录,将跳转到拦截页面
    20. response.sendRedirect("/management/login.html");
    21. return false;
    22. }
    23. //方法接收请求之后,解析视图之前拦截
    24. @Override
    25. public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
    26. }
    27. //方法执行完毕,视图渲染结束之后执行
    28. @Override
    29. public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    30. }
    31. }

    5、项目难点

    管理模块的分页管理

    会员阅读状态变更

    验证会员登陆状态

    图片上传

    6、存在缺陷

    后台没写对应的用户管理

    点赞可以无限点,没有限制次数

    其他的欢迎补充。。。

    7、项目源码
    由于篇幅问题此处不适宜放置所有源码如有需要请从下方链接获取(包括数据库的创建以及初始化)

    书评网信息系统: 在学习完SSM相关知识后,有了基础能力就想通过完成一个java项目来巩固自己所学知识以及在具体开发过程中找出自己的不足,,因此便完成了书评网信息管理系统。https://gitee.com/yang-haibo1111/reader

  • 相关阅读:
    《FPGA设计实战演练》学习笔记(二)FPGA核心板电路设计
    机器学习笔记之马尔可夫链蒙特卡洛方法(四)吉布斯采样
    数据可视化在智慧园区中的核心价值解析
    Swift 学习笔记二(Set篇)
    共享店铺系统如何帮助门店提升业绩?
    探索图像分割技术:使用 OpenCV 的分水岭算法
    java-php-python-ssm流浪动物救助公益平台计算机毕业设计
    三个月我们迁移了100PB数据
    concat方法如何用?
    指针及其他有关的
  • 原文地址:https://blog.csdn.net/bakelFF/article/details/126166062