最近這一直在複習數據結構和算法,也就是前面發出去的排序算法八大基礎排序總結,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