您现在的位置是:网站首页 > 技术专栏

本套系统所使用的一些技术

mervin 877人围观
简介本套系统所使用的一些技术要点和各个功能模块,由于考虑到某些安全因素,有些细节并未完全列举。

页面端:html/css/js/ajax

第三方库:jquery/bootstrap/echarts/summernote/highlight.pack/webuploader/layui/

fancybox/peity/sweetalert/validate/pace/datapicker/content/contabs/fakeLoader/modernizr

服务端:Java

整体架构:springspringMVCmybatis

数据库:MySQL

项目开发工具:MyEclipse 2014VS code

服务器:Tomcat 8.0

项目管理工具:mavengit



1.      Shiro提供了身份认证/登录,验证用户是不是拥有相应的身份。

2.      Shiro提供了授权,即权限验证,验证某个已认证的用户是否拥有某个权限。

3.      Shiro提供了加密,保护数据的安全性。密码采用MD5存到数据库。

4.      Shiro提供了缓存,用户登录后,其用户信息、拥有的角色/权限不必每次去查,提高了效率。

5.      Shiro提供了 记住我,这个是非常常见的功能,即一次登录后,只要不注销,下次再来的话不用登录。

具体实现过程参加另一篇博客使用Shiro实现登录



1.     获取用户的真实IP、地理位置、浏览器及操作系统等。

2.     用户每天第一次登录将会被记录、一天内多次登录或清除cookie将不会被记录。

3.     获取地理位置使用的淘宝的接口。

        具体实现过程参加另一篇博客《springMVC自定义注解拦截恶意请求



1.      防止用户连续刷新页面。

2.      在方法上添加注解表示:该方法在2秒内请求不能超过5次。

具体实现过程参加另一篇博客《利用监听器(Listener)实现用户访问记录



1.      可以记录管理员的增删改查操作。

2.      可以记录下用户具体的查询内容。

3.      在方法上添加注解表示调用该方法将记录下来。

具体实现过程参加另一篇博客《springMVC自定义注解+AOP实现操作日志



1.      mybatis有一个缺陷,无法进行多表操作,只能单表。

2.      mybatis二级缓存是同一个namespace放到一个缓存对象中。一般逆向生成的各个实体的mapper都是单独的文件,即单独的namespace

那么就出现了问题。

例如:在UserMapper.xml中有大多数针对user表的操作。但是在一个XXXMapper.xml中,还有针对user单表的操作。这会导致user在两个命名空间下的数据不一致。如果在UserMapper.xml中做了刷新缓存的操作,在XXXMapper.xml中缓存仍然有效,如果有针对user的单表查询,使用缓存的结果可能会不正确。



1.      在过滤器中进行IP拦截,如果该IP已进入黑名单,将无法正常浏览网站。




1.      Web Uploader支持分片、并发、预览、压缩、HTML5 & FLASHMD5秒传、支持文件多选、类型过滤、拖拽(文件&文件夹)、图片粘贴功能。

2.      图片上传到服务器指定的磁盘文件夹下,没有存到项目中。

3.      当需要图片时,先去服务器下寻找图片,没有合适的再选择上传图片到服务器。避免每次都要进行图片上传。




1.      Summernote轻量级、小巧,界面好看,能满足日常需要。

2.      通过整合highlight.js,修改默认summernote的代码可实现代码高亮功能。



1.      通过eCharts,可以很直观的看到近日网站的访问情况,博客的浏览/发表情况,以及用户前台的搜索量等等。



1.      实现查询、分页、排序、复选框、设置显示列、操作等。



1.      几乎页面的所有请求都采用异步操作完成。



1.      在管理端使用了fakeLoader进行预加载。



1.      腾讯云服务器:12G;高效云盘40G;固定带宽:1M

2.      腾讯云域名:www.mblog.site



转载:感谢您的认可,以及对作品以及文章的青睐,非常欢迎各位朋友分享,但转载请说明文章出处。本文章部分图片、文章来源于网络,版权归原作者所有,如有侵权,请与我联系删除。

上一篇:

下一篇:

文章评论

本栏推荐

Top