如何用java開發(fā)一個網(wǎng)站?
時間:2024-02-10 00:05:02 | 來源:網(wǎng)站運營
時間:2024-02-10 00:05:02 來源:網(wǎng)站運營
如何用java開發(fā)一個網(wǎng)站?:看了問題,我建議題主還是好好先學一輪基礎(chǔ)的東西。
基于問題我簡單提幾點:
- Eclipse是開發(fā)工具,最新的沒問題。
- JDK其實不需要用最新,現(xiàn)在市面上大多數(shù)還是JDK8。
- JDK8配套的Tomcat 8 就OK了
- 學習Maven拋棄掉引入jar包的方式
- 放棄用Struts,可以學學SpringBoot
感覺題主是沒有完整走過一篇Java的知識就開始寫項目了,這里我貼一下我覺得
Java學習比較好的路線前言
來聊聊如何學習Java,Java的學習路線是怎么樣的
提前預警:本文
適合Java新手閱讀(老手可在評論區(qū)給下建議),希望大家看完能有所收獲。
一、為什么我要寫下這篇文章
1.1直接緣由:
- 有個同學給我發(fā)微信找我
- 同學:能不能給他一個網(wǎng)頁他改一下,他想?yún)⒖家幌?,然后用于做畢業(yè)設計。
- 3y:可以啊,你的題目是什么???想用Java來寫嗎?
- 同學:對啊,我現(xiàn)在在學Java呢(ps:之前跟該同學聊天的時候"我看著這些代碼就頭暈,我對電腦真不感興趣"....真香!)
- 隨后這個同學發(fā)了一個小視頻過來,說自己在學Java。我看了一下:大概是在練習
&^|
這些操作符。
最后,我告訴這同學:"你去找視頻看吧,你現(xiàn)在學這些對你的畢業(yè)設計沒有什么幫助的啊"。然后讓他去B站找視頻看了
ps:我并不是說學&^|這些運算符是沒用的,但如果單純是想自己用Java來寫畢業(yè)設計的話,這些知識點應該是用不上的。
1.2間接緣由:
自身經(jīng)歷:我學習Java也是自學的,在大學期間也是一直一個人在學(身邊的同學可能家里有礦)。即便我在學習的時候也去
搜了不少的意見,例如在本站上找,,<給剛開始學Java的年輕人一些建議>等等類似的話題,
但是現(xiàn)在回過頭來看,我還是走了不少的"彎路"了。
比如說,當時我花了蠻多的精力去學JSP,最后整理成博客發(fā)到網(wǎng)上去。網(wǎng)友的評論:
- “不玩 JSP 十幾年了“。
- “jsp不是老掉牙的技術(shù)嗎”。
- “看這個有一種穿越的感覺……碼了6w多字,看著就心疼……”。
- “這十年前的技術(shù)都被挖出來了?”
- “剛畢業(yè)時寫過好幾個自定義標簽,那時候感覺好有成就感,但是現(xiàn)在,用于view的jsp,似乎有點過時了,view一般用【模板】或者【完全靜態(tài) + ajax + json】了”
嗯...那篇文章我當時在2018.02.07發(fā)布。我學JSP的時候是在2017年初吧,其實在2017年JSP也已經(jīng)是落后的技術(shù)了,但我還是花了不少的時間去學習JSP的各種用法(自定義標簽,JSTL,EL表達式等等)。
網(wǎng)友們其實說得都沒有毛病,對我來說:在2017年花了
不少時間去學如何使用JSP(過期的技術(shù)),這就是我認為的
彎路。
- ps:在2020年花點時間了解JSP是沒毛病的,但深入學習的話是沒必要的。
"彎路"說明:如果你有充裕的時間,怎么學都不是事,畢竟你是真真正正地在學編程。只要在學編程,就不是彎路,最怕你不學。
以這篇文章回復我部分的讀者:寫博客以來,還是有部分讀者是零基礎(chǔ)學Java的,有轉(zhuǎn)行的、也有年輕的師弟師妹的。一般他們也問我應該怎么學Java比較好,學習Java的路線應該是怎么樣的。
emmmm,我一般都是
比較簡單的回復一下:讓他們多做筆記啊,接下來應該花時間學什么,不學什么...就完了..
所以,寫完這篇文章,遇到再問我如何學習Java的時候,我直接發(fā)個鏈接就完事了(懶人必備)..
1.3目的
如果你:- 想要用Java在短短的幾個月時間內(nèi)寫出自己的畢業(yè)設計。
- 想要用Java體驗一下如何從零搭建一個屬于自己的網(wǎng)站。
那么可以看一下我下面所寫的
不成熟的建議。
二、如何快速學Java
這里我以Java EE(Jakarta EE)/Java Web的經(jīng)驗來說哦。(都把你們看做是零基礎(chǔ)入門的了)
學習Java EE(Jakarta EE)總體來說會有以下三大模塊:
在我看來,無論學習什么技術(shù)都好,在
學習該項技術(shù)的細節(jié)之前都得知道:
這項技術(shù)是什么,為什么我要學習這項技術(shù),學習了這項技術(shù)有什么好處。
- 看似好像我在說多余的話,但如果你在學習某項技術(shù)的時候無法回答上面的三個問題。再過幾天,你很大程度上會忘記這項你所“學過”的技術(shù)。
- 比如說,如何你連“為什么要用多線程”你都無法用通俗的話來解釋清楚。即便你當時學習的時候知道多線程可以用xxx方式來創(chuàng)建,多線程的xxx的api。那再過兩個月,人家問你”Java多線程有什么用???”。你想想你還能答什么,我認為你是記不住“多線程可以用xxx方式來創(chuàng)建、多線程的xxx的api”這些知識點了。
- 再比如說,如果學習Spring時不知道IOC和new對象有什么區(qū)別,那我為啥不直接new對象而要那么麻煩去學Spring呢?
簡單來說:
如果你不知道學習某項技術(shù)是干嘛用的,那先不要學。
如果你是零基礎(chǔ)學習Java并
理解力不是爆棚的話,我建議以
視頻學習為主。
可能你會看到這樣類似的言論:
- “看視頻學習太慢了”
- “直接看源碼啊,源碼就是最好的解釋”
- “有問題直接Google啊,用什么百度”
- “最好的資料是官網(wǎng)文檔”
- .....
但是,那都是對有經(jīng)驗的人或者高智商的人群來講的。
如果是
零基礎(chǔ)普通人,看視頻學習/看不懂源碼/用百度/看中文博客來學習
不丟人。
ps:如果看的視頻講師的語速不是特別快,建議以1.5或者1.75倍速觀看。
2.1關(guān)于視頻資源
我在學習Java的時候也收集了很多的視頻資源,并不是每個都有看過。只是在混群的時候發(fā)現(xiàn)有人發(fā)了,就復制下來整理一下罷了。
其他的視頻資源:
- B站:(http://bilibili.com)一個神奇的網(wǎng)站。如果你想看哪個視頻,可以先搜一下B站有沒有。
- 慕課網(wǎng):(http://imooc.com)里頭也有挺多的視頻資源。
- 公眾號/混qq群/微信群:不少人手里都有幾t的資源,如果跟群友的關(guān)系不錯,一般都會免費給你發(fā)的
- ......
2.1學習Java基礎(chǔ)
零基礎(chǔ)學習Java的路線我簡單總結(jié)為以下:
- 首先去官網(wǎng)下個JDK,按現(xiàn)在常用的版本JDK1.8就夠?qū)W習了
- 下載地址:JDK1.8下載:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- 隨后去下載現(xiàn)在Java常用的編輯器IDEA(也可以用eclipse,但現(xiàn)在IDEA的確是好用)..
- 下載地址:IDEA下載:https://www.jetbrains.com/idea/
- 以1.5/1.75倍速觀看Java基礎(chǔ)視頻(以劉意為例)
在學習Java基礎(chǔ)時,我簡單來說一下
什么東西可以不碰:
&^|
位運算符,++i
和i++
類似這種繞死人的語法- 內(nèi)部類
- AWT,SWING編程
- 注解
需要
深入理解的知識點:
- 流程控制
- 面向?qū)ο蟮母拍?/li>
- Java語法
- this指針、重寫和重載、final、static等等這些基礎(chǔ)的東西
- (理解這些知識點,能夠在有提示的情況下碼出代碼,但不要為了一些細節(jié)鉆牛角尖)
簡單過一遍的知識:
- 異常
- 多線程
- 網(wǎng)絡編程
- 反射機制
- (你得知道這個知識點是干嘛用的,為什么要學這個知識點,能看懂具體的代碼!)
對于上面所說
深入理解的知識點,我個人是
非常建議在學習期間寫筆記(博客)的。如果你想寫筆記的話,
最好直接就用
markdown
語法來編寫,而不是用word/簡單的記事本。
markdown語法非常好學,幾分鐘跟著就可以學習了,幾乎所有的it博客網(wǎng)站都支持
markdown
:
- markdown學習:https://www.jianshu.com/p/q81RER
如果喜歡
畫思維導圖的,我這里推薦processOn就可以了。無需下載Xmind這么麻煩了:
- ProcessOn來畫思維導圖:https://www.processon.com/i/5815483ce4b0baccb2d1f8c6
有的時候并不需要使用IDEA打開一個
.java
或者
.xml
這樣的文件,可以使用
notepad++
記事本:
- NotePad++記事本:https://notepad-plus-plus.org/
學會上網(wǎng)和使用Chrome瀏覽器,比如說下載攔截廣告插件,英語翻譯插件
- Chrome瀏覽器:https://www.google.com/chrome/
- 攔截廣告插件:https://chrome.google.com/webstore/search/uBlock%20Origin?hl=zh-CN&_category=extensions
- 英語翻譯插件:https://chrome.google.com/webstore/search/%E6%B2%99%E6%8B%89%20%E6%9F%A5%20%E8%AF%8D?hl=zh-CN
雖然是快速學習Java,但學完上面的
估計得一個月了(:..
一個月發(fā)現(xiàn)都是面向控制臺編程(console),輸入輸出一些數(shù)據(jù)來玩。
期間可能就學習IO的時候可以復制文件,修改文件名有點意思。
但好日子就要來臨了!
2.2學習Java Web基礎(chǔ)
首先我們可以學習一下Web前端的知識(此部分都簡單過一下就好了)
- HTML/CSS/JavaScript/jQuery
- CSS框架(都有中文手冊,很快就上手了,選一個自己喜歡的就好了):
- BootStrap:http://www.bootcss.com/
- Materialize:http://www.materializecss.cn/
到目前為止,學完上面這些可以搭建“能看”的靜態(tài)網(wǎng)頁了。曾經(jīng)看過一段話來總結(jié)上面的技術(shù):
- “HTML是名詞,CSS是形容詞,JavaScript是動詞”
隨后學習JavaWeb的路線如下:
- Tomcat(簡單過一下)
- XML/注解(簡單過一下)
- Servlet(重點理解)
- HTTP協(xié)議(重點理解)
- Filter過濾器(重點理解)
- Listener監(jiān)聽器(簡單過一下)
- JSP(簡單過一下)
- AJAX、JSON(簡單過一下)
基于上面的學習,起碼已經(jīng)可以使用request對象來接收前端發(fā)送過來的數(shù)據(jù),使用response對象將Java后端的數(shù)據(jù)返回給前端,使用Filter攔截器來處理中文亂碼問題(Tomcat默認的編碼是ISO-88591)??偟膩碚f已經(jīng)可以實現(xiàn)
前后端交互了!
2.3學習數(shù)據(jù)庫
數(shù)據(jù)庫這里指的是關(guān)系型數(shù)據(jù)庫,一般我們以
MySQL來入門就足夠了。
在學習期間,其實很多時間都耗費在
配置環(huán)境上面,比如我之前安裝JDK,安裝MySQL,安裝Oracle就耗費了不少時間。后來我也將其寫成博客,需要重新安裝的時候翻一下博客就好了。
- 比如MySQL安裝教程:https://segmentfault.com/a/1190000013530782
主要學習SQL的基本使用吧:
- 創(chuàng)建表(create table)
- 增刪改查(insert,delete,update,select)
- 對于存儲過程、觸發(fā)器這些了解一下即可
- 對于索引、鎖后面再學(此部分很重要,但以快速入門來說,可以先不看)
2.4學習Java連接數(shù)據(jù)庫(JDBC)
到這里,我們Java Web、數(shù)據(jù)庫、Web前端的基礎(chǔ)都已經(jīng)基本學完了,但此時Java和數(shù)據(jù)庫是相互獨立的。我們想要以
程序的方式來對數(shù)據(jù)庫的數(shù)據(jù)進行操作,那就要學習一下Java連接數(shù)據(jù)庫(JDBC)。
JDBC這項技術(shù)并不難呀,就是模板代碼,來來去去就幾個步驟:
- 導入MySQL或者Oracle驅(qū)動包
- 裝載數(shù)據(jù)庫驅(qū)動程序
- 獲取到與數(shù)據(jù)庫連接
- 獲取可以執(zhí)行SQL語句的對象
- 執(zhí)行SQL語句
- 關(guān)閉連接
由于這些代碼可能會重復出現(xiàn),那我們可以學習一下
DbUtils這個組件:可以幫我們減少編寫JDBC的模板代碼。
2.6項目管理和框架的學習
經(jīng)過上面的學習,已經(jīng)是可以在本地寫一個Web項目了。
- 頁面框架使用BootStrap/Materialize框架來搭好
- 請求處理交由Servlet,返回的數(shù)據(jù)可以通過AJAX或者使用JSP,DAO層可以使用DbUtils。
- 數(shù)據(jù)保存在MySQL中
為了讓寫代碼變得
更爽,我建議用半天學一下
Maven(項目管理工具),用幾天學一下
SpringBoot。
- 從Servlet直接跳到SpringBoot可能有點難理解,但多搞幾天我相信還是可以的..
2.7Linux學習
最后,我們在本地上寫完的項目想要讓其他人都看得見,一般都會部署在Linux環(huán)境下的。(此部分的學習可以等到將項目寫完,想要部署項目才學習)
主要學習一下Linux的基本命令和部署環(huán)境。
我是不推薦使用虛擬機再搞Linux的,
直接買一臺方便很多三、總結(jié)
總結(jié)一下我認為學習Java的路線:
- Java基礎(chǔ)-->流程控制-->面向?qū)ο?包括Java語法)-->Java集合-->Java IO流-->異常-->多線程-->網(wǎng)絡編程-->反射
- JavaWeb基礎(chǔ)-->HTML/CSS/JavaScript/jQuery-->Tomcat-->XML/注解->Servlet-->HTTP-->Filter過濾器和監(jiān)聽器-->JSP-->AJAX/JSON-->數(shù)據(jù)庫(MySQL)-->JDBC和DbUtils
- 項目管理和框架-->Maven-->SpringBoot
- Linux基本命令
最后我們的項目是這樣的:
- 以Maven來管理我們的項目
- 前端通過BootStrap來搭建頁面框架
- SpringBoot來搭建Java后端環(huán)境,SpringMVC處理前端請求(SpringBoot整合了)
- DAO層使用DbUtils組件來完成,MySQL作為數(shù)據(jù)庫
當然了,我的Java路線不一定就是對的,我這里只是給出一種路線。
再次說明:這套路線是以“快速”學習Java的,
如果你想要找到一份好工作,上面的知識點是不夠的!
涵蓋Java后端所有知識點的開源項目(已有6K+ star):https://github.com/ZhongFuCheng3y/3y
PDF文檔的內(nèi)容
均為手打,有任何的不懂都可以直接
來問我收藏等于白嫖,點贊才是真情!
收藏等于白嫖,點贊才是真情!
收藏等于白嫖,點贊才是真情!