1. 程式人生 > >No errors,no gains!

No errors,no gains!

1,什麼是Web應用程式

  Web應用程式是可以通過Web進行訪問的應用程式,最大的好處是訪問非常容易。比如淘寶、新浪、網易等入口網站
  軟體開發領域的三大方向:桌面應用程式(C/S架構 比如說QQ.exe等),Web應用程式(B/S架構 比如說淘寶,新浪,網易等入口網站),嵌入式應用程式(C/S架構 比如說android開發,ios開發等)
  C/S架構是客戶端/伺服器架構,B/S架構是瀏覽器/伺服器架構,一般來說,前者的資料流量會比後者要小,但維護比較麻煩。舉個例子:以買火車票為例,用12306客戶端買火車票就為前者,直接上網頁買就是後者。
  靜態網頁所需技術:Html和css。表現形式:內容固定,不會更新
  動態網頁所需技術:Html、css、JavaScript、以及資料庫,最少一門高階語言(Java,C#,Php以及Python),動態網頁尾本技術(Jsp,asp.net或者Php)。表現形式:內容通過程式動態顯示,自動更新

2,Java Web環境搭建

  JDK,Tomcat伺服器以及MyEclipse 整合開發環境,安裝出現的問題參考此部落格:http://blog.csdn.net/zxc514257857/article/details/69939090
  Tomcat開啟方式:在Tomcat安裝包的bin目錄下找startup.bat,雙擊開啟則開始執行Tomcat,關閉Tomcat可以在bin目錄下找shutdown.bat,雙擊開啟也可以關閉Tomcat。同時也可以通過關閉執行startup.bat開啟控制檯頁面也可以關閉Tomcat,但不推薦
  Tomcat的目錄結構: /bin 用於Tomcat的命令檔案,比如startup.bat和shutdown.bat;/conf 用於存放Tomcat伺服器的配置檔案; /lib 用於存放Tomcat伺服器所需的Jar檔案; /logs 用於存放Tomcat的日誌檔案; /temp 用於存放Tomcat執行時的臨時檔案;/webapps 當釋出Web應用時,預設會將Web應用的檔案釋出到此目錄;/work Tomcat把由Jsp生成的Servlet放於此目錄下

3,手動建立第一個Java Web專案

  在tomcat—>webapps目錄下新建一個資料夾,以專案名稱命名(比如MyFirstJavaWebProject),在此資料夾中新建一個index.jsp檔案,同時新建一個WEB-INF資料夾,WEB-INF資料夾中新建一個lib資料夾,一個classes資料夾和一個web.xml(可將其他正常專案的web.xml檔案拷貝過來使用,但註釋需刪除乾淨)
  index.jsp是預設的服務端展示頁面
  WEB-INF 是Java Web的安全目錄,客戶端無法訪問,只有服務端可以訪問
  web.xml 是專案部署檔案。index.jsp相當於專案的歡迎頁,預設如果域名未完整輸入也會跳入index.jsp頁面,但如果沒有index.jsp頁面或者不想將index.jsp頁面設為專案的歡迎頁,則可以在web.xml檔案中修改專案的歡迎頁。方法是,在web.xml檔案中做如下改動:
這裡寫圖片描述


  lib目錄用於存放專案所需要的jar包
  classes目錄用於存放編譯生成的.class位元組碼檔案

4,通過MyEclipse建立Java Web專案

  在MyEclipse中新建一個Java Web專案,在專案的WebRoot目錄下找到index.jsp,修改頁面內容,完成後將頁面推到伺服器中(實際就是在tomcat—>webapps目錄下生成相關檔案),然後通過localhost:8080/專案名/index.jsp訪問頁面內容

5,MyEclipse Web專案目錄結構

這裡寫圖片描述

6,配置MyEclipse所預設使用的JRE,將軟體中自帶的JRE換成我們電腦中所安裝的較新版的JRE

  在Window—>preferences—>Java—>Installed JREs中,右側點選add,選擇standard VM,找到自己安裝的JRE,最後選中儲存即可
  

7,在MyEclispe中整合Tomcat伺服器環境

  Window—>preferences—>MyEclipse—>servers—>Tomcat,選擇自己的Tomcat的版本,將Tomcat server設定為enable,然後選擇JDK為自己本地安裝的JDK版本,點選OK後開啟伺服器,然後再執行測試(在瀏覽器位址列輸入localhost:8080,如果彈出Tomcat初始頁面則表示在MyEclipse中整合Tomcat環境成功)

8,Web專案虛擬路徑設定

  Web專案預設的虛擬路徑就是專案名+ .jsp檔案
  修改專案的虛擬路徑方式:右擊專案,在Properties—>MyEclipse—>Web—>右側WebContext-root就是專案的虛擬路徑,修改為你想修改的虛擬路徑名就可以了,修改完成之後,將頁面推到伺服器中,然後重啟伺服器,就可以在webapps目錄下找到你重新命名的虛擬路徑檔案夾了

9,Tomcat伺服器埠號設定

  如果出現Tomcat伺服器埠號衝突的情況,就需要修改Tomcat伺服器埠號,修改方法:在Tomcat的安裝目錄下找到conf—>server.xml,開啟搜尋,搜尋8080埠內容,將其修改為其他埠就可以了

10,Jsp基礎語法

  Jsp全名為Java Server Pages,其根本是一個簡化的Servlet,實現了在Java中使用Html標籤,是一種動態網頁尾本技術,也是JavaEE標準。其與Servlet一樣,都是在服務端執行的
  常見的動態網站開發技術對比:Jsp,Java平臺,跨平臺性好,安全性高,適合大型、分散式、企業級開發(hadoop);Asp.net .net平臺,簡單易學,安全性及跨平臺性差;Php:簡單高效,成本低,開發週期短,適合中小型企業的Web應用開發(Php黃金組合:LAMP)
  Jsp頁面元素構成: 靜態內容、指令、表示式、小指令碼、宣告、註釋
  指令:page指令,通常寫在Jsp頁面的頂端,同一個頁面可以有多個page指令,例如:

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
// language 預設為Java import 無預設內容 contentType 預設text/html ISO-8859-1

include指令,將一個外部檔案嵌入到當前Jsp檔案中,同時解析這個頁面中的Jsp語句;taglib指令,使用標籤庫定義新的自定義標籤,在Jsp頁面中啟用定製行文
  註釋:Jsp中有三種註釋格式,Html註釋,Jsp註釋和Jsp指令碼註釋;Html註釋如下:

<!-- Html註釋-->    // 客戶端可見

Jsp註釋如下:

<%-- JSP註釋--%>     // 客戶端不可見

Jsp指令碼註釋如下:

<%
    // 單行註釋
    /*
     * 多行註釋
     */
     // 客戶端不可見
%>

  指令碼:在JSP頁面中執行的Java程式碼,例如:

<% out.println("hehe") %>

  宣告:定義變數或方法,例如:

<% 
    // 定義變數
    int x = 10 
    // 定義方法
    public int add(int a , int b){
       return a + b;
   }
%>

  表示式:呼叫在宣告中定義的變數或方法

// 呼叫變數
<%= x %>
// 呼叫方法
<h1> a + b = <%=add(3 , 4) %> </h1>

11,Jsp頁面生命週期

這裡寫圖片描述

  jspService()方法被呼叫來處理客戶端的請求,對每一個請求,Jsp引擎會建立多個執行緒來處理該請求。如果有多個客戶端同時請求該jsp檔案,則jsp引擎會建立多個執行緒。每個客戶端請求對應一個執行緒,以多執行緒方式執行可以大大降低對系統的資源需求,提高系統的並罰兩以及響應時間。但也需要注意多執行緒併發所帶來的資源同步問題。
  Tomcat—>work目錄下放置的是各個專案中jsp檔案轉化為Servlet生成的位元組碼檔案
  當頁面還未推到伺服器上時,work目錄下是沒有此專案的,推至伺服器中並開啟伺服器,會在work目錄生成此專案資料夾,但其內並無內容;當訪問此專案jsp頁面成功時,就會在work目錄對應的此專案資料夾中編譯生成位元組碼檔案;當jsp頁面內容發生改變的時候,jsp引擎就會重新編譯此頁面
  當用戶第一次請求一個jsp頁面時,首先被執行的方法是 構造方法。原因:Jsp部署在伺服器(tomcat)之後是會被編譯成對應class檔案的,jsp檔案不再存在。在專案部署之後,一個個的Jsp變成了一個個的Java類,java類當被執行的時候肯定先走構造方法,所以先被執行的是構造方法咯