天天看點

Java之Jsp、Servlet

1、jsp有哪些内置對象作用分别是什麼

答:JSP共有以下9種基本内置元件(可與ASP的6種内部元件相對應):

  request 使用者端請求,此請求會包含來自GET/POST請求的參數 

    response 網頁傳回使用者端的回應 

    pageContext 網頁的屬性是在這裡管理 

    session 與請求有關的會話期 

    application servlet 正在執行的内容 

    out 用來傳送回應的輸出

    config servlet的構架部件 

    page JSP網頁本身 

    exception 針對錯誤網頁,未捕捉的例外

2、jsp有哪些動作作用分别是什麼

答:JSP共有以下6種基本動作

   jsp:include:在頁面被請求的時候引入一個檔案。 

   jsp:useBean:尋找或者執行個體化一個JavaBean。 

   jsp:setProperty:設定JavaBean的屬性。 

   jsp:getProperty:輸出某個JavaBean的屬性。 

   jsp:forward:把請求轉到一個新的頁面。 

   jsp:plugin:根據浏覽器類型為Java插件生成OBJECT或EMBED标記

3、JSP中動态INCLUDE與靜态INCLUDE的差別?

答:動态INCLUDE用jsp:include動作實作

       它總是會檢查所含檔案中的變化,适合用于包含動态頁面,并且可以帶參數

       靜态INCLUDE用include僞碼實作,定不會檢查所含檔案的變化,适用于包含靜态頁面

4、兩種跳轉方式分别是什麼有什麼差別

答:有兩種,分别為:

前者頁面不會轉向include所指的頁面,隻是顯示該頁的結果,首頁面還是原來的頁面。執行完後還會回來,相當于函數調用。并且可以帶參數.後者完全轉向新頁面,不會再回來。相當于go to 語句。

5、JSP的内置對象及方法。

request表示HttpServletRequest對象。它包含了有關浏覽器請求的資訊,并且提供了幾個用于擷取cookie,header, 和session資料的有用的方法。

    response表示HttpServletResponse對象,并提供了幾個用于設定送回浏覽器的響應的方法(如cookies,頭資訊等)

    out對象是javax.jsp.JspWriter的一個執行個體,并提供了幾個方法使你能用于向浏覽器回送輸出結果。 

   pageContext表示一個javax.servlet.jsp.PageContext對象。它是用于友善存取各種範圍的名字空間、servlet相關的對象的API,并且包裝了通用的servlet相關功能的方法。

    session表示一個請求的javax.servlet.http.HttpSession對象。Session可以存貯使用者的狀态資訊 

    applicaton 表示一個javax.servle.ServletContext對象。這有助于查找有關servlet引擎和servlet環境的資訊

    config表示一個javax.servlet.ServletConfig對象。該對象用于存取servlet執行個體的初始化參數。 

    page表示從該頁面産生的一個servlet執行個體

6、JSP&Servlet技術

1. 描述JSP和Servlet的差別、共同點、各自應用的範圍

2. 在Web開發中需要處理HTML标記時,應做什麼樣的處理,要篩選那些字元(< > &“”)

3. 在JSP中如何讀取用戶端的請求,如何通路CGI變量,如何确定某個Jsp檔案的真實路徑。

4. 描述Cookie和Session的作用,差別和各自的應用範圍,Session工作原理。

5. 列出Jsp中包含外部檔案的方式,兩者有何差別。

6. 說明Jsp中errorPage的作用,應用範圍。

7. 介紹在Jsp中如何使用JavaBeans。

8. 簡單介紹JSP的标記庫

9. Jsp和Servlet中的請求轉發分别如何實作。

10.    JSP的常用指令

isErrorPage(是否能使用Exception對象),isELIgnored(是否忽略表達式)

7、什麼情況下調用doGet()和doPost()?

Jsp頁面中的form标簽裡的method屬性為get時調用doGet(),為post時調用doPost()。

8、servlet的生命周期

web容器加載servlet,生命周期開始。通過調用servlet的init()方法進行servlet的初始化。通過調用service()方法實作,根據請求的不同調用不同的do***()方法。結束服務,web容器調用servlet的destroy()方法。

9、JSP和Servlet有哪些相同點和不同點,他們之間的聯系是什麼?

是Servlet技術的擴充,本質上是Servlet的簡易方式,更強調應用的外表表達。JSP編譯後是"類servlet"。Servlet和JSP最主要的不同點在于,Servlet的應用邏輯是在Java檔案中,并且完全從表示層中的HTML裡分離開來。而JSP的情況是Java和HTML可以組合成一個擴充名為.jsp的檔案。JSP側重于視圖,Servlet主要用于控制邏輯。

10、四種會話跟蹤技術

會話作用域ServletsJSP 頁面描述page否是代表與一個頁面相關的對象和屬性。

一個頁面由一個編譯好的 Java servlet 類(可以帶有任何的 include 指令,但是沒有 include 動作)表示。這既包括 servlet 又包括被編譯成 servlet 的 JSP 頁面

request是是代表與 Web 客戶機發出的一個請求相關的對象和屬性。一個請求可能跨越多個頁面,涉及多個 Web 元件(由于 forward 指令和 include 動作的關系)

session是是代表與用于某個 Web 客戶機的一個使用者體驗相關的對象和屬性。一個 Web 會話可以也經常會跨越多個客戶機請求

application是是代表與整個 Web 應用程式相關的對象和屬性。這實質上是跨越整個 Web 應用程式,包括多個頁面、請求和會話的一個全局作用域

11、Request對象的主要方法:

setAttribute(String name,Object):設定名字為name的request的參數值

getAttribute(String name):傳回由name指定的屬性值

getAttributeNames():傳回request對象所有屬性的名字集合,結果是一個枚舉的執行個體

getCookies():傳回用戶端的所有Cookie對象,結果是一個Cookie數組

getCharacterEncoding():傳回請求中的字元編碼方式

getContentLength():傳回請求的Body的長度

getHeader(String name):獲得HTTP協定定義的檔案頭資訊

getHeaders(String name):傳回指定名字的request Header的所有值,結果是一個枚舉的執行個體

getHeaderNames():傳回是以request Header的名字,結果是一個枚舉的執行個體

getInputStream():傳回請求的輸入流,用于獲得請求中的資料

getMethod():獲得用戶端向伺服器端傳送資料的方法

getParameter(String name):獲得用戶端傳送給伺服器端的有name指定的參數值

getParameterNames():獲得用戶端傳送給伺服器端的所有參數的名字,結果是一個枚舉的執行個體

getParameterValues(String name):獲得有name指定的參數的所有值

getProtocol():擷取用戶端向伺服器端傳送資料所依據的協定名稱

getQueryString():獲得查詢字元串

getRequestURI():擷取送出請求字元串的用戶端位址

getRemoteAddr():擷取用戶端的IP位址

getRemoteHost():擷取用戶端的名字

getSession([Boolean create]):傳回和請求相關Session

getServerName():擷取伺服器的名字

getServletPath():擷取用戶端所請求的腳本檔案的路徑

getServerPort():擷取伺服器的端口号

removeAttribute(String name):删除請求中的一個屬性

12、Servlet執行時一般實作哪幾個方法?

public void init(ServletConfig config)

public ServletConfig getServletConfig()

public String getServletInfo()

public void service(ServletRequest request,ServletResponse response)

public void destroy()JSP