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

1、项目背景

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

2、项目功能

手机端网站

首页

 书籍详情页

 评论区

 登陆界面

 后台管理登陆界面

 书籍管理

短评管理

 3、项目使用技术

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

4、 主要技术点

SSM整合配置 

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

Kaptcha验证码组件使用

package com.imooc.reader.controller;

import com.google.code.kaptcha.Producer;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

import javax.annotation.Resource;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.IOException;

// 验证码
@Controller
public class KaptchaController {
    @Resource
    private Producer kaptchaProducer;

    @GetMapping("/verify_code")
    public void createVerifyCode(HttpServletRequest request , HttpServletResponse response) throws IOException {
        //响应立即过期
        response.setDateHeader("Expires",0);
        //不缓存任何图片数据
        response.setHeader("Cache-Control" , "no-store,no-cache,must-revalidate");
        response.setHeader("Cache-Control" , "post-check=0,pre-check=0");
        response.setHeader("Pragma" , "no-cache");
        response.setContentType("image/png");
        //生成验证码字符文本
        String verifyCode = kaptchaProducer.createText();
        request.getSession().setAttribute("kaptchaVerifyCode",verifyCode);
        BufferedImage image = kaptchaProducer.createImage(verifyCode);//创建验证码图片
        ServletOutputStream out = response.getOutputStream();
        ImageIO.write(image, "png", out);//输出图片流
        out.flush(); //立即输出
        out.close(); // 关闭流
    }

}

Spring Task任务调度

package com.imooc.reader.task;

import com.imooc.reader.service.BookService;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

/**
 * 完成自动计算任务
 */
@Component
public class ComputeTask {
    @Resource
    private BookService bookService;
    //任务调度  cson表达式
    @Scheduled(cron = "0 * * * * ?")
    public void updateEvaluation(){
        bookService.updateEvaluation();
        System.out.println("已更新所有图书评分");
    }
}

拦截器的使用

package com.imooc.reader.interceptor;

import com.imooc.reader.enity.Member;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

// 拦截后台管理系统页面,必须进行登陆
public class LoginInterceptor implements HandlerInterceptor {

    //方法执行之前拦截
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        HttpSession session = request.getSession();
        Member member = (Member) session.getAttribute("loginManagementMember");
        //true 放行 false拦截
        if(member!=null){
            return true;
        }
        //如果没有登录成功,或者没有先进入拦截页面进行登录,将跳转到拦截页面
        response.sendRedirect("/management/login.html");
        return false;
    }

    //方法接收请求之后,解析视图之前拦截
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

    }

    //方法执行完毕,视图渲染结束之后执行
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

    }
}

5、项目难点

管理模块的分页管理

会员阅读状态变更

验证会员登陆状态

图片上传

6、存在缺陷

后台没写对应的用户管理

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

其他的欢迎补充。。。

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

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

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值