Servlet生命周期
Servlet被服務(wù)器實例化后廷蓉,容器運行其init方法,請求到達(dá)時運行其service方法捌议,service方法自動派遣運行與請求對應(yīng)的doXXX方法(doGet纽哥,doPost)等背率,當(dāng)服務(wù)器決定將實例銷毀的時候調(diào)用其destroy方法卒落。
init(),service(),doget(),dopost(),destroy()
init service doget dopost destroy
2. 請求提交的方法羡铲,Get和Post區(qū)別。
在頁面提交數(shù)據(jù)時儡毕,get數(shù)據(jù)大小受限制也切,post沒有限制。
get請求提交的數(shù)據(jù)會在地址欄顯示腰湾,post不會雷恃。
get不安全,post安全费坊。請求轉(zhuǎn)發(fā)和請求重定向的區(qū)別倒槐。
重定向是客戶端行為,轉(zhuǎn)發(fā)是服務(wù)器行為附井。
重定向時服務(wù)器產(chǎn)生兩次請求讨越,轉(zhuǎn)發(fā)產(chǎn)生一次請求。
重定向可以轉(zhuǎn)發(fā)到項目以外的任何網(wǎng)址永毅,轉(zhuǎn)發(fā)只能在當(dāng)前項目里轉(zhuǎn)發(fā)把跨。
請求轉(zhuǎn)發(fā):地址不變,可以傳數(shù)據(jù)
重定向:地址改變沼死,不傳數(shù)據(jù)描述一下Session的工作原理节猿。
session工作原理:
服務(wù)器在創(chuàng)建會話對象時,會為其分配一個SessionId漫雕,以“JSESSIONID”的屬性名保存在客戶端Cookie中滨嘱,在用戶隨后的請求中,服務(wù)器通過讀取Cookie中的JSESSIONID屬性值來識別不同的用戶浸间,從而實現(xiàn)對每個用戶的會話跟蹤太雨。Cookie和Session的區(qū)別。
Cookie:主要用在保存客戶端魁蒜,其值在客戶端與服務(wù)端之間傳送囊扳,不安全,存儲的數(shù)據(jù)量有限兜看。
Session:保存在服務(wù)器端锥咸,每一個session在服務(wù)器端有一個sessionID作一個標(biāo)識,存儲的數(shù)據(jù)量大细移,安全性高搏予,但占用服務(wù)端的內(nèi)存資源。request.getParameter和request.getAttribute的區(qū)別弧轧。
有setAttribute雪侥,沒有setParameter方法碗殷。
getParameter獲取到的值只能是字符串,不可以是對象速缨,而getAttribute獲取到的值是Object類型的锌妻。
通過form表單或者URL來向另一個頁面或者Servlet傳遞參數(shù)的時候需要用getParameter來獲取值;getAttribute只能獲取setAttribute的值旬牲。JSP生命周期
編譯仿粹,初始化,執(zhí)行原茅,銷毀列舉出幾個JSP的內(nèi)置對象吭历,及他們的作用。
request:請求對象员咽,提供客戶端HTTP請求數(shù)據(jù)的訪問
response:響應(yīng)對象毒涧,用來向客戶端輸出響應(yīng)。
out:輸出對象贝室,提供對輸出流的訪問
session:會話對象契讲,用來保存服務(wù)器與每個用戶端會話過程中的信息
application:應(yīng)用程序?qū)ο笈磺蓿脕肀4嬲麄€應(yīng)用環(huán)境的信息
pageContext:頁面上下文對象鹃共,用于存儲當(dāng)前JSP頁面的相關(guān)信息
config:頁面配置對象,JSP頁面的配置信息對象
page:當(dāng)前JSP頁面對象帅容,即this
exception:異常對象峡迷,用于處理JSP頁面中的錯誤JSP的指令有哪些银伟?
page,include绘搞,taglib描述JSP的動態(tài)引入彤避,和靜態(tài)引入?yún)^(qū)別。
動態(tài)引入:在運行時調(diào)用另一個頁面夯辖,變量可以重復(fù)琉预。
靜態(tài)引入:轉(zhuǎn)譯時合在一起,成為同一個類蒿褂,變量不可以重復(fù)圆米。
11.編寫一個過濾器,解決請求和響應(yīng)的亂碼問題啄栓。
package com.neuedu.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
@WebFilter("/*")
public class Filter2_Encoding implements Filter {
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8");
chain.doFilter(request, response);
}
public void init(FilterConfig fConfig) throws ServletException {
}
}
- 描述MVC架構(gòu)娄帖,MVC分別代表什么。每層的職責(zé)是什么昙楚?
MVC是Model-View-Controller的簡寫近速。
Model代表的是應(yīng)用的業(yè)務(wù)邏輯;
View是應(yīng)用的表示面;
Controller是提供應(yīng)用的處理過程控制数焊,通過這種設(shè)計模型把應(yīng)用邏輯永淌,處理過程和顯示邏輯分成不同的組件實現(xiàn)崎场。這些組件可以進行交互和重用佩耳。 - 編寫一個Servlet, 登錄功能,接收前臺username, password兩個參數(shù)谭跨,如果用戶名和密碼都等于admin, 請求轉(zhuǎn)發(fā)到main.jsp, 否則干厚,請求重定向回login.jsp.