1. 程式人生 > >【手把手】JavaWeb 入門級專案實戰

【手把手】JavaWeb 入門級專案實戰



最近琢磨著要寫點東西,把基本的Java Web開發流程完整地走一遍,最後決定,乾脆就寫一個小小的專案實戰吧。這個小專案作為一個JavaWeb的入門例子,從前臺頁面到專案釋出,把整個流程走通。所謂麻雀雖小,五臟俱全。難度不是很高,正好可以作為入門使用。

接下來就是做什麼的問題了,首先不能太簡單,那樣的話就沒意思了。也不能太複雜,因為我的確也沒那麼多時間,思前想後,我打算寫一個小型的文章釋出系統。

老實說,我也不知道最終會做成什麼樣子,但是基本的CRUD肯定少不了的。前臺頁面的話,我會盡可能做得好看一點,畢竟我也不是專門做前端的。

至於知識點,當然是儘可能豐富,把我用過的,並且理解的東西,一步一步地整合進去。

嗯,這個系列一旦開始,以後基本上就圍繞著這個小專案寫文了。我的意思是,其他文章都不更了,在這個小專案寫完之前,我會把其他的文章都放下,全心全意地編寫這個系列。

終於開始了,想想還有點小激動呢。

1. 專案的大致規劃

開發工具還是用eclipse,資料庫採用mysql。MVC框架的話,我就不用框架了,純粹用JSP來寫,實際開發肯定不會這麼做,不過,這畢竟還是有意義的。當然,你也可以把它換成框架版的。為什麼用JSP?因為JSP比較簡單,作為一個入門級的web專案,而且我是一邊開發一邊寫文,我就懶得用MVC框架了。

為什麼我要一邊開發一邊寫,因為我覺得,如果全部開發好了,再讓我從頭開始,把開發流程寫出來,那是很龐大的工作量,也不現實。而且,一邊開發一邊寫還有個好處,那就是可以幫助讀者看到整個專案的開發流程。

而且,包括我自己也不知道最終會寫成什麼樣子,也可能本文結束後就GG了。

不過不管怎麼說,這樣都會保留一點點新鮮感和樂趣。

如果你是初學者,並且希望完整地看一個小專案是如何做出來的,那麼,這個系列也許會適合你。

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

好了,正式開始吧。

2. 專案搭建

2.1 新建專案

新建一個 Dynamic Web Project,名字叫Article

點選Finish

將專案的編碼改為 utf-8

2.2 新建web.xml

這是web專案的規範,一個web.xml檔案可以對你的web專案進行基本的配置。

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目錄下新建一個index.jsp

程式碼:

<%@ 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專案已經搭建完成。
</body>
</html>

這就是我們專案的首頁。

2.5 用 tomcat 釋出專案

我這邊用的是tomcat7.0

執行。

啟動完畢後,開啟瀏覽器,在位址列輸入

(我這邊的tomcat埠號為8080)

然後可以清楚得看到,網頁上出現了這麼一行字:

恭喜,web專案已經搭建完成。

這就說明,web專案已經搭建成功了!

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 標題欄

我們在body區域畫一個div,作為首頁的標題欄。它的樣式先全部在本頁面寫,也就是style塊裡面。

div是塊級元素,所以,雖然我們沒有給它設定寬度,它也預設就是父容器的寬度。所以,我們只需要給它一個高度就OK啦。

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

效果:

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

求 logo ...

<div class="header">
    <div class='logo'>原創文字</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 ;
}

3.3 導航欄

我隨便想了幾個導航按鈕(其實就是 ul li):

  1. 首頁
  2. 原創故事
  3. 熱門專題
  4. 欣賞美文
  5. 贊助

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

同時,我們把 li 的小圓點去掉:

ul li {
    list-style: none ;
}

這個效果顯然不是我們想要的,我們給logo加一個浮動。

然後,給每一個 li 新增一個左浮動:

.header ul li {
    float: left ;
}

接著,我們把位置和顏色做一些調整:

<div class="header">
    <div class='logo'>原創文字</div>
    <ul>
        <li class='first'>首頁</li>
        <li>原創故事</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 ;
}

cursor: pointer 的意思就是說,當我滑鼠劃上去的時候,讓滑鼠變成一個小手的模樣。

因為實際使用的時候,我們點選導航按鈕就自動跳轉頁面,所以,一般來說,每一個導航按鈕都應該是一個a標籤。

我們將程式碼改一下:

<div class="header">
    <div class='logo'>原創文字</div>
    <ul>
        <li class='first'><a href="javascript:void(0)">首頁</a></li>
        <li><a href="javascript:void(0)">原創故事</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>

因為預設的a標籤會有下劃線,字型顏色是藍色,為了美觀,我們修改一下a標籤的樣式:

a {
    color: #fff ;
    text-decoration: none ;
}

3.5 給導航按鈕新增hover事件

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

效果:

奇怪了,li 的區域沒有變色,而當我滑鼠劃到文字上的時候,會有一個小範圍的變色,這是咋回事呢?

難道hover失效了?

當樓主寫到這裡的時候,我也確實納悶了一會。。。

結果一查,發現:

我擦,這裡多了一個空格啊,有木有!

好吧,要細心一點。。

那麼,我們去掉空格,就正常了。

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

這樣就好看多了吧。

時間差不多了,今天就到這裡。至於更新頻率的話,不一定,不過周更是肯定會有的。

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

最近琢磨著要寫點東西,把基本的Java Web開發流程完整地走一遍,最後決定,乾脆就寫一個小小的專案實戰吧。這個小專案作為一個JavaWeb的入門例子,從前臺頁面到專案釋出,把整個流程走通。所謂麻雀雖小,五臟俱全。難度不是很高,正好可以作為入門使用。

接下來就是做什麼的問題了,首先不能太簡單,那樣的話就沒意思了。也不能太複雜,因為我的確也沒那麼多時間,思前想後,我打算寫一個小型的文章釋出系統。

老實說,我也不知道最終會做成什麼樣子,但是基本的CRUD肯定少不了的。前臺頁面的話,我會盡可能做得好看一點,畢竟我也不是專門做前端的。

至於知識點,當然是儘可能豐富,把我用過的,並且理解的東西,一步一步地整合進去。

嗯,這個系列一旦開始,以後基本上就圍繞著這個小專案寫文了。我的意思是,其他文章都不更了,在這個小專案寫完之前,我會把其他的文章都放下,全心全意地編寫這個系列。

終於開始了,想想還有點小激動呢。

1. 專案的大致規劃

開發工具還是用eclipse,資料庫採用mysql。MVC框架的話,我就不用框架了,純粹用JSP來寫,實際開發肯定不會這麼做,不過,這畢竟還是有意義的。當然,你也可以把它換成框架版的。為什麼用JSP?因為JSP比較簡單,作為一個入門級的web專案,而且我是一邊開發一邊寫文,我就懶得用MVC框架了。

為什麼我要一邊開發一邊寫,因為我覺得,如果全部開發好了,再讓我從頭開始,把開發流程寫出來,那是很龐大的工作量,也不現實。而且,一邊開發一邊寫還有個好處,那就是可以幫助讀者看到整個專案的開發流程。

而且,包括我自己也不知道最終會寫成什麼樣子,也可能本文結束後就GG了。

不過不管怎麼說,這樣都會保留一點點新鮮感和樂趣。

如果你是初學者,並且希望完整地看一個小專案是如何做出來的,那麼,這個系列也許會適合你。

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

好了,正式開始吧。

2. 專案搭建

2.1 新建專案

新建一個 Dynamic Web Project,名字叫Article

點選Finish

將專案的編碼改為 utf-8

2.2 新建web.xml

這是web專案的規範,一個web.xml檔案可以對你的web專案進行基本的配置。

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目錄下新建一個index.jsp

程式碼:

<%@ 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專案已經搭建完成。
</body>
</html>

這就是我們專案的首頁。

2.5 用 tomcat 釋出專案

我這邊用的是tomcat7.0

執行。

啟動完畢後,開啟瀏覽器,在位址列輸入

(我這邊的tomcat埠號為8080)

然後可以清楚得看到,網頁上出現了這麼一行字:

恭喜,web專案已經搭建完成。

這就說明,web專案已經搭建成功了!

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 標題欄

我們在body區域畫一個div,作為首頁的標題欄。它的樣式先全部在本頁面寫,也就是style塊裡面。

div是塊級元素,所以,雖然我們沒有給它設定寬度,它也預設就是父容器的寬度。所以,我們只需要給它一個高度就OK啦。

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

效果:

3.2 畫一個LOGO

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

求 logo ...

<div class="header">
    <div class='logo'>原創文字</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 ;
}

3.3 導航欄

我隨便想了幾個導航按鈕(其實就是 ul li):

  1. 首頁
  2. 原創故事
  3. 熱門專題
  4. 欣賞美文
  5. 贊助

    <div class="header">
    <div class='logo'>原創文字</div>
    <ul>
        <li>首頁</li>
        <li>原創故事</li>
        <li>熱門專題</li>
        <li>欣賞美文
                
               

    相關推薦

    手把手JavaWeb 入門專案實戰 -- 文章釋出系統 (第五節)

    在上一節中,我們成功將資料從前臺的JSP頁面傳遞到了controller層,但是還沒有寫service層,老實說還有很多工作沒有,尤其是和資料庫的連結方面的,所以,這一節,我們專門來處理一下關於資料庫連線方面的東西。 01 序言 你可能之前聽過了很多新名詞,比如資料來

    手把手JavaWeb 入門專案實戰 -- 文章釋出系統 (第八節)

    首先,最近很多人都來問我問題,我列舉幾個比較典型的說明一下。 1. 一定要通過註解和反射的方式生產建表語句嗎,我能不能直接在mysql中建表? 當然可以,我只是為了說明一下註解和反射可以用在這個地方,實際開發肯定不會這麼做啦。一般都使用框架,比如hibernate,m

    手把手JavaWeb 入門專案實戰

    序 最近琢磨著要寫點東西,把基本的Java Web開發流程完整地走一遍,最後決定,乾脆就寫一個小小的專案實戰吧。這個小專案作為一個JavaWeb的入門例子,從前臺頁面到專案釋出,把整個流程走通。所謂麻雀雖小,五臟俱全。難度不是很高,正好可以作為入門使用。 接下來就是

    手把手JavaWeb 入門專案實戰 -- 文章釋出系統 (第四節)

    首先,更正一下上一章中的一個小錯誤,就是在index.jsp中,banner部分沒有新增結束的標籤,加上去就OK了,我也是完善頁面的時候發現的。 另外,index.jsp中引入的jQuery也需要換成本地的。 <script src="${basePath}/st

    精編重製版JavaWeb 入門專案實戰 -- 文章釋出系統 (第一節)

    說明 本教程是,原文章釋出系統教程的精編重置版,會包含每一節的原始碼,以及修正之前的一些錯誤。因為之前的教程只做到了評論模組,很多地方還不完美,因此重製版會修復之前的一些謬誤和闡述不清的地方,而且,後期我會考慮完成該專案的後臺管理。希望本教程提供的內容,可以成為JavaWeb初學者一套較為完整的練手專案。

    JavaWeb 入門專案實戰 -- 文章釋出系統 (第十節)

    本節主要講解詳情頁的頁面佈局和css樣式,以及從主頁面到詳情頁面的跳轉問題。 1. 詳情頁面的佈局 頁面佈局的話,我還是習慣先把靜態頁面做出來,確保沒問題了,然後再跟後臺對接。 在實際的開發過程中,靜態頁面一般是美工或者前端工程師負責,後臺工程師主要關心如何把Java層的資

    JavaWeb 入門專案實戰 -- 文章釋出系統 (第八節)

    首先,最近很多人都來問我問題,我列舉幾個比較典型的說明一下。 1. 一定要通過註解和反射的方式生產建表語句嗎,我能不能直接在mysql中建表? 當然可以,我只是為了說明一下註解和反射可以用在這個地方,實際開發肯定不會這麼做啦。一般都使用框架,比如hibernate,myba

    JavaWeb 入門專案實戰 -- 文章釋出系統 (第十一節)

    本節主要解決在詳情頁根據文章ID查詢文章內容的問題。 1.根據ID查詢文章資料 在上一節中,我們已經成功在detail.jsp頁面獲取到了來自index.jsp的文章ID。 那麼,最容易想到的辦法,就是直接在detail.jsp頁面通過Java程式碼,直接查詢出對應的文章資

    JavaWeb 入門專案實戰 -- 文章釋出系統 (第四節)

    首先,更正一下上一章中的一個小錯誤,就是在index.jsp中,banner部分沒有新增結束的標籤,加上去就OK了,我也是完善頁面的時候發現的。 另外,index.jsp中引入的jQuery也需要換成本地的。 <script src="${basePath}/stat

    備忘Kotlin入門專案實戰視訊

    1.kotlin簡介和學習方法 2.Kotlin簡介和學習方法(二) 3.kotlin基礎 4.Kotlin基礎(二) 5.Kotlin基礎(三) 6.函式的定義和呼叫 7.函式的定義和呼叫(二) 8.類,物件和介面(一) 9.類,物件和介面(二) 10.類,物件和介面(三

    入門專案實戰,Python生成海賊王雲圖!

      本教程適合於有一定程式設計經驗的同學,使用Python3,在Jupyter進行除錯開發。 涉及的Python基礎包括: 變數和函式的定義和使用               &n

    專欄 - Golang自學及專案實戰

    Golang自學及專案實戰 一個偶然的機會讓我接觸到golang,被其能把很複雜的高效能開發變得簡單起來的優點深深吸引,從此一發不可收拾。。。 該專欄為我自學golang的一些重點總結以及專案中常遇到的一些問題,希望能吸引更多人

    Activiti入門到放棄——專案實戰之整合Activiti-Modeler

    引入 在activiti-explorer中,我們可以在Eclipse中設計完成了流程,然後匯入流程模型,也可以通過線上流程設計器進行設計,然後部署得到流程模型。然後把流程模型部署得到流程定義。 實際上客戶是可能不會使用Eclipse的,所以我們必須在專案中整合線上流程設計器。整合

    Activiti入門到放棄——專案實戰之Activiti-explorer簡介

    Activiti-explorer簡介 部署Activiti-explorer  1、拷貝activiti-5.16.4\wars\activiti-explorer.war到tomcat的webapp資料夾下   2、tomcat的webapp資

    Activiti入門到放棄——專案實戰之辦理任務

    前面,我們已經完成每個任務的動態表單實現,能看到任務詳情,接下來就要根據它是否符合條件進行任務辦理。 審批報備辦理者動態指定 1.寫一個類繼承TaskListener public class ManagerSettingListener implements TaskListener{

    Activiti入門到放棄——專案實戰之動態表單

    為什麼需要動態表單 分析:每個任務的詳情對話方塊是不變的,還是可變的。 任務詳情對話方塊放的是任務所對應的業務物件,如果是客戶報備,裡面放的就是客戶的資訊,如果是請假,裡面放的是請假單。 1 不同流程定義所對應任務的任務詳情,肯定是不一樣的。 2 相同流程定義所對應任務的任務詳情,一

    Activiti入門到放棄——專案實戰之檢視任務

    引入 當我們流程啟動後,會產生對應私人任務或公有任務,只要對應的辦理者或候選人,檢視任務後,進行認領,辦理等操作。整個流程才能走完。我們先來看檢視任務。 分析 當用戶登入系統後,要有個地方查詢自己的任務,這時我們專門準備一個選單來展示任務,當然任務又分私人任務和公有任務。需要區分對待。 1、

    Activiti入門到放棄——專案實戰之流程定義管理

    步驟分析: 要想在實現一個能夠完成流程定義的crud的功能,也就是在專案中能夠對各種流程(客戶報備,報銷,請假等)進行crud,那就是一個完整的模組,應該單獨獨立一個選單。並且完成這個選單的模組管理。 1)選單-跳轉到管理介面 2)選單模組管理 i.部署新流程-沒有資料 ii.列表/重新整理

    連載Django入門實戰(一)

    一、專案目錄結構介紹 manager.py 與專案進行互動的命令列工具集的入口(專案管理器) MyDjango 目錄:專案容器,包含專案的基本配置,目錄名稱不建議修改 __init__.py Python中宣告模組的檔案,內容預設為空 settings.py 專案

    工具github入門到上傳本地專案

    GitHub是基於git實現的程式碼託管。git是目前最好用的版本控制系統了,非常受歡迎,比之svn更好。 GitHub可以免費使用,並且快速穩定。即使是付費帳戶,每個月不超過10美刀的費用也非常便宜。 利用GitHub,你可以將專案存檔,與其他人