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就可以