Springboot阶段项目---《书城项目》

2024-05-24 13:36

本文主要是介绍Springboot阶段项目---《书城项目》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一 项目介绍

   本项目采用集成开发平台IntelliJ IDEA开发了在线作业成绩统计系统的设计与实现,实现了图书商城系统的综合功能和图形界面的显示,可以根据每个用户登录系统后,动态展示书城首页图书,实现了分类还有分页查询,还有用户可以添加图书到购物车,可以查看图书详情等基本功能。Springboot,SpringMVC,Mybatis等技术。

二 功能详细描述

该系统总共分为书城首页展示功能、书本详情功能,购物车功能,页面动态渲染功能,具体功能如下介绍:

(1) 书城首页展示功能:当用户访问首页时,我们会根据书本类型,书本价格,书本上架时间等对从数据库查询到的数据进行一个分页查询。

(2) 书本详情功能:当用户进入首页看见展示的图书后,用户可以通过点击书本从而进入该书本的详情页面,该页面包括了书本所有的详细信息。

(3) 购物车功能:该功能是一个较为核心的功能,首先用户在进入购物车功能之前,我们会先判断用户是否已经登录,我们使用的springMVC提供的拦截器进行实现,因为查询购物车的信息需要使用用户id。在进入购物车之后,首先我们会根据用户的id和购物车信息进行多表联查,将查询到的数据同样根据图书的分类,价格已经上架时间使用分页查询进行动态展示。同时,购物车也提供了对物品基本的删除,价格统计等功能。

(4) 页面动态渲染。该功能前端主要是使用jQuery来写的前端页面,然后通过ajax与后端进行交互,得到动态数据渲染在前端页面。

三 数据库表的设计

     本项目主要四张表,分别是用户信息表,用于存储用户的基本信息;图书信息表,用于展示图书的基本信息;图书分类表,用于后续对图书进行分类展示;购物车信息表,用于表示每个用户收藏购物车图书的信息。

     下面将分别展示每一张表的设计:

 

 

四 技术实现和难点 

 4.1 登录注册功能

        该功能没有什么特别大的难点,主要需要注意两点,第一点就是我们需要使用自定义全局异常处理器,对用户名和密码的正确性进行一个自定义的异常信息抛出。另外一点就是,为了方便后面业务逻辑的进行,我们在登录成功后,需要把用户的信息存入Session中,后面需要用的时候可以随时取。

4.2 书城首页功能

       该功能是比较核心的功能,它几乎包揽了我们平时使用的curd,但是稍微复杂一点的就是,我们需要根据前端数据动态查询sql。比如我们需要进行图书的分类查询,也可能需要根据价格或者上架时间来查询。另外一点就是分页查询,这个也是我们必须要掌握的。

4.3 购物车功能

       该功能和首页类型,也是对图书进行curd,但是他有一点需要注意,就是我们在进入购物车功能之前需要先进行判断用户是否已经登录,如果没有登录是不能进入购物车功能的,因为购物车的数据需要使用已经登录用户的uid进行数据库查询。所以这里就需要使用拦截器,对购物车请求进行拦截,先判断用户是否登录,如果登录了拦截器才会放行该请求。

4.4 浏览历史功能

       该功能暂未实现。因为我有一种思路就是再建一个表,然后根据该表中的时间字段进行排序查找,只根据最近时间展示前两本书数据,但是因为项目并没有给我们这个表,所以有点不科学。然后又想到了第二种方法,就是把游览的书本数据存入到前端的cookie或者Session中,然后再去里面拿,但是因为还没有试过,不知道怎么解决拿到最近两本书的信息,后面会再进行功能补充。

五 基本页面运行展示

5.1登录注册页面

5.2书城首页页面 

 

5.3购物车页面

 六 设计感言

作为计算机学院的学生,我觉得能做类似的课程设计是十分有意义,而且十分必要的。经过一周的课程设计,我成功的实现了成绩导入,数据查询,统计,删改等基本功能。

本次的课程提高了我编辑代码的能力和分析问题的能力,让我充分利用专业课程所学的知识来解决问题。也解决了我平时拖沓这种不好的学习习惯,增强了学习兴趣。学习的过程有乐趣也有困难,通过查阅课本,参考了网上的设计流程还有老师的讲解逐渐完成了本次任务。

写完运行时出现了很多问题,通过请教老师讲解不会的难点,解决了哈夫曼树如何打印在文档中的问题。并且与同学们的与分享解决了很多的基本问题。最后本次的课程设计使我学到了很多有用的东西,对今后的学习也有了很多帮助。

此次课程设计给我印象最深的就是通过对这个课题的训练,使我基本掌握了Java编程的基础知识,主体模块与功能模块的结合技巧、方法,让我发现了自己的不足之处而且学会了如何查找资料,提高了我的自学能力,也锻炼了我分析问题、解决问题的能力!边学边用这样才会提高效率,也提高了自己对专业的兴趣!

最后该项目的源码我已经放在了我主页的资源里面,名字叫做《书城项目》,另外如果有需要交课设的同学,可以找我拿项目文档。

这篇关于Springboot阶段项目---《书城项目》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/998556

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p