JavaEE總結
JSP頁面的組成:
-
註釋元素:
- HTML中的註釋:;此註釋會顯示在客戶端中。
- JSP中的註釋<%-- 註釋–%>:不會顯示在客戶端,只會顯示在服務器端。
- 腳本元素中的註釋:// 多行/****/ 只能用於java腳本由於java腳本語言中。
-
指令元素
-
page指令:
- language屬性 該屬性用於設置JSP頁面使用的語言,目前只支持Java語言。例:<%@ page language=”java” %>
- import屬性 該屬性用於設置JSP所導入的類包,JSP頁面可以嵌入Java代碼片段,這些Java代碼在調用API時需要導入相應的類包。例:<%@page import=”java.util.*” %>
- pageEncoding屬性 該屬性用於定義JSP頁面的編碼格式,指定的文件編碼格式。例:<%@ page pageEncoding=”UTF-8” %>
- contentType屬性 該屬性用於設置JSP頁面的MIME類型和字符編碼,瀏覽器會根據些解釋頁面。 例:<%@ page contentType=”text/html;charset=utf-8” %>
- session屬性 該屬性用於定義JSP頁面是否使用session會話對象,其值是boolean類型,默認值爲true. Eg:<%@ page session=”true” %>
- errorPage屬性 該屬性用於定義此JSP頁面發生錯誤時所轉發到的另外一個JSP頁面,用於處理此頁面所發生的錯誤。 Eg:<%@page errorPage=”error.jsp” %>
-
include指令:nclude指令用於文件包含,該指令可以在一個JSP頁面中包含另外一個文件中的內容,並且只能支持靜態包含。
-
taglib指令:taglib指令允許用戶使用標籤庫自定義新的標籤。
-
腳本元素:
- 全局變量:<%! 變量 %>,被轉換成servlet中的實例屬性和實例方法
- 表達式:<% = %>,相當於:System.out.prlntln()。
- 腳本:<% %>,最後會將多個的腳本文合併放在service()中。
-
動作元素:
- < jsp:param > :通過鍵值對的方式爲其他標籤提供附加信息;<jsp:param name="" value=""/>。
- < jsp:include >:文件包含,最終結果是包含兩個文件。也稱爲動態包含,是在運行的時候動態的查找此文件。
- < jsp:forward >:請求轉發,每當遇到此操作時,就停止執行當前的jsp,轉而執行被轉發的資源。
- < jsp:useBean >:導入javaBean。
- < jsp:plugin >:使用相關的插件。
JSP中內置的九大對象:
對象 | 作用 |
---|---|
pageContext | 表示JSP頁面容器,pageContext 對象的作用是取得任何範圍的參數,通過它可以獲取 JSP頁面的out、request、reponse、session、application 等對象。pageContext對象的創建和初始化都是由容器來完成的,在JSP頁面中可以直接使用 pageContext對象。 |
request | 該對象代表了客戶端的請求信息,主要用於接受通過HTTP協議傳送到服務器的數據。(包括頭信息、系統信息、請求方式以及請求參數等)。request對象的作用域爲一次請求。 |
response | 代表的是對客戶端的響應,主要是將JSP容器處理過的對象傳回到客戶端。response對象也具有作用域,它只在JSP頁面內有效。 |
session | session 對象是由服務器自動創建的與用戶請求相關的對象。服務器爲每個用戶都生成一個session對象,用於保存該用戶的信息,跟蹤用戶的操作狀態。session對象內部使用Map類來保存數據,因此保存數據的格式爲 “Key/value”。 session對象的value可以使複雜的對象類型,而不僅僅侷限於字符串類型。 |
application | application 對象可將信息保存在服務器中,直到服務器關閉,否則application對象中保存的信息會在整個應用中都有效。與session對象相比,application對象生命週期更長,類似於系統的“全局變量”。 |
out | out 對象用於在Web瀏覽器內輸出信息,並且管理應用服務器上的輸出緩衝區。在使用 out 對象輸出數據時,可以對數據緩衝區進行操作,及時清除緩衝區中的殘餘數據,爲其他的輸出讓出緩衝空間。待數據輸出完畢後,要及時關閉輸出流。 |
config | config 對象的主要作用是取得服務器的配置信息。通過 pageConext對象的 getServletConfig() 方法可以獲取一個config對象。當一個Servlet 初始化時,容器把某些信息通過 config對象傳遞給這個 Servlet。 開發者可以在web.xml 文件中爲應用程序環境中的Servlet程序和JSP頁面提供初始化參數。 |
page | page 對象代表JSP本身,只有在JSP頁面內纔是合法的。 page隱含對象本質上包含當前 Servlet接口引用的變量,類似於Java編程中的 this 指針。 |
exception | exception 對象的作用是顯示異常信息,只有在包含 isErrorPage=“true” 的頁面中才可以被使用,在一般的JSP頁面中使用該對象將無法編譯JSP文件。excepation對象和Java的所有對象一樣,都具有系統提供的繼承結構。exception 對象幾乎定義了所有異常情況。在Java程序中,可以使用try/catch關鍵字來處理異常情況; 如果在JSP頁面中出現沒有捕獲到的異常,就會生成 exception 對象,並把 exception 對象傳送到在page指令中設定的錯誤頁面中,然後在錯誤頁面中處理相應的 exception 對象。 |
JSP的執行過程:
- 客戶端發起請求:
- web容器將jsp主轉化爲servlet代碼,就是將其翻譯爲文件名_jsp.java的代碼。
- 將servlet轉化爲class文件。
- web容器加載class文件並執行。
- 將執行的結果相應給客戶端。
再次相應的時候直接進行第四步,直到修改了源文件後纔會將其重新編譯。
session和cookie
cookie :
客戶在訪問服務器的時候,服務器會將一些數據 通過key/value的形式發送給客戶端,並加上一些限制條件,在條件符合時,這個用戶下次訪問這個服務器的時候,數據將會被完整的帶回給服務器。
session:
客戶在第一次訪問服務器的時候,服務器會生成一個HttpSession的對象,並交給Manager中的session容器管理,以後每次客戶端在訪問的時候,會將原來的sessionID通過或cookie(名爲JSESSIONID)交給服務器,如果瀏覽器禁用了cookie的話,會將這個鍵值對放在URLpath中。
兩者的異同:
session | cookie | |
---|---|---|
保存的位置 | 服務器端 | 客戶端 |
安全性 | 較安全 | 較不安全 |
保存的內容 | Object | String |