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

2023-05-16

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java项目--书评网信息系统 的相关文章

随机推荐

  • RFC8314文档中对465端口和587端口的阐述

    最近在学习SMTP的时候发现SMTP在使用加密传输的时候涉及到465和587两个端口 xff0c 网上对两者之间的区别众说纷纭 xff0c 后来查到了RFC官方文档中对于这个争论较久的问题的定义和详细说明 xff0c 这里做转载和翻译用于记
  • nginx篇08-添加客户端证书认证

    本文主要介绍如何使用给nginx服务添加客户端证书认证从而实现双向加密 对于一般的https网站来说 xff0c 实际上https所使用的证书是属于单向验证 xff0c 即客户端单向验证服务器的安全性 xff0c 而服务器端是没有对客户端的
  • Linux 查找搜索命令 5种方式

    一 whereis命令 该指令会在特定目录中查找符合条件的文件 这些文件应属于原始代码 二进制文件 xff0c 或是帮助文件 该指令只能用于查找二进制文件 源代码文件和man手册页 xff0c 一般文件的定位需使用locate命令 简单理解
  • SUMO学习

    SUMO学习 SUMO简介1 车道模型2 跟驰模型跟驰模型CACC 3 变道模型1 Strategic change 战略变道2 Cooperative change 协同变道3 Tactical change 战术变道4 Obligato
  • 51单片机学习笔记4 -- 蜂鸣器控制

    蜂鸣器控制 1 蜂鸣器简介1 分类2 有源蜂鸣器和无源蜂鸣器3 区分有源蜂鸣器和无源蜂鸣器4 蜂鸣器驱动电路 2 电路图绘制3 蜂鸣器控制4 程序补充 1 蜂鸣器简介 蜂鸣器是一种一体化结构的电子讯响器 xff0c 采用直流电压供电 xff
  • 树莓派3B+安装系统,配置基本环境、更换国内镜像源,适用pi4

    树莓派3B 43 安装系统 系统镜像下载 树莓派官方镜像下载地址 xff1a 自行百度 xff0c 官方网站首页 xff0c 点击Downloads 安装镜像 准备一张8G以上的内存卡 xff0c 推荐16G以上 下载系统制作软件etche
  • Linux超强截图工具flameshot

    Pop OS自带的截屏快捷键如下 但讲道理这个是真的不好用 所以我们借助第三方的截图工具 xff0c 这里推荐flameshot 火焰截图 在终端键入以下命令即可安装 span class token function sudo span
  • 5/1-3 BP神经网络的改进及MATLAB实现(下)

    5 1 3 BP神经网络的改进及MATLAB实现 xff08 下 xff09 文章目录 5 1 3 BP神经网络的改进及MATLAB实现 xff08 下 xff09 1 自适应梯度下降法 xff08 Adagrad xff09 2 动量法
  • “操作无法完成因为其中的文件夹或文件已在另一个程序中打开”解决办法

    在windows系统中 xff0c 我们经常会遇到这样一个问题 xff1a 删除某一个文件或者文件夹 xff0c 被提醒 xff1a 操作无法完成 xff0c 因为其中的文件夹或文件已在另一个程序中打开 这个时候我们一般会先检查是否真的有程
  • windows下N卡提取或者刷VBIOS

    windows下N卡提取或者刷VBIOS 这里是简介 xff1a 在windows下怎么提取出显卡的VBIOS和刷VBIOS引用 本文已 GeForce MX450显卡为例 xff0c 需要借助工具 lt 1 gt 工具介绍 xff08 N
  • 论文:Threat of Adversarial Attacks on Deep Learning in Computer Vision: A Survey翻译工作

    关于对抗性攻击对深度学习威胁的研究 Naveed Akhtar and Ajmal Mian ACKNOWLEDGEMENTS The authors thank Nicholas Carlini UC Berkeley and Dimit
  • 802.1x认证方式(EAP中继认证与EAP终结认证)

    文章目录 1 前言2 协议说明3 报文分析EAP中继模式 MD5 challengeEAP终结模式 MD5 challengeRadius CHAP认证原理Message Authenticator消息验证器计算参考连接 xff1a 1 前
  • ubuntu 换源深层次解析

    换源也是一个容易出错的问题 xff0c 本文以树莓派为例展开 xff0c x86也是一样的操作 那么假设成立的话 xff0c 就要记住我们是在树莓派 xff08 arm xff09 上安装的ubuntu xff0c 不是X86 xff0c
  • MySql数据库查询(一)——单表查询

    1 查询所有字段 SELECT FROM 表名称 xff1b 例如查询book表中所有的数据 xff1a select from book 2 查询指定字段 SELECT 字段1 xff0c 字段2 xff0c 字段3 FROM 表名称 x
  • Linux系统安装Anaconda

    本文软件信息 xff1a 系统 xff1a RHEL8软件 xff1a Anaconda3 2022 10 Linux x86 64 sh Linux安装Anaconda的步骤都一样 xff0c 没啥差别 下载Anaconda的安装包 在官
  • 基于TensorFlow的VGG16模型源码

    我看了网上的一些源码程序 xff0c 自己下载跑一哈 xff0c 发现有很多的错误 xff0c 不知道是我电脑原因 xff0c 还是tensorflow版本问题 xff0c 我自己基于别人的源码修改了一些细节 xff0c 使程序可以顺利运行
  • 【vscode】c++使用vector报错ERROR: Unable to start debugging. Unexpected GDB output from command “-exec-run

    完整报错是在DEBUG CONSOLE ERROR Unable to start debugging Unexpected GDB output from command 34 exec run 34 During startup pro
  • Maven依赖改为Gradle写法

    Maven写法 lt dependency gt lt groupId gt org apache poi lt groupId gt lt artifactId gt poi lt artifactId gt lt version gt
  • 构造方法

    构造方法可以重载 xff08 可以直接给方法变量进行赋值 xff0c 方便些 xff0c 减少setter xff0c getter方法的使用 xff0c 但不是说setter xff0c getter方法没用 xff09 注意事项 xff
  • Java项目--书评网信息系统

    1 项目背景 在学习完ssm相关知识后 xff0c 有了基础能力就想通过完成一个javaweb项目来巩固自己所学知识以及在具体开发过程中找出自己的不足因此便完成了书评网信息系统 2 项目功能 手机端网站 首页 书籍详情页 评论区 登陆界面