java面試---servlet+jsp

1、說一說Servlet生命週期

Servlet的生命週期分爲三部分

初始化:Web容器加載servlet,調用init()方法進行初始化。

處理請求:當請求到達時,運行其service()方法。Service()會根據表單的請求類型調用相對doGet()方法或者是doPost()方法。

銷燬:當服務器關閉時,調用distroy()方法銷燬servlet。

2、get提交和post提交有何區別

get一般用於從服務器上獲取數據,post一般用於向服務器傳送數據。

get的請求參數是拼接在url後面,可以在瀏覽器地址欄看見,post是放在http包的包體中。

get方法提交的數據只能是文本,大小不能超過1024個字節,而post不僅可以提交文本還有二進制文件。所以要上傳文件,就使用post請求方式。

3、jsp與servlet有什麼區別

jsp的本質就是一個servlet 他會被容器轉化成servlet,在編譯成class文件  調用jspService()處理請求。

jsp注重的是頁面展示     servlet注重的是流程控制和事務處理

4、doGet與doPost方法的兩個參數是什麼

HttpServletRequest:封裝了與請求相關的信息

HttpServletResponse:封裝了與響應相關的信息

5、request.getAttribute()和request.getParameter的區別?

1.有setAttribute,沒有setParameter方法 

2.getParameter獲取到的值只能是字符串,不可以是對象,而getAttribute獲取到的值是Object類型的。

3.getParameter獲取from表單傳遞過來的值;getAttribute只能獲取使用setAttribute設置的值。

6、jsp有哪些內置對象,作用是什麼

request:包含用戶端請求的信息

response:包含服務器傳回客戶端的響應信息

session:與請求有關的會話期

pageContext:管理網頁屬性

application:服務器啓動時創建,服務器關閉時停止,爲多個應用程序保存信息

out:向客戶端輸出數據

config:servlet的架構部件

page:指網頁本身

exception:針對錯誤頁面纔可使用

7、四種會話跟蹤技術作用域

page:一個頁面

request::一次請求

session:一次會話

application:服務器從啓動到停止。

8、JSP中動態INCLUDE和靜態INCLUDE有什麼區別

(動態包含使用<jsp:include page=””>使用page屬性實現。)

(靜態包含使用<%@include file=””>使用file屬性實現。)

Include指令用於把另外一個頁面包含到當前頁面中,在轉換成servlet的時候包含進去的。

動態include用動作實現,它總會檢查所含文件中的變化,適合用於包含動態頁面,並且可以帶參數。

靜態include用僞碼實現,不會檢查所包含的文件變化,使用於包含靜態頁面

9、forward和redirect的區別

請求轉發與重定向

請求轉發:服務器內部跳轉,瀏覽器地址欄的地址不變,重定向:告訴瀏覽器,發送二次跳轉。

請求轉發:可以共享request裏面的數據,重定向:不能共享數據。

請求轉發:只能在同一個項目跳轉,重定向:可以跨域訪問。

請求轉發:效率高,重定向:效率低。

10、 說出JSP的6個動作指令和作用?

jsp:include:在頁面被請求的時候引入一個靜態或動態的文件。

jsp:useBean:實力化一個對象。

jsp:setProperty:設置對象的屬性。

jsp:getProperty:獲取對象的屬性。

jsp:forward:請求轉發。

11、JSP的3種跳轉方式

response.sendRedirct()方法:重新發送請求。

response.setHeader()方法:重新發送請求但可以設置等待的時間。

<jsp:forward page=”跳轉的頁面”/>:請求轉發,服務器的跳轉。

12、 談談Servlet過濾器的作用?

在請求到達servlet之前,執行過濾器,過濾器決定是否執行(可以進行權限控制),可以提前設置一些參數(比如在執行action前設置統一字符集)。

當你在執行一個方法,在這個方法前或方法後執行一些方法(防止重複提交)。

13、 談談Servlet監聽器的作用

對特定的事件進行監聽,當產生這些事件的時候,會執行監聽器的代碼,分爲生命週期監聽器和數據變化監聽器(統計在線人數(監聽session)、網站的訪問量(request))。

14、 請簡要描述jstl

JSP標準標籤庫(JSTL)是一個JSP標籤集合,它封裝了核心庫

c標籤,fmt格式化標籤,fn字符串處理標籤,sql標籤,xml標籤。Jstl還提供了實現自定義標籤功能,方便我們的頁面控件編寫。

15、 如何現實servlet的單線程模式

 Jsp修改page指令   <%@ page isThreadSafe="false"%>,將編譯後的servlet實現SingleThreadModel接口。

16、介紹el表達式

EL表達式全名是Expression Language

EL表達式一般操作的是作用域(page、request、session、application)中的屬性,使用${標識符}.

17、 tomcat如何調優

對jvm的堆的最大值修改爲可用內存的80%(修改catalina.bat的相關參數)。

禁用DNS查詢(直接使用IP地址訪問)。

修改最大線程連接數。

設置超時機制。

18、 tomcat部署的方式有幾種

1.將web項目文件拷貝到webapps目錄中。

2.在tomcat中的conf目錄下修改server.xml文件,在host節點中添加<context>標籤。並指向項目所在路徑。

3.在tomcat中conf\Catalina\localhost目錄下添加一個xml文件 文件名可用隨意取,並寫入一個<context>標籤,並指向項目所在路徑。

4.用tomcat在線後臺管理器,一般tomcat都打開了,直接上傳war就可以

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章