【手把手】JavaWeb 入門級(jí)項(xiàng)目實(shí)戰(zhàn) -- 文章發(fā)布系統(tǒng) (第一節(jié))

312334546574820.jpg

前一段時(shí)間有很多朋友來問我各種問題,比如java怎么學(xué),c,c++,c#,java,還有php等等,到底學(xué)哪個(gè)好,哪個(gè)好就業(yè)?其中不乏剛畢業(yè)找不到工作的學(xué)生,我對(duì)此也是很有感觸,回想當(dāng)初那最最艱難的日子,我的確很了解這種焦急的心態(tài)。其實(shí)我個(gè)人感覺,編程語言都大同小異,無非是語法變一變,當(dāng)然,如果你為了快速上手,我還是優(yōu)先推薦java。

最近琢磨著要寫點(diǎn)東西,把基本的Java Web開發(fā)流程完整地走一遍,最后決定,干脆就寫一個(gè)小小的項(xiàng)目實(shí)戰(zhàn)吧。這個(gè)小項(xiàng)目作為一個(gè)JavaWeb的入門例子,從前臺(tái)頁面到項(xiàng)目發(fā)布,把整個(gè)流程走通。所謂麻雀雖小,五臟俱全。難度不是很高,正好可以作為入門使用。

接下來就是做什么的問題了,首先不能太簡(jiǎn)單,那樣的話就沒意思了。也不能太復(fù)雜,因?yàn)槲业拇_也沒那么多時(shí)間,思前想后,我打算寫一個(gè)小型的文章發(fā)布系統(tǒng)。

老實(shí)說,我也不知道最終會(huì)做成什么樣子,但是基本的CRUD肯定少不了的。前臺(tái)頁面的話,我會(huì)盡可能做得好看一點(diǎn),畢竟我也不是專門做前端的。

至于知識(shí)點(diǎn),當(dāng)然是盡可能豐富,把我用過的,并且理解的東西,一步一步地集成進(jìn)去。

嗯,這個(gè)系列一旦開始,以后基本上就圍繞著這個(gè)小項(xiàng)目寫文了。我的意思是,其他文章都不更了,在這個(gè)小項(xiàng)目寫完之前,我會(huì)把其他的文章都放下,全心全意地編寫這個(gè)系列。

終于開始了,想想還有點(diǎn)小激動(dòng)呢。

1. 項(xiàng)目的大致規(guī)劃

開發(fā)工具還是用eclipse,數(shù)據(jù)庫(kù)采用mysql。MVC框架的話,我就不用框架了,純粹用JSP來寫,實(shí)際開發(fā)肯定不會(huì)這么做,不過,這畢竟還是有意義的。當(dāng)然,你也可以把它換成框架版的。為什么用JSP?因?yàn)镴SP比較簡(jiǎn)單,作為一個(gè)入門級(jí)的web項(xiàng)目,而且我是一邊開發(fā)一邊寫文,我就懶得用MVC框架了。

為什么我要一邊開發(fā)一邊寫,因?yàn)槲矣X得,如果全部開發(fā)好了,再讓我從頭開始,把開發(fā)流程寫出來,那是很龐大的工作量,也不現(xiàn)實(shí)。而且,一邊開發(fā)一邊寫還有個(gè)好處,那就是可以幫助讀者看到整個(gè)項(xiàng)目的開發(fā)流程。

而且,包括我自己也不知道最終會(huì)寫成什么樣子,也可能本文結(jié)束后就GG了。

不過不管怎么說,這樣都會(huì)保留一點(diǎn)點(diǎn)新鮮感和樂趣。

如果你是初學(xué)者,并且希望完整地看一個(gè)小項(xiàng)目是如何做出來的,那么,這個(gè)系列也許會(huì)適合你。

可能寫10篇文章就結(jié)束,也可能30篇,看情況了。

好了,正式開始吧。

2. 項(xiàng)目搭建
2.1 新建項(xiàng)目

新建一個(gè) Dynamic Web Project,名字叫Article

Paste_Image.png

點(diǎn)擊Finish

Paste_Image.png

將項(xiàng)目的編碼改為 utf-8

Paste_Image.png
2.2 新建web.xml
Paste_Image.png

這是web項(xiàng)目的規(guī)范,一個(gè)web.xml文件可以對(duì)你的web項(xiàng)目進(jìn)行基本的配置。

2.3 編寫web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">

 <!-- 歡迎頁面 -->
 <welcome-file-list>
   <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>

</web-app>
2.4 編寫index.jsp

在WebContent目錄下新建一個(gè)index.jsp

Paste_Image.png

代碼:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    恭喜,web項(xiàng)目已經(jīng)搭建完成。
</body>
</html>

這就是我們項(xiàng)目的首頁。

2.5 用 tomcat 發(fā)布項(xiàng)目

我這邊用的是tomcat7.0

Paste_Image.png

運(yùn)行。

啟動(dòng)完畢后,打開瀏覽器,在地址欄輸入

http://localhost:8080/Article/

(我這邊的tomcat端口號(hào)為8080)

Paste_Image.png

然后可以清楚得看到,網(wǎng)頁上出現(xiàn)了這么一行字:

恭喜,web項(xiàng)目已經(jīng)搭建完成。

這就說明,web項(xiàng)目已經(jīng)搭建成功了!

3. 首頁制作
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>首頁</title>
<style>
    
</style>
</head>
<body>
    <div class="header">
    
    </div>
</body>
</html>
3.1 標(biāo)題欄

我們?cè)赽ody區(qū)域畫一個(gè)div,作為首頁的標(biāo)題欄。它的樣式先全部在本頁面寫,也就是style塊里面。

div是塊級(jí)元素,所以,雖然我們沒有給它設(shè)定寬度,它也默認(rèn)就是父容器的寬度。所以,我們只需要給它一個(gè)高度就OK啦。

*{
    padding: 0 ;
    margin: 0 ;
}
.header {
    height: 60px ;
    background: #458fce ;
}

效果:

Paste_Image.png
3.2 畫一個(gè)LOGO

接下來,繪制 logo,由于樓主的 PS水平比較渣,所以這個(gè)部分就用文字替代吧。當(dāng)然,如果你是PS大神的話,也可以隨便給我做一個(gè)logo,在下一節(jié)中我就放上去。

求 logo ...

<div class="header">
    <div class='logo'>原創(chuàng)文字</div>
</div>

css:

*{
    padding: 0 ;
    margin: 0 ;
    font-family: "微軟雅黑" ;
}
.header {
    height: 72px ;
    background: #458fce ;
}
.header .logo {
    color: #fff ;
    line-height: 72px ;
    font-size: 30px ;
    margin-left: 20px ;
    display:inline-block ;
    font-weight:500 ;
}
Paste_Image.png
3.3 導(dǎo)航欄

我隨便想了幾個(gè)導(dǎo)航按鈕(其實(shí)就是 ul li):

  1. 首頁
  2. 原創(chuàng)故事
  3. 熱門專題
  4. 欣賞美文
  5. 贊助
<div class="header">
    <div class='logo'>原創(chuàng)文字</div>
    <ul>
        <li>首頁</li>
        <li>原創(chuàng)故事</li>
        <li>熱門專題</li>
        <li>欣賞美文</li>
        <li>贊助</li>
    </ul>
</div>

同時(shí),我們把 li 的小圓點(diǎn)去掉:

ul li {
    list-style: none ;
}
Paste_Image.png

這個(gè)效果顯然不是我們想要的,我們給logo加一個(gè)浮動(dòng)。

Paste_Image.png

然后,給每一個(gè) li 添加一個(gè)左浮動(dòng):

.header ul li {
    float: left ;
}
Paste_Image.png

接著,我們把位置和顏色做一些調(diào)整:

<div class="header">
    <div class='logo'>原創(chuàng)文字</div>
    <ul>
        <li class='first'>首頁</li>
        <li>原創(chuàng)故事</li>
        <li>熱門專題</li>
        <li>欣賞美文</li>
        <li>贊助</li>
    </ul>
</div>

css樣式

.header ul li.first {
    margin-left: 30px ;
}

.header ul li {
    float: left ;
    color: #fff ;
    display: inline-block ;
    width: 112px ;
    height: 72px ; 
    text-align: center ;
    line-height:72px ;
    cursor: pointer ;
}
標(biāo)題欄

cursor: pointer 的意思就是說,當(dāng)我鼠標(biāo)劃上去的時(shí)候,讓鼠標(biāo)變成一個(gè)小手的模樣。

因?yàn)閷?shí)際使用的時(shí)候,我們點(diǎn)擊導(dǎo)航按鈕就自動(dòng)跳轉(zhuǎn)頁面,所以,一般來說,每一個(gè)導(dǎo)航按鈕都應(yīng)該是一個(gè)a標(biāo)簽。

我們將代碼改一下:

<div class="header">
    <div class='logo'>原創(chuàng)文字</div>
    <ul>
        <li class='first'><a href="javascript:void(0)">首頁</a></li>
        <li><a href="javascript:void(0)">原創(chuàng)故事</a></li>
        <li><a href="javascript:void(0)">熱門專題</li>
        <li><a href="javascript:void(0)">欣賞美文</li>
        <li><a href="javascript:void(0)">贊助</a></li>
    </ul>
</div>

因?yàn)槟J(rèn)的a標(biāo)簽會(huì)有下劃線,字體顏色是藍(lán)色,為了美觀,我們修改一下a標(biāo)簽的樣式:

a {
    color: #fff ;
    text-decoration: none ;
}
3.5 給導(dǎo)航按鈕添加hover事件
.header ul li :hover {
    background:#74b0e2 ;
}

效果:

2.gif

奇怪了,li 的區(qū)域沒有變色,而當(dāng)我鼠標(biāo)劃到文字上的時(shí)候,會(huì)有一個(gè)小范圍的變色,這是咋回事呢?

難道hover失效了?

當(dāng)樓主寫到這里的時(shí)候,我也確實(shí)納悶了一會(huì)。。。

結(jié)果一查,發(fā)現(xiàn):

Paste_Image.png

我擦,這里多了一個(gè)空格啊,有木有!

好吧,要細(xì)心一點(diǎn)。。

那么,我們?nèi)サ艨崭瘢驼A恕?/p>

.header ul li:hover {
    background:#74b0e2 ;
}
3.gif

這樣就好看多了吧。

時(shí)間差不多了,今天就到這里。至于更新頻率的話,不一定,不過周更是肯定會(huì)有的。

這個(gè)系列也是我的一次嘗試,希望大家喜歡。

我要下載源碼

您的支持是我寫作的最大動(dòng)力:

免責(zé)聲明: 博客中所有的圖片素材均來自百度搜索,僅供學(xué)習(xí)交流,如有問題請(qǐng)聯(lián)系我,侵立刪,謝謝。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,106評(píng)論 6 542
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,441評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,211評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,736評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,475評(píng)論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,834評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,829評(píng)論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,009評(píng)論 0 290
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,559評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,516評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,038評(píng)論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,728評(píng)論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,132評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,443評(píng)論 1 295
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,249評(píng)論 3 399
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,484評(píng)論 2 379

推薦閱讀更多精彩內(nèi)容