最近这一直在复习数据结构和算法,也就是前面发出去的排序算法八大基础排序总结,Java实现单向链表,栈和队列就是这么简单,十道简单算法题等等...前端
被虐得不要不要的,即便是很是简单有时候绕半天,想不明白。jquery
原本这篇博文是想留到我最后Java基础复习完再写出来的,鉴于公众号有的同窗想看看邮箱登录的案例,想看看Java开发后台是怎么的,因而我就提早写了这篇博文git
这个项目是我本身手写的第一个SSM项目(毕竟学了固然得搞点事情,对吧),是上年写的小东西。固然了,如今回过头去看这个项目是有不少的不足的,仅供参考。用的也不是新技术,只是把我以前当时所学的一些东西作一个总结...若是想学新知识的同窗看到这里就能够留步啦~github
因此说,你可能会看到比较旧的技术,写得很差的地方都会有~若是是写过项目的同窗而言,这个仅仅是一个Demo。对于没写过项目的同窗能够适当的参考一下,由于用的是很是简单的技术,都是耳熟能详的技术,不会有什么难懂的地方~算法
PS:但愿各位大佬不要攻击它,我没有作任何的安全措施。即便留了评论的功能,XSS攻击防范也没作,请手下留情啊~spring
地址:sql
编写记录:数据库
巴巴拉拉地说了一大堆东西,咱们来看一下这个项目有什么功能~
这是首页,会根据当地给出三天的天气预报:
很简单的注册页面,经过邮箱来进行注册~
2018年3月30日15:51:23,好吧,写这篇博文的时候也出错了.....
org.springframework.mail.MailAuthenticationException: Authentication failed
我怀疑是受权发送邮箱的密码错了(过期),因而我去更新了一下,果真就好了~
此时点击注册,就会要邮箱校验了~
去本身的邮箱查看一下邮件:
点击校验它便可完成注册(若是不校验的话,那么是不容许登录的):
该项目用Shiro作了权限认证的,若是没在登录的状态下点击如下的菜单都会跳转到登录页面~:
网站说明:
这个网站的功能并不复杂,开发的功能都是为了方便使用而已。
发送邮件好像会有点延迟~~~~
接下来是我的收藏夹了,添加一些经常使用的网址进去,并给它命名,当输入命名部分的字符时,即会提示:
用键盘上下键选中按回车便可跳转到对应的页面了~
网站用到的技术:
总概要:
能够看到的是,网站的功能并很少,就几个小模块,我就建立了三张表而已:
其实全部的初学者都同样:怎么使用Java编写一个网站?数据库设计感受好难,设计错了就很麻烦了。Web前端好烦啊,本身写的页面很差看。这个功能感受好难实现哦,应该是挺高深的技术吧。个人基础还不够扎实,等我学好了再写吧,等等等..就一直有想写网站的念头,但一直没开始动手。
上面的问题我都有想过,不过我仍是写了这么一个小东西....
当时写的练手项目都是视频教程给出的题目,好比我以前发过的:移动商城项目总结和纳税服务系统总结,jar包或者maven的坐标都是有给出来的,项目的前台页面和数据库标也大都是设计好的,我只须要补补填填写Java代码。而这一次,前端页面,数据库设计,Maven坐标等等全由本身包办
从开始到编写结束大概花了我一个月的时间,期间要去上课呀,回家呀,一些杂事呀等等才拖了那么久。若是本身历来没写过项目的同窗建议本身折腾一下搞一个,期间能学到不少不少东西的。也不要怕本身写得很差(只要像我同样不要脸,不也将这么一个小东西发到公众号上来,发到其余的博客平台了么)
那么我本身折腾这么一个小玩意能学到什么了呢?
当时我在图书馆撘了一个晚上,得出的教训:
登录与注册这个功能只要学过JavaWeb基础的同窗,确定作过。反正我是作了不少不少次的了,学Servlet作一次,学JSP作一次,学AJAX作一次,学xxx系统作一次,学XXX商城作一次。反正每次都会有新的东西补充上去
一开始我原本想作的是可使用微信登录,也可使用帐户(邮箱)登录,也可使用短信登录的。
后来发现微信登录要企业认证,作不了。短信登录要钱,不想给。
因此最后就只有用邮箱登录了~~~固然了,该有的基本功能是有的:
因为以前是简单学过Shiro的,当时以为Shiro作权限很方便,因而本身也想体验一把~实际上用起来并无我当时学的时候那么简单!
在Shiro这一块也耽误了很多时间,由于我当时想的是使用AJAX来提交,若是正确则跳转到首页,若是密码(参数..)等错误就返回JSON给用户一个友好的提示。但是,Shiro的表单认证起默认返回的是一个页面,在这里就卡住了挺久的(有的时候没bug,有的时候又有bug),百思不得其解...最后查阅了不少资料才将FormAuthenticationFilter改写好,Shiro不少东西都是要本身重写来进行控制的,当时理解后画的流程图:
Shiro的“记住我”功能原本觉得是很好用的,实则也挺鸡肋的..当时我作的记录:
反正Shiro给个人感受就是不少东西都要本身来重写,控制,而若是是小范围使用我以为本身写url控制会方便。也多是个人学习姿式不对~
在登录注册模块期间也本身去找了很多资料。
因此说,未必要使用本身熟悉的东西,只要想实现一些普通、你见过的功能,总会有方案能够参考。
这个自动补全功能是我一开始想要作本身网站的时候想作的。由于我习惯了使用键盘去找文件,去找东西。
好比,在windows下,我下了一个rolan,将经常使用的软件丢进去,输入一些关键字即提示我,而后我经过键盘上下选择就能够打开软件了,十分方便
在编写以前,我学过Lucene的相关知识,知道Lucene是全文搜索索引的始祖(没作过相关案例)【参考博文:Lucene就是这么简单】,后来知道Solr和Elasticsearch在企业上是用得挺火的,而Elasticsearch又是各类火热,各类吹(哈哈哈,无贬义,是挺好用的)。
因而我就花了几天从零开始学Elasticsearch,当时参考的博主给出的是2.3.3版本,我也以为没什么,就使用了。那是最新是5.x~就有了后来的博文:【Elasticsearch就是这么简单】
Elasticsearch遇到不少的问题都得去翻英文的,因此能够访问外网也挺重要的~
我英语也不咋地,就慢慢看看,弄个Chrome插件翻译呗,事情总得解决,也就这么成长的~
在以前只会Linux一些很是简单的命令,ls cd vi
这些,用得少就忘记了,因而又得从新去回顾一下Linux(这个学期也开了Linux的课,我打算过一阵再总结Linux的经常使用命令和相关要点,敬请期待~)
花了点点钱买了台云服务器(学生有优惠就10块一个月),我也建议是在校的学生也能够买来本身玩玩,熟悉一下Linux命令,还有不少软件都在Linux下才更好地支持(例如:Elasticsearch,Nginx),尤为Elasticsearch在windows下装它简直麻烦!
到了Linux阶段,我也去学了下Nginx了。在没学Nginx时我就常常据说过这个HTTP服务器了,但一直不知道它是干吗用的。它的最多见做用就两个:
学学Nginx的配置文件相关知识,是如何配置的,配置有什么用~就可使用了
评论功能在数据库设计上也有好几种:
我作的只是一个留言的功能,就直接使用第一种了~
对于备忘录就得用到Quartz时间调度框架,以前接触过,但用的使用仍是出现了Bug
若是业务简单的话,下次也想玩玩Spring自带的任务调度~
上面简要地介绍了个人小项目的功能和编写过程,更详细的业务得去看我下面的博文和源码了~也但愿你们可以有所收获,本身动手作一个小项目~
如今看来不少没有写成规范(返回JSON、JavaScript模块化)等等,但毕竟是本身学编程的成长经历,看回之前的代码总会有这种感受。我短期内也不作重构了,学Java基础去~
后面的博文几乎都是Java基础或算法(少许)了,但愿你们多多支持哈,在校的日子我会尽可能保持日更的~
若是文章有错的地方欢迎指正,你们互相交流。习惯在微信看技术文章,想要获取更多的Java资源的同窗,能够 关注微信公众号:Java3y