1. 程式人生 > >http,servlet,jsp-java web後臺知識簡單總結

http,servlet,jsp-java web後臺知識簡單總結

http,servlet,jsp 總結,包括 servletConfig,servletContext,servletRequest,servletResponse,session,cookie,EL 表示式,jstl 標籤庫,servletFilter等知識點,這裡只是總結一些介紹性的東西,具體的應用檢視對用的 API 文件就好,就不說具體應用了。

http

servlet

一個 servlet 實現物件可以處理一個請求,一個 web 應用中有多個 servlet 實現物件,他們之間的資料互動通過 servletContext 完成。

Servlet的執行過程

Servlet程式是由WEB伺服器呼叫,web伺服器收到客戶端的Servlet訪問請求後:

  1. Web伺服器首先檢查是否已經裝載並建立了該Servlet的例項物件。如果是,則直接執行第4步,否則,執行第2步。
  2. 裝載並建立該Servlet的一個例項物件。
  3. 呼叫Servlet例項物件的init()方法。
  4. 建一個用於封裝HTTP請求訊息的HttpServletRequest物件和一個代表HTTP響應訊息的HttpServletResponse物件,然後呼叫Servlet的service()方法並將請求和響應物件作為引數傳遞進去。
  5. WEB應用程式被停止或重新啟動之前,Servlet引擎將解除安裝Servlet,並在解除安裝之前呼叫Servlet的destroy()方法。

servletConfig

在 Servlet 的配置檔案中,可以使用一個或多個 <init-param> 標籤為 servlet 配置一些初始化引數。

當 servlet 配置了初始化引數後,web容器在建立servlet例項物件時,會自動將這些初始化引數封裝到ServletConfig物件中,並在呼叫servlet的init方法時,將ServletConfig物件傳遞給servlet。進而,程式設計師通過ServletConfig物件就可以得到當前servlet的初始化引數資訊。

 servletContext

WEB容器在啟動時,它會為每個WEB應用程式都建立一個對應的ServletContext物件,它代表當前web應用。

ServletContext物件被包含在ServletConfig物件中,開發人員在編寫servlet時,可以通過ServletConfig.getServletContext方法獲得對ServletContext物件的引用。

由於一個WEB應用中的所有Servlet共享同一個ServletContext物件,因此Servlet物件之間可以通過ServletContext物件來實現通訊。ServletContext物件通常也被稱之為context域物件。

ServletContext應用

  1. 多個Servlet通過ServletContext物件實現資料共享。
  2. 獲取WEB應用的初始化引數。
  3. 實現Servlet的轉發。
  4. 利用ServletContext物件讀取資原始檔。
    得到檔案路徑
    讀取資原始檔的三種方式
    .properties檔案(屬性檔案)

servletRequest

API資訊:
獲得客戶機資訊

getRequestURL方法返回客戶端發出請求時的完整URL。
getRequestURI方法返回請求行中的資源名部分。
getQueryString 方法返回請求行中的引數部分。
getPathInfo方法返回請求URL中的額外路徑資訊。額外路徑資訊是請求URL中的位於Servlet的路徑之後和查詢引數之前的內容,它以“/”開頭。
getRemoteAddr方法返回發出請求的客戶機的IP地址
getRemoteHost方法返回發出請求的客戶機的完整主機名
getRemotePort方法返回客戶機所使用的網路埠號
getLocalAddr方法返回WEB伺服器的IP地址。
getLocalName方法返回WEB伺服器的主機名

獲得客戶機請求頭

getHeader方法 
getHeaders方法 
getHeaderNames方法 
獲得客戶機請求引數(客戶端提交的資料)
getParameter方法
getParameterValues(String name)方法
getParameterNames方法 
getParameterMap方法

request常見應用

  1. 防盜鏈
  2. 各種表單輸入項資料的獲取
    text、password、radio、checkbox、file、select、textarea、 hidden、image、button給js程式設計用
  3. 請求引數的中文亂碼問題
  4. Javascript防止表單重複提交
  5. URL地址的編碼
  6. request物件實現請求轉發:請求轉發指一個web資源收到客戶端請求後,通知伺服器去呼叫另外一個web資源進行處理。
  7. 請求轉發的應用場景:MVC設計模式
  8. request物件提供了一個getRequestDispatcher方法,該方法返回一個RequestDispatcher物件,呼叫這個物件的forward方法可以實現請求轉發。
    9。 request物件同時也是一個域物件,開發人員通過request物件在實現轉發時,把資料通過request物件帶給其它web資源處理。
    setAttribute方法
    getAttribute方法
    removeAttribute方法
    getAttributeNames方法

response常見應用

  1. 向客戶端輸出中文資料
    分別以OutputStream和PrintWriter輸出
    用OutputStream輸出1,客戶端看到的是什麼?
  2. 檔案下載
  3. 生成隨機圖片
  4. 傳送http頭,控制瀏覽器定時重新整理網頁(REFRESH)
  5. 傳送http頭,控制瀏覽器禁止快取當前文件內容
    多學一招:使用html語言裡面的標籤來控制瀏覽器行為
  6. 通過response實現請求重定向。
  7. 請求重定向指:一個web資源收到客戶端請求後,通知客戶端去訪問另外一個web資源,這稱之為請求重定向。
    應用場景:使用者註冊。
    實現方式:response.sendRedirect()
    實現原理:302狀態碼和location頭即可實現重定向

什麼是會話?
會話可簡單理解為:使用者開一個瀏覽器,點選多個超連結,訪問伺服器多個web資源,然後關閉瀏覽器,整個過程稱之為一個會話。

會話過程中要解決的一些問題?
每個使用者在使用瀏覽器與伺服器進行會話的過程中,不可避免各自會產生一些資料,伺服器要想辦法為每個使用者儲存這些資料。
例如:多個使用者點選超連結通過一個servlet各自購買了一個商品,伺服器應該想辦法把每一個使用者購買的商品儲存在各自的地方,以便於這些使用者點結帳servlet時,結帳servlet可以得到使用者各自購買的商品為使用者結帳。

儲存會話資料的兩種技術:

  1. Cookie
    Cookie是客戶端技術,伺服器把每個使用者的資料以cookie的形式寫給使用者各自的瀏覽器。當用戶使用瀏覽器再去訪問伺服器中的web資源時,就會帶著各自的資料去。這樣,web資源處理的就是使用者各自的資料了。
  2. Session
    Session是伺服器端技術,利用這個技術,伺服器在執行時可以為每一個使用者的瀏覽器建立一個其獨享的session物件,由於session為使用者瀏覽器獨享,所以使用者在訪問伺服器的web資源時,可以把各自的資料放在各自的session中,當用戶再去訪問伺服器中的其它web資源時,其它web資源再從使用者各自的session中取出資料為使用者服務。

session 技術

cookie 技術

JSP

MVC 架構中的 view 用的就是 jsp 技術。

jsp 原理:jsp 會被 tomcat 翻譯為一個 servlet 例項物件。

jsp 語法挺簡答的,就是 9 大隱式物件要記一下。

掌握下面的就差不多了:

JSP表示式
JSP指令碼程式
JSP註釋
JSP指令
JSP標籤 
JSP隱式物件

EL表示式入門

EL表示式用於獲取資料,在JSP頁面中可使用${識別符號}的形式,通知JSP引擎呼叫pageContext.findAttribute()方法,以識別符號為關鍵字從各個域物件中獲取物件。如果域物件中不存在識別符號所對應的物件,則返回結果為””(注意,不是null)。

EL表示式中也可以使用${customerBean.address}的形式來訪問JavaBean物件的屬性。

結合JSTL標籤,EL表示式也可輕鬆獲取各種集合中的元素。

EL表示式也可使用類如${1==1}的形式進行簡單的邏輯判斷。

JSTL標籤庫入門

JSTL是sun公司開發的一套標籤庫,使用JSTL可以在頁面中實現一些簡單的邏輯,從而替換頁面中的指令碼程式碼。

在頁面中使用JSTL標籤需完成以下2個步驟:

1. 匯入jstl.jar和standerd.jar這兩個JSTL的jar檔案。
2. 在JSP頁面中使用<%@ tablib url=“” prifix=“” %>元素匯入標籤庫。

JSTL標籤庫中常用標籤:

<c:foreach var=“” items=“”>
<c:if test=“”>

servletFilter

Servlet API中提供了一個Filter介面,開發web應用時,如果編寫的Java類實現了這個介面,則把這個java類稱之為過濾器Filter。通過Filter技術,開發人員可以實現使用者在訪問某個目標資源之前,對訪問的請求和響應進行攔截,如下所示:

自己感覺類似於動態代理,或者是面向切面程式設計的思想。

其他的一些知識和 httpServlet 差不多,就不詳細說了。

相關推薦

http,servlet,jsp-java web後臺知識簡單總結

http,servlet,jsp 總結,包括 servletConfig,servletContext,servletRequest,servletResponse,session,cookie,EL 表示式,jstl 標籤庫,servletFilter等知識點

XML,tomcat-java web後臺知識簡單總結

最近學了一段時間的 java web 後臺,所學內容主要為網上視訊,以及《深入分析 java web 技術內幕》一書,先總結一下 XML 和 tomcat 內容。 XML Xml 檔案解讀 關於XML文件的xmlns、xmlns:xsi和xsi

servlet+jsp+java實現Web應用

example iter() meta ike 另一個 method bmi servlet 工程 servlet+jsp+java實現Web應用 環境: 1,eclipse 2,tomcat3,eclipse tomcat 插件 開發過程: 1,建立一個Dynamic W

Java Web基礎知識Servlet(3):Session管理

Session 管理是Web應用開發中的一個重要的內容,其實每天我們瀏覽網站,網站的後臺都是通過這門技術來記錄我們的瀏覽狀態,最典型的就是登入,每次你在網站上登入一次,當跳轉到該網站的任何其他頁面都不會再次要求你登入,這就是使用了Session管理技術。那麼問題來了我們為什

Java Web基礎知識Servlet容器初始化(無web.xml)

在之前典型的Java Web程式中,部署描述符web.xml是必不可少的,在這裡我們需要配置各種元件,包括Servlet、Filter和Listener等,如果使用過SpringMVC的話,應該會對在web.xml中配置org.springframework.w

【個人學習筆記】Java Web用一個簡單jsp頁面實現輸出100以內的素數

<%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8" pageEncoding="utf-8"%> <html> <

商城專案小總結(基於jspservletJava Web開發)

商品的查詢和刪除操作與往常一致,這裡著重說明的是商品的新增和修改。新增商品需要上傳照片,因此要用到檔案上傳下載的知識。檔案的上傳流程大致為:首先建立一個檔案解析工廠,接著通過解析工廠建立一個檔案解析器,解析器是用來解析request物件中的資訊,就是新增商品jsp頁面中,input輸入框中的name屬性。解

關於servlet+jsp+java實現Web登陸頁介面的一些筆記(四)

2.3.1響應訊息格式HTTP響應訊息的格式如下所示:狀態行通用資訊頭|響應頭|實體頭CRLF實體內容其中:狀態行 = 版本號 [空格] 狀態碼 [空格] 原因 [回車換行]狀態行舉例:Eg1:HTTP/1.0 200 OK Eg2:HTTP/1.1 400 Bad RequestHTTP響應訊息例項如下所示

Java——Web開發之簡單的學生資訊管理系統

這僅僅是一個跟著視訊學習的小系統,大牛就繞道啦~ 系統實現的功能: 與mysql資料庫連線,實現登陸功能 管理員登陸成功後能檢視學生資訊 擴充套件功能(完成刪除與更新學生資訊的操作) 系統實現過程: 寫一個簡單的登陸

Java web架構知識整理——我在阿里的一次面試經歷

慚愧,從一次電面說起。我個人在某國企做一名軟體設計師,國企大家都懂的,待遇一般而且沒啥意思,做的方向基本都是作業系統、驅動和工具軟體的開發,語言基本都是C/C++。最近也想跳槽,剛好有幸得到了一次阿里的面試機會,於是就試了試。 首先是電話面試,當時正在上班,人多口雜,好不容易找了個沒人的地方開始

java web後臺學習路線

java web後臺學習計劃 一、基礎學習(java) java基礎語法 集合 io 多執行緒 併發 反射 網路程式設計 java不管你現在學的怎麼樣,到最後肯定要全部重新溫習一遍的。大一下學期jav

RabbitMQ在java-web中的簡單應用

RabbitMQ的使用場景 MQ,是Message Queue(訊息佇列)的簡寫。簡而言之,RabbitMQ就是將訊息儲存在佇列中。 在專案的實際開發過程中,可以將一些無需即時返回結果且耗時的操作提取出來,進行非同步處理。這種處理方式能夠大大節省伺服器的請求響應

Java web 後臺選單許可權驗證方法

首先有個選單表,和許可權表,使用者表, 使用者表id 關聯許可權id 許可權表中要有個 許可權欄位 下面開始說許可權欄位中的資料存什麼: 這裡我們運用BitInteger這個類 1.在建立角色許可權時首先運用 BitInteger中setBit( int);方法將所有

android與java web互動完成簡單的登入和註冊

   本文的知識點包括android客戶端的網路程式設計、訊息機制、IO流、多執行緒和java web伺服器端的servlet、資料庫操作、javabean技術、工具類和測試類的使用。 客戶端 執行效果圖 佈局檔案 activity_main.xml <

Java web後臺插入資料庫中文亂碼問題解決

前言:專案想要避免亂碼情況的出現,要保持伺服器、資料庫、專案、以及前端編碼一致。 一、專案以及前端編碼,設定。myeclipse--->右鍵專案--->Properties--->Resource--->Text file encoding-----

Java Web基礎知識之檔案下載:當你下載檔案的時候到底發生了什麼?

從網上下載檔案幾乎是每個人都會遇到的,不管是圖片、文字檔案還是一些視訊,但是我們真的知道在下載的過程中發生了什麼嗎?本文章就學習一下其中的原理。 關於檔案下載存在靜態下載和動態下載兩種,靜態下載是比較容易的,我們平常在網上對很多圖片和和視訊等的下載有很多其實就是靜態下載,那

Java Web基礎知識之檔案上傳:檔案上傳一窺究竟

其實檔案上傳的文章已經寫得很多了,但是好多文章都是都是說明了怎麼實現,沒有說這個過程到底發生了什麼(會不會引來仇恨。。),其實實現檔案上傳並不複雜,也沒有多少程式碼,但是要是清楚的明白其中的原理還是費點功夫的,這裡就還原檔案上傳的整個過程。 其實關於檔案上傳在最早之前是使用

java web後臺開發跟手機APP後臺開發有什麼不同

基本上一樣的,ssh也可以為手機APP開發後臺。其實對於後臺開發來說原理都差不多。只不過app的後臺開發和web不一樣的地方在於傳輸資料格式不一樣,一般來說web訪問後返回的是一個html頁面,少部分

二叉排序樹,java實現(知識簡單的實現,持續完善更新)

定義: 二叉排序樹就是左子樹都比節點小,右子樹都比節點大。簡單的排序二叉樹實現。 程式碼: package com.wzq.data_structure; public class Bina

Java Web基礎知識之Filter:過濾一切你不想看到的事情

不要相信客戶端, 所以做後端的人都應該銘記的事情。因為前端傳過來的資料並不總是合法和有效的,所以後端是對訪問資源的最後一道保護傘。之前我們在Spring中說到過AOP程式設計,AOP基礎知識,它就可以在執行我們的方法之前進行一些預處理和驗證來保護後端的資源。不難想到她的實現