Http協議、web、Tomcat服務器、Servlet入門

 summarizejavascript

http協議一個超文本傳輸協議,協議就是一種規則,全部3w文件都得遵循這個標準。它由http請求響應組成css

http請求和響應都分三部分,http請求:請求行、頭、體(若提交方式爲get,則木有請求體) html

http響應:響應行(有幾個狀態碼:200正常、302重定向、304本地緩存、404路徑或服務器資源已刪、500內部錯誤,服務器拋異常)、頭、體:服務器給客戶端的回寫頁面。沒有請求就沒有響應
java

Tomcat是開源免費web應用服務器,在安裝前先測試一下是否能正常啓動,打開目錄下startup.bat批處理,在瀏覽器打上 localhost:8080出來老虎頁面就是證實服務器啓動正常,注意:不能關閉批處理web

 Servlet入門:Servlet是一個類,按步驟來快速建立:建立類實現Servlet接口,再重寫service的三個方法,init、service、destroy(這時候重寫的方法就是 Servlet裏面的方法) 建立完成
apache

在去配置web.xml  要注意的是 :看圖小程序

jsp文件自己就一個Servlet,windows

 建立動態web項目

步驟:new--Dynamic--dynamic web module version (選2.5,和Tomcat 7.0支持xml文件 這裏會自動建立web.xml )--瀏覽器

Resources:src目錄裏放Java代碼緩存

WebContent:放靜態資源(頁面、圖片、js、cs文件)

webcontent下新建jsp文件,剛建的jsp報錯是由於沒有服務器

改頁面編碼windows-preference-搜jsp-找到jspfiles-Encoding-UTF-8(改好後,需新建1個或重新打開eclipse,因soft無自動刷新)

1、Http協議

1.什麼是Http協議

超文本傳輸協議(HyperText Transfer Protocol)是互聯網上應用最爲普遍的     一種網絡協議。全部3w文件必須遵照此標準。設計HTTP最初的目的:爲了提供一種發佈和接收HTML頁面的方法

2.Http協議的組成

Http協議由Http請求和Http響應組成,當輸入網址訪問網站時, 瀏覽器會將你的請求封裝成一個Http請求發送給服務器站點,服務器接收到請求後會組織響應數據封裝成一個Http響應返回給瀏覽器。即沒有請求就沒有響應

3.Http請求

1)請求

請求方式POST、GET

請求的資源:/DemoEE/form.html

協議版本:HTTP/1.1

HTTP/1.0,發送請求,建立一次鏈接,得到一個web資源,鏈接斷開

HTTP/1.1,......................................,得到多個web資源,保持鏈接

2)請求

請求頭是客戶端發送給服務器端的一些信息,使用鍵值對錶示key:value

常見請求頭

描述 (紅色掌握,其餘瞭解)

Referer

瀏覽器通知服務器,當前請求來自何處。若是是直接訪問,則不會有這個頭。經常使用於:防盜鏈

If-Modified-Since

瀏覽器通知服務器,本地緩存的最後變動時間。與另外一個響應頭組合控制瀏覽器頁面的緩存。

Cookie

與會話有關技術,用於存放瀏覽器緩存的cookie信息。

User-Agent

瀏覽器通知服務器,客戶端瀏覽器與操做系統相關信息

Connection

保持鏈接狀態。Keep-Alive 鏈接中,close 已關閉

Host

請求的服務器主機名

Content-Length

請求體的長度

Content-Type

若是是POST請求,會有這個頭,默認值爲application/x-www-form-urlencoded,表示請求體內容使用url編碼

Accept:

瀏覽器可支持的MIME類型。文件類型的一種描述方式。

MIME格式:大類型/小類型[;參數]

例如:

   text/html ,html文件

   text/css,css文件

   text/javascript,js文件

   image/*,全部圖片文件

Accept-Encoding

瀏覽器通知服務器,瀏覽器支持的數據壓縮格式。如:GZIP壓縮

Accept-Language

瀏覽器通知服務器,瀏覽器支持的語言。各國語言(國際化i18n)

 3)請求

請求方式是post,纔會有求體,請求參數格式:username=zhangsan&password=123

請求方式是get沒有請求體,會拼接在url地址後面   http://localhost:8080...?username=zhangsan&password=123

1.Http響應

1)響應行

Http協議

狀態碼:經常使用狀態碼以下

200 :請求成功。

302 :請求重定向。(服務器故意設置的)

304 :請求資源沒有改變,訪問本地緩存

404 :請求資源不存在。一般是用戶路徑編寫錯誤也可能服務器資源已刪除

500 :服務器內部錯誤。一般程序拋異常

狀態信息:狀態信息是根據狀態碼變化而變化的

2)響應頭

響應也都是鍵值對形式,服務器端將信息以鍵值對的形式返回給客戶端

常見請求頭

描述

Location

指定響應的路徑,須要與狀態碼302配合使用,完成跳轉。

Content-Type

響應正文的類型(MIME類型)

取值:text/html;charset=UTF-8

Content-Disposition

經過瀏覽器如下載方式解析正文

取值:attachment;filename=xx.zip

Set-Cookie

與會話相關技術。服務器向瀏覽器寫入cookie

Content-Encoding

服務器使用的壓縮格式

取值:gzip

Content-length

響應正文的長度

Refresh

定時刷新,格式:秒數;url=路徑。url可省略,默認值爲當前頁。

取值:3;url=www.oracle.cn    //三秒刷新頁面到www.oracle.cn

Server

指的是服務器名稱,默認值:Apache-Coyote/1.1。能夠經過conf/server.xml配置進行修改。<Connector port="8080" ... server="itcast"/>

Last-Modified

服務器通知瀏覽器,文件的最後修改時間。與If-Modified-Since一塊兒使用。

 

3)響應體服務器回寫給客戶端的頁面正文,瀏覽器把正文加載到內存,而後解析渲染,顯示頁面內容

2、Tomcat服務器

1.Web開發中的常見概念

(1)B/S系統和C/S系統

Brower/Server:瀏覽器 服務器 系統 ----- 網站

Client/Server:客戶端 服務器 系統 ----- QQ、飛秋、大型遊戲

(2)web應用服務器

向外部發布web資源的服務器軟件

(3)web資源

存在於web應用服務器可供外界訪問的資源就是web資源

例如:存在於web應用服務器內部的Html、Css、js、圖片、視頻等

1)靜態資源:指web頁面中供人們瀏覽的數據始終不變。好比:HTML、CSS、      JS、圖片、多媒體。

2)動態資源:指web頁面中供人們瀏覽的數據是由程序產生,不一樣時間點訪問  web頁面看到的內容各不相同。好比:JSP/Servlet、ASP、PHP

javaWEB領域:動態資源認爲經過java代碼去動態生成html

1.Tomcat的下載與安裝

(1)下載Tomcat

官網地址:http://tomcat.apache.org/whichversion.html

 儘可能下載zip格式  拖出來就能夠用

(2)安裝Tomcat

Tomcat有安裝版和解壓版(綠色版)

安裝版以.exe形式的安裝包,雙擊安裝到咱們的電腦上,用的比較少

解壓版,即綠色版,解壓後直接使用,用的比較多

 

2.Tomcat的目錄結構

bin:腳本目錄

      啓動腳本:startup.bat

      中止腳本:shutdown.bat

conf:配置文件目錄 (config /configuration)

      核心配置文件:server.xml

      用戶權限配置文件:tomcat-users.xml

      全部web項目默認配置文件:web.xml

lib:依賴庫,tomcat和web項目中須要使用的jar包

logs:日誌文件.

      localhost_access_log.*.txt tomcat記錄用戶訪問信息,星*表示時間。

      例如:localhost_access_log.2016-02-28.txt

temp臨時文件目錄,文件夾內內容能夠任意刪除。

webapps:默認狀況下發布WEB項目所存放的目錄。

work:tomcat處理JSP的工做目錄。

 測試Tomcat服務

在bin目錄下打開 startup.bat啓動Tomcat;

在瀏覽器地址欄輸入http://localhost:8080,下面圖爲服務器啓動成功。反之!

注意:測試Tomcat服務器時,在瀏覽器輸入http://localhost:8080前,必須先啓動Tomcat服務器,並且不能關閉該程序,不然打不開頁面的

若是啓動失敗,緣由分析:

1)沒有配置JAVA_HOME環境變量,一打開startup.bat就會閃退。必須配置正確,及JAVA_HOME指向JDK的安裝目錄

2)端口衝突

java.net.BindException: Address already in use: JVM_Bind <null>:8080

改Tomcat/conf/server.xml

 

注意WEB-INF目錄是受保護,外界不能直接訪問

Eclipse綁定Tomcat

 首先在Eclipse得到服務器運行環境配置,Window/Preferences

preferences彈出的界面中選擇Server -> Runtime... -> Add按鈕

 選7.0 ,而後Next

 添加Tomcat安裝目錄選擇JRE

 

Server Runtime library 添加完成,而後第二步驟配置

配置Tomcat服務器   Java Build Path

在項目上右擊 Build Path -> Configure Build Path

 

彈出的界面中選擇Libraries

 

選擇Server Library ,而後  Finish(注意:這裏顯示的選擇項目就是步驟1中完成的Server Runtime配置項目,若是沒有步驟一,這裏就顯示空白,配置就沒法進行下去了)

 

剛纔添加的library項目。而後必須點擊OK從新打開這個界面配置另一個頁籤的內容,不然配置完後你會發現錯誤信息依然存在並且重啓Eclipse也不行。點OK,從新進入這個界面後,選擇 Order and Export

 

注意

必須按照步驟1,2的順序來進行,除非以前已配置過步驟1了

步驟二添加完libraries頁籤後必須點擊OK,而後從新進入該界面再選擇Order and Export頁籤進行配置

 部署服務器

在server上右擊 Add and Remove

部署完後  開啓(start)或者中止(stop)

 打開後 在瀏覽器地址欄輸入  localhost:8080/WEB02/index.jsp

1、Servlet簡介

1.什麼是Servlet

Servlet 運行在服務端的Java小程序,是sun公司提供一套規範(接口),用來處理客戶端請求、響應給瀏覽器的動態資源。但servlet的實質就是java代碼,經過java的API 動態的向客戶端輸出內容

2.Servlet快速入門

實現步驟:

1)建立類實現Servlet接口

2)覆蓋還沒有實現的方法---重點實現service方法

3)在web.xml進行servlet的配置

實際開發中,咱們不直接實現Servlet接口,須要覆蓋的方法太多,  咱們通常建立類繼承HttpServlet

實現步驟:

1)建立類繼承HttpServlet類

2)覆蓋doGetdoPost

3)在web.xml中進行servlet的配置

原理圖

 

package com.oracle.demo01;
//建立類實現Servlet接口 
import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class MyServlet implements Servlet{
    public ServletConfig getServletConfig() {        
        return null;
    }

    public String getServletInfo() {        
        return null;
    }
    
//    第一次請求建立
    public void init(ServletConfig arg0) throws ServletException {        
        System.out.println("Servlet建立了");
    }
    
//    請求一次執行一次
    public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
        System.out.println("Servlet被請求了");        
    }
//    銷燬時執行
    public void destroy() {        
        System.out.println("Servlet被銷燬了");
    }        
}

配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>WEB02</display-name>
  
  <!-- 每一個Servlet標籤必須成對出現 -->
  <servlet>
  <!-- 這裏能夠隨便起名,但爲了規範通常這裏寫類名 注意:這裏寫上面下面的name就必須跟着寫什麼 -->
      <servlet-name>MyServlet</servlet-name>
      <!-- 這裏要寫完整的包名和類名  class是類路徑  用.   -->
      <servlet-class>com.oracle.demo01.MyServlet</servlet-class>
  </servlet>
      <servlet-mapping>
      <!-- 這裏的name必須跟上面如出一轍 跟着上面寫 -->
      <servlet-name>MyServlet</servlet-name>
      <!-- 虛擬路徑 能夠隨便寫名,但這裏寫啥 地址欄就寫啥 格式: /+名字  -->
      <url-pattern>/1</url-pattern>
  </servlet-mapping>
  
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

寫完後,要重新部署一下 server ,刪掉WEB02 重新添加 ADD and Remove

添加成功後,啓動服務 而後輸入web網址   http://localhost:8080/WEB02/1  

 若是關閉服務器 在 Tomcat v7.0 Server 右擊 stop

注意:若是非正常關閉的話,destory是不會運行的 

 init方法 建立的時候 執行

service方法 請求一次執行一次

destory方法 銷燬的時候執行

 虛擬路徑 執行原理圖

相關文章
相關標籤/搜索