Servlet面试题18道
1.tomcat調優?
tomcat 如何進行優化?優化方案有哪些?_小小來也的博客-CSDN博客_tomcat優化的幾種方法
2.什么是Servlet?
servlet主要用于邏輯處理,處理完之后,將結果交給jsp,由jsp向客戶端做出響應
3.servlet生命周期是什么?
(1)服務器啟動時創建
在客戶端第一次訪問LoginServlet時創建
只被調用一次,只創建一個servlet對象 單實例的
(2)初始化
在對象創建后,構造方法執行后,服務器調用init方法,完成一些初始化操作
只執行一次,如果沒有寫初始化操作可以不用重寫init()
但是服務器仍然會調用父類中的init()
(3)提供服務器
每次請求都會調用service,只執行一次
(4)關閉
在服務器關閉前,servlet銷毀前調用,
可以在次方中完成最終操作
列如:保存日志,數據備份
4.get和post請求的區別是什么?
get請求:
主要用于從服務器獲取數據
也可以向服務器發送數據,數據在地址中傳遞,會在地址中顯示
但是長度有限制
安全性很低
post請求:
主要用于向服務器發送請求
提交數據在請求中發送,
長度沒有限制(例如:可以提交文件)
安全性較高
5.什么是請求轉發和重定向
轉發:
request.getRequestDispatcher(url).forword(request,response)
獲得請求轉發對象,告訴對象轉發的地址
好比張三找李四借錢,李四沒有錢便去找王五借了錢,之后再把錢借給了張三。李四找王五借錢張三是不知道的,而且張三借錢只借了一次!
重定向:
response.sendRedirect(url)
重新指定瀏覽器地址
好比張三找李四借錢,李四沒錢,李四告訴張三王五有錢,之后張三便去找王五借到了錢。此過程張三借錢借了兩次!
6.請求轉發和重定向的區別
請求轉發:
整個過程屬于一次請求
瀏覽器中的地址不發生變化,轉發的動作在服務器內部完成
客戶端不知情
重定向:
整個過程有倆次請求,地址欄的地址會發生變化
在第二次請求中不能獲得上一次請求對象中的數據
7.jsp和servlet的聯系與區別
(1)本質都是servlet
(2)servlet側重于邏輯處理
(3)jsp側重于視圖顯示
8.說一說靜態包含和動態包含的區別
(1) 語法不同
靜態包含語法: <%@inclue file="被包含的頁面"%>
動態包含語法: <jsp:include page="被包含的頁面">
(2)參數傳遞不同
靜態包含不能向被包含頁面傳遞參數
動態包含可以使用jsp:param標簽向被包含頁面傳遞參數
(3)原理不同
靜態包含: 先合并再翻譯
動態包含: 先翻譯再合并
9.九大內置對象是什么?
1.page頁面對象,2.config配置對象,3.request請求對象,4.response響應對象,5.session會話對象,6.application全局對象,7.out輸出對象,8.pageContext頁面上下文對象,9.exception異常對象
10.JSP四大作用域
page:
只在當前頁面有效
request:
它在當前請求中有效
session:
它在當前會話中有效
application:
他在所有的應用程序中都有效
注意:當4個作用域對象都有相同的name屬性時,默認按照最小的順序查找
11.application和request,session的區別?
request:單次請求。
session:瀏覽器訪問期間(整個會話期間有效)。
application:服務器啟動到關閉服務器期間全都有效,而且存儲的數據可以跨瀏覽器。
12.什么是Session對象?
session:
是管理會話,回話跟蹤技術
是存儲管理
同一個會話,同一個網頁
會話:
打開瀏覽器,連接到服務器(訪問一個servlet,jsp)會話開始
關閉瀏覽器,回話結束
13.session對象的原理是什么?
(1)打開瀏覽器 回話開始
(2)服務器為本次回話創建一個session對象,生成一個id號(唯一),將id號響應到瀏覽器中
(3)瀏覽器默認將id號存儲內存中,之后向服務器請求時都會將此id向服務器端發送
(4)服務器就會找與id匹配的session對象,如果找不到對應的session,那么服務器就會重新創建一個session對象
14.談一談session對象的生命周期
(1)創建:會話開始時,在服務器端創建
(2)銷毀:
httpSession.removeAttribute("userID");
httpSession.invalidate(); ?
服務器關閉時,session對象銷毀
客戶端長時間不與服務器交互,
eg:tomcat默認30分鐘服務器會自動銷毀session對象
安全退出,調用invalidate();強制銷毀session對象
15.什么是過濾器(Filter)
在請求到達服務器資源(servlet/jsp)之前 , 過濾器可以攔截某些請求
在過濾器中就可以添加一些相應的代碼處理,可以減少代碼冗余
16.過濾器生命周期
init() 在服務器啟動時執行
destroy() 在服務器關閉時銷毀
17.什么是監聽器
用于監聽ServletContext,HttpSession和ServletRequest等域對象的創建與銷毀,以及對象中屬性的修改
18.過濾器生命周期
創建于服務器的啟動
銷毀于服務器的關閉
總結
以上是生活随笔為你收集整理的Servlet面试题18道的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 很多人都不清楚HEX文件格式
- 下一篇: 数据抓包+hijson