日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Java知识整理——ServletJSP

發(fā)布時間:2024/2/28 javascript 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java知识整理——ServletJSP 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Servlet

  • 什么是Servlet?
    servlet是用來處理客戶端請求并生成動態(tài)web內(nèi)容的Java程序語言類。Servlets大多是用來處理或者存儲HTML表單提交的數(shù)據(jù),提供動態(tài)內(nèi)容和管理那些不在HTTP無狀態(tài)協(xié)議中的狀態(tài)信息。
  • 解釋一個Servlet的架構(gòu).
    核心抽象概念肯定是所有servlet必須實(shí)現(xiàn) javax.servlet.Servlet 接口。 每個 servlet 必須直接或者間接實(shí)現(xiàn)這個接口, 也可以繼承于 javax.servlet.GenericServlet 或者javax.servlet.http.HTTPServlet。最后想提的是,每個 servlet 能夠使用多線程服務(wù)多個請求。
  • 一個 Applet 和 一個 Servlet 區(qū)別是什么 ?
    一個 Applet 是一個跑在客戶機(jī)器的 網(wǎng)頁瀏覽器 里面的 客戶端java程序。相反,一個 servlet 是跑在網(wǎng)頁服務(wù)器的服務(wù)的容器。一個 applet 能使用用戶界面class, 而一個 servlet 不能夠有一個用戶界面。相反,一個servlet 等待客戶端的 HTTP 請求并為每一個請求生成一個響應(yīng)。
  • GenericServlet 和 HttpServlet 的區(qū)別是什么 ?
    GenericServlet 是一個實(shí)現(xiàn)了Servlet 和 ServletConfig 接口的通用的協(xié)議無關(guān)的 servlet . 那些繼承于GenericServlet 類的 servlet 將重寫 service 方法 。最后想提的是,為了給Web用戶開發(fā)一個使用HTTP協(xié)議服務(wù)的HTTP servlet, 你的 servlet 必須改為繼承于 HttpServlet 。查看Servlet的示例 。
  • 解釋一個Servlet的生命周期.
    對每一個客戶端的請求,這個Servlet引擎加載servlet和調(diào)用它的init方法,以便在servlet初始化。然后, Servlet對象處理所有從客戶端來的后續(xù)請求,通過為每個請求單獨(dú)調(diào)用服務(wù)的方法。最后,該servlet調(diào)用服務(wù)器的destroy方法。
  • doGet()和doPost()之間的區(qū)別是什么?
    doGet : GET方法附加請求的URL的名稱 - 值對。因此,存在客戶端的請求字符數(shù)量的限制。此外,該請求的參數(shù)值為可見,因此,如果有敏感信息不能采用這種方式。
    doPost: POST方法克服了GET請求的限制,將發(fā)送請求的值置于body里。此外,發(fā)送值的數(shù)量沒有限制。最后,通過POST請求傳遞的敏感信息是不可見的
  • web應(yīng)用是什么 ?
    web應(yīng)用是web服務(wù)的延伸. 主要有兩種類型:面向視覺的和面向服務(wù)的. 面向視覺型的應(yīng)用通過編輯語言來動態(tài)展示交互頁面. 面向應(yīng)用的則提供了后端的service.總的來說,就是一堆置于 server’s URL明明空間下的servlets.
  • 什么是服務(wù)端包含 (SSI) ?
    服務(wù)端包含是服務(wù)端的一種簡單腳本語言,主要應(yīng)用在Web方面,置于servlet標(biāo)簽中. 最常用的地方就是在網(wǎng)頁中引入一個或多個文件. 當(dāng)瀏覽器加載頁面時,使用servlet產(chǎn)生的超文本替換其標(biāo)簽.
  • 什么是 Servlet 鏈?
    Servlet 鏈?zhǔn)侵笇⑸弦粋€servlet的結(jié)果傳到下一個.第二個的結(jié)構(gòu)又可以傳到第三個. 最后的servlet負(fù)責(zé)將響應(yīng)回復(fù)給客戶端.
  • 如何知道請求 servlet的客戶端信息 ?
    ServletRequest類可以獲取客戶端的IP地址或主機(jī)名. getRemoteAddr()獲取IP getRemoteHost()獲取主機(jī)名. 示例如下 here.
  • Http response的結(jié)構(gòu)是什么 ?
    HTTP response 包括了三個部分:
    Status Code: 描述了這次回應(yīng)的狀況. 它可以用來檢查這次請求是否成功完成. 一旦請求失敗了, 這個status code可以用來尋找原因. 如果你的 servlet 沒有返回一個status code, 默認(rèn)就會返回成功的status code, HttpServletResponse.SC_OK.
    HTTP Headers: 它包含了response的更多信息.舉個例子,headers可以反應(yīng)response的訪問date/time, 或者是用于將實(shí)體安全地傳送到用戶的編碼形式。可以閱讀 how to retrieve headers in Servlet here.
    Body: 它是response的具體內(nèi)容. 可能包括HTML內(nèi)容,比如圖片。Body包括了緊接Header發(fā)送的HTTP事務(wù)消息數(shù)據(jù)字節(jié)。
  • 什么是cookie?session和cookie之間的區(qū)別是什么?
    Cookie是Web服務(wù)器發(fā)送到瀏覽器的一小塊信息,瀏覽器為每個Web服務(wù)器在本地文件中存儲cookie。 在以后的請求里, 瀏覽器對特定的Web服務(wù)器,將request和所有特定的Web服務(wù)器的cookie一起發(fā)送。Session和Cookie之間的區(qū)別如下:
    Session無論在客戶端瀏覽器的設(shè)置都可以工作。客戶端可以選擇禁用cookies。然而,Session仍然可以工作,因?yàn)榭蛻舳藳]有能力在服務(wù)器端禁用Session。
    Session和cookie也有不同的信息存儲量。 HTTP會話能夠存儲任何Java對象,而一個cookie只能保存String對象。
  • 瀏覽器和servlet通過什么協(xié)議通信 ?
    HTTP協(xié)議.
  • 什么是HTTP通道 ?
    通道是指使用 HTTP或 HTTPS 封裝其它的網(wǎng)絡(luò)協(xié)議. HTTP包裝了其他的網(wǎng)絡(luò)通信協(xié)議. 其它協(xié)議通過HTTP來發(fā)送請求的過程就使用了通道.
  • sendRedirect和 forward 方法的區(qū)別?
    sendRedirect創(chuàng)建一個新的請求, forward只是將請求轉(zhuǎn)發(fā).之前請求中包含的對象在redirect后將不可用, 因?yàn)楫a(chǎn)生了一個新的請求. 但是 forwarding不受此限制.通常來說,sendRedirect 比 forward 方法慢一些.
  • 什么是URL編碼和解碼 ?
    URL編碼就是替換其中的空格和特殊字符, 變成相應(yīng)的Hex碼.解碼就是反向操作。
  • JSP

  • JSP頁面是什么 ?
    一個JSP頁面是一個文本文檔,包含了兩種類型的文本:靜態(tài)數(shù)據(jù)和JSP元素。靜態(tài)數(shù)據(jù)可以以任何一種基于文本的格式表達(dá),比如HTML或者XML。JSP是一種混合了靜態(tài)內(nèi)容與動態(tài)生成內(nèi)容的技術(shù)。查看JSP例子
  • JSP請求是如何被處理的?
    一個JSP請求的到來,瀏覽器首先以一個jsp擴(kuò)展的文件名來請求一個頁面。然后,Web Server讀取到該請求,使用JSP編譯器將JSP頁面轉(zhuǎn)換為一個servlet類。注意JSP文件只在該頁面的第一次請求或者JSP文件已經(jīng)改變時才編譯。生成的servlet類被調(diào)用,去處理瀏覽器的請求。一旦請求處理完,servlet會向客戶端返回一個相應(yīng)。查看如何獲取JSP請求中的參數(shù)
  • JSP的優(yōu)勢所在?
    使用JSP技術(shù)有以下優(yōu)勢:
    JSP網(wǎng)頁被動態(tài)的編譯,因此開發(fā)者很容易更新當(dāng)前代碼。
    JSP網(wǎng)頁可預(yù)編譯。
    JSP網(wǎng)頁能容易的組合成靜態(tài)模版,包括HTML XML片段,且代碼可形成動態(tài)內(nèi)容。
    開發(fā)者能提供自定義的JSP標(biāo)簽庫,且使用類XML語法訪問。
    開發(fā)者可以在組件級別做邏輯上的改變,但是不能使用程序邏輯編輯個別的網(wǎng)頁。
  • 什么是指令?在JSP中, 包括哪些不同類型的指令?
    指令是JSP引擎所處理的命令,當(dāng)網(wǎng)頁被編譯成小程序時,指令用于去設(shè)置頁面級別的命令,從外部文件插入數(shù)據(jù),指定自定義的標(biāo)簽庫。指令被包括在<%@ 和%>內(nèi)。指令的類型分為:
    包含指令:用于包含文件,和當(dāng)用頁面合并文件內(nèi)容。
    頁面指令:用于定義JSP頁面的具體屬性,比如錯誤頁面和緩沖池。
    標(biāo)簽庫:用于聲明頁面中使用到的自定義標(biāo)簽庫。
  • 什么是JSP的actions?
    JSP的actions是使用XML語法結(jié)構(gòu)來控制Servlet引擎的行為。JSP的actions是在當(dāng)JSP頁面請求的時候才執(zhí)行。它們會動態(tài)插入一個文件中,再利用JavaBeans的組件,轉(zhuǎn)發(fā)給用戶到另一個頁面,或者生成帶Java插件的HTML頁面。以下是一些可以操作的actions:
    jsp:include- 當(dāng)JSP頁面被請求的時候,包含了一個文件。
    jsp:useBean- 尋找或者實(shí)例化一個JavaBean。
    jsp:setProperty- 設(shè)置JavaBean的屬性。
    jsp:getProperty- 得到JavaBean的屬性。
    jsp:forward- 轉(zhuǎn)發(fā)請求到新的頁面。
    jsp:plugin- 生成特定瀏覽器的代碼。
  • 什么是Scriptlet?
    在Java Server Page(JSP)技術(shù)中,scriptlet是嵌入在JSP頁面的其中一塊Java代碼。scriptlet是標(biāo)簽內(nèi)的任何東西。在這些標(biāo)簽之間,用戶可以添加任何有效的scriptlet。
  • 什么是聲明?
    聲明類似于Java中的變量聲明。聲明是為表達(dá)式或者scriptlets后續(xù)的使用而聲明的變量。添加一個聲明,你必須在你的聲明中使用序列。
  • 什么是表達(dá)式?
    JSP表達(dá)式是把一個腳本語言表達(dá)式的值插入進(jìn)來,轉(zhuǎn)換成字符串,進(jìn)入數(shù)據(jù)流之后再通過web服務(wù)器返回給客戶端。表達(dá)式的定義是在<% = 和 %>標(biāo)簽之間。
  • 什么是隱式對象?他們是什么?
    JSP隱式對象是指JSP容器在每頁中提供給開發(fā)人員的Java對象。開發(fā)人員可以直接調(diào)用他們,而不需要任何顯示聲明。JSP隱式對象也被稱為預(yù)定義變量。以下對象都是在JSP頁面中隱式存在的:
    application
    page
    request
    response
    session
    exception
    out
    config
    pageContext
  • 總結(jié)

    以上是生活随笔為你收集整理的Java知识整理——ServletJSP的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。