Giter Site home page Giter Site logo

xenv / s-mall-ssm Goto Github PK

View Code? Open in Web Editor NEW
633.0 23.0 178.0 2.85 MB

小小商城系统,JavaWEB项目,基于SSM,仿天猫页面,功能齐全,实现了自动处理关联查询的通用Mapper、抽象 BaseService 类、注解鉴权、参数注解校验等

License: GNU General Public License v3.0

Java 90.36% CSS 7.80% JavaScript 1.84%
javaweb ssm spring-mvc spring java mybatis mybatis-generator aop annotations

s-mall-ssm's Introduction

小小商城系统 - SSM版

练手 JavaWEB 项目,本版本为SSM版。本项目实现了通用 Mapper,免写 SQL,全自动处理关联查询。通过合理配置 MyBatis Generator 和自定义插件,灵活隔离手写代码和自动生成代码。实现了 BaseService 类对 Service 层进行抽象。通过拦截器实现了方法级粒度的鉴权,通过AOP实现了参数校验。


演示https://small.ડ.com/
可自行注册账号,或使用后台查看权限账号 demo 密码 demo (后台入口登陆后显示)

兄弟项目:
SSH版(实现了SSM版95%功能)
Servlet版(实现了SSM版85%功能)


本项目的亮点:

  • 功能齐全,页面丰富,实现了小商城的大部分功能
  • 前端仿天猫2017页面,基于原生 CSS(前台)、Bootstrap(后台)、Jquery、Bootstrap Js 构建
  • 本项目为 Maven 项目,后端使用 Spring 4 + SpringMVC 4 + Mybatis 3.4 + aspectj 1.8
  • 实现了一个 通用mapper,免写 SQL,可进行单表和多表关联查询,自动插入一对多/多对一对象(注解配置关联对象,结合 MyBatis Generator )
  • 实现了一个 BaseService 类 ,集成了多条件的查询和增改删操作,普通 Service 只需写少量代码即可
  • 完全隔离 MyBatis Generator 生成代码和额外手写代码,以支持可持续化部署,实现了多个MyBatis Generator插件,全部采用软删除
  • 通过拦截器和自定义注解实现了方法级粒度的用户鉴权 ,不同用户组权限完全隔离
  • 通过 参数注解 进行方法级数据校验,无需额外配置校验类 (通过 AOP 切面实现)
  • 统一的错误处理

讲解文章:

功能:

  • 首页、分类页、搜索页、产品页
  • 购物车页面、下单页、支付页及支付成功页
  • 我的订单页、确认收货及成功页、评价页
  • 登陆页、注册页
  • 全部数据库的后台可视化管理
  • 网站SEO设置、图片路径设置

安装使用:

  1. 若使用IDE打开,需按 Maven 文件安装依赖
  2. 若在Tomcat中部署,Maven文件中已经配置好直接在线部署,使用 maven tomcat7:deploy 可直接在线部署 (需先配置好Tomcat)
  3. 导入数据库small.sql,在 \src\main\resources\jdbc.properties 中配置数据库
  4. 默认后台地址 /admin ,账户密码为 admin 123456 ,新建用户在前台注册,需要后台权限需要在数据库的User表的group_列中将该用户的用户组设置为 superAdmin
  5. JDK >= 1.8、数据库 Mysql

特别注意

  1. 程序只能配置在根目录访问,如 localhost/,不能部署在子文件夹
  2. small.sql 只有数据库结构和 admin 账户密码,没有其他数据。需要自行登录后,在后台手动添加。演示网站的所有数据均为我后台添加,无需手动插入数据库。

s-mall-ssm's People

Contributors

xenv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

s-mall-ssm's Issues

乱码问题以及分类图片的问题

(1)后台添加属性,中文乱码【后台添加分类时中文不乱码】请问一下,是为什么~
(2)分类管理读取图片不出来,是少了一个数据库表来存储图片信息嘛?也没找到分类图片存放目录pictures/category/,能不能问一下~

Stored xss vulnerability exists in order evaluation(订单评价存在XSS漏洞)

How to reproduce steps(如何复现)

Build the project and use admin/123456 to log in and create several test data(搭建项目使用admin/123456登陆创建几条测试数据)
image
Create an ordinary user and click on a product we created to buy(创建一个普通用户随便点击一个我们创建的商品购买)
For the convenience of testing, a free purchase function is provided. Click it(为了方便测试提供了一个免费购买的功能,)
image
First, check my own order, then select the order we just purchased, click to ship by yourself, and finally click to confirm receipt(首先查看我自己的订单其次选择我们刚才购买的订单点击自己发货最后点击确认收货)
image
Use the evaluation function,insert poc <script>alert("undefined123")</script> (使用评价功能,插入poc)
image

受影响的版本

S-mall-ssm: lastest
OS:Windows/Linux/macOS
Browser: Chrome、Firefox、Safair

求教:超链接传值

人气
求教:代码中href属性问号前为空,请问点击“人气”把keyword和sort传给了谁?怎么实现的?我个人以为是传给了当前页面,可把参数传给当前页面不能进行处理,这并不能实现排序。
搜索后排序地址栏是:search?keyword=红富士&sort=comment
分类后排序地址栏是:category?id=12&sort=comment

没有商品展示

截图1571062426
我连接了数据库运行项目后为什么没有商品展示出来,想问,搜索栏也搜索不了

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'tmall.config' doesn't exist at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'tmall.config' doesn't exist
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

不全选购物车中商品进行结算时,确认订单信息界面显示异常

1.全选购物车商品进行结算,确认订单信息时没有任何问题。
2.选择购物车中部分商品时,购物车界面信息没有问题。进行结算时,确认订单界面信息有问题,确认订单中所显示的商品是购物车中所有商品,包括选择的和未选择的。
看了部分源码,感觉是购物车界面遍历了cartitem表中deleteAt为null的字段,确认订单界面也遍历了cartitem表中deleteAt为null的字段,所以确认订单界面中的商品信息并不是购物车中被选择的商品信息。菜鸟一枚,如有不对之处,请见谅,同时急求解决方法。

IDEA导入工程运行报错

 本人用IDEA导入该项目,用的是tomcat 9。导入后运行前台首页出来,可是除了轮播图片和头部底部显示, 其他都没出来,点击那些轮播图片跳到product?id =20,

 他就会提示“”java.rmi.NoSuchObjectException: 访问的id不存在或已经被删除。  

”看了下源码,只有object == null)才会抛出此异常,看了下jdbc.properties文件也已经改为本地的数据库账号密码,请问是什么原因,为什么我的对象是空的呢?

能提供更加详细的关于这个项目的学习资料吗

这个项目前前后后学习了一个月左右了,对于项目里用到的知识,我也找了一部分视频来看,但是感觉效果不理想,可能是自己基础太薄弱了,网上查看的知识点都是一个个零散的,不方便学习。所以想找一些有针对性的资料,如果方便提供的话,非常感谢

tomcat7启动log4j-api-2.10.0.jar报错

严重: Unable to process Jar entry [module-info.class] from Jar
[jar:file:/D:/workSpaceIDEA/S-mall-ssm/target/tmall/WEB-INF/lib/log4j-api-2.10.0.jar!/] for annotations
org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19
at org.apache.tomcat.util.bcel.classfile.Constant.readConstant(Constant.java:97)

我这边自查 -

  1. 用工具IDEA引入工程, 是用tomcat7启动, 而且localhost url可以运行
  2. 是用UTF-8编码
  3. /target/tmall/WEB-INF/lib/log4j-api-2.10.0.jar没有缺失

顺便问下, 您那边是用eclipse吗?

最后, 感谢分享!

疑问

想问下楼主的测试页面是自己买的域名还是部署在github上的

service包代码为空

你好,想问下代码是不完整的吗?怎么service下的文件都没有代码,只有一句而已。

用户注册验证用户名特殊符号错误

UserFrontController中23行
if(!HtmlUtils.htmlEscape(name).equals(password)){
msg = "用户名含有特殊字符,无法注册,请重新输入";
}
应该是
if(!HtmlUtils.htmlEscape(name).equals(name)){
msg = "用户名含有特殊字符,无法注册,请重新输入";
}
有个小建议这个验证可以在前端js验证
String.match( /^[\u4E00-\u9FA5a-zA-Z0-9]{1,}$/ )

一些疑问

  楼主你好,我打开项目发现类很多,但是运行后发现功能并不是那么多,这是一个完整的天猫商城么想问?是不是只要加入数据,填充404跳转后的页面,这就是一个完整的商城呢?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.