1,、 Servlet與JSP有什么區(qū)別,?
Servlet和JSP完成的功能是相同的,,都可以接收用戶的請求,,可以對用戶進(jìn)行響應(yīng),,可以調(diào)用業(yè)務(wù)方法。
不同點在于JSP是在html或者xml中嵌入了Java代碼或者JSP的標(biāo)記,,在制作頁面方面具有優(yōu)勢,,可以使用網(wǎng)頁編輯工具來制作網(wǎng)頁,然后嵌入Java或者JSP的標(biāo)記,。Servlet是純Java代碼,,通常用于控制,不用于輸出。在MVC模式中,,JSP通常充當(dāng)視圖,,Servlet通常充當(dāng)控制器。另外,,JSP在運行的時候還要轉(zhuǎn)換成類似于Servlet的Java代碼,。
2、 Servelt通常有哪些方法
init方法,,完成初始化
service方法,,包括doGet和doPost,用于接收用戶的請求,,調(diào)用后臺的JavaBean或者EJB,,選擇界面對用戶響應(yīng)。
destroy方法,,用于釋放資源
3,、 談?wù)?/span>Servlet的生命周期
當(dāng)接收到請求的時候,容器察看對應(yīng)的Servlet對象是否存在,,如果不存在,需要加載Servetl,,實例化Servlet,,調(diào)用init方法進(jìn)行初始化。如果已經(jīng)存在,,根據(jù)用戶的請求創(chuàng)建request和response對象,,把這兩個對象作為參數(shù)調(diào)用Servlet對象的service方法,Servlet通過這個方法與用戶進(jìn)行交互,,方法執(zhí)行完之后,,對請求的處理結(jié)束。Servelt對象繼續(xù)等待下一個請求,。當(dāng)應(yīng)用卸載的時候,,調(diào)用destroy方法釋放資源。多個請求共享Servelt對象,。
4,、 Servlet API的兩個主要包
javax.servlet.*;
javax.servlet.http.*;
5、 編寫Servlet需要繼承的類是什么,?
HttpServlet
6,、 編寫Servlet通常需要實現(xiàn)的兩個方法是什么?
doGet方法和doPost方法
7,、 doGet方法和doPost方法中的兩個參數(shù)是什么,?
HttpServletRequest和HttpServletResponse,前者封裝了與請求相關(guān)的信息,后者封裝了與響應(yīng)相關(guān)的信息,。要獲取請求信息,,從第一個參數(shù)獲取,要對用戶響應(yīng),,通過第二個參數(shù),。
8、 要獲取用戶信息,,如何獲取
request的getParameter方法和getParameterValues方法,,前者用于獲取單值表單元素的值,或者用于獲取多值的情況,,典型的復(fù)選框,。前者返回的是一個字符串,后者返回的是字符串?dāng)?shù)組,。如果參數(shù)指定的表單元素不存在,,返回null。
9,、 要給用戶響應(yīng)信息,,如何完成?
設(shè)置響應(yīng)內(nèi)容的類型:response.setContentType(“text/html;charset=gb2312”);
獲取輸出流對象:PrintWriter out = response.getWriter();
輸出信息:通過out的println方法
10,、
在Servlet中選擇接面對用戶響應(yīng),,如何實現(xiàn)
兩種方式:使用RequestDispatcher和response的sendRedirect方法
如果使用RequestDispatcher:
RequestDispatcher rd = request,getRequestDispatcher(“目標(biāo)文件”);
rd.forward(request,response);
如果使用sendRedirect方法
response.sendRedirect(“目標(biāo)文件”);
11、
上面的兩種方式有什么區(qū)別,?
RequestDispatcher的forward方法相當(dāng)于<jsp:forward>的作用,。類似于方法調(diào)用,當(dāng)執(zhí)行到這行代碼的時候,,通過forward方法轉(zhuǎn)向執(zhí)行目標(biāo)文件,,把request和response作為參數(shù)傳遞到下一個頁面,這樣當(dāng)前頁面(Servlet或者JSP)和目標(biāo)頁面共享了request,,可以通過request對象傳值,。response的sendRedirect方法相當(dāng)于向客戶端瀏覽器發(fā)送了一個消息,讓瀏覽器重新請求目標(biāo)文件,,從用戶的角度來說,,相當(dāng)于發(fā)送了兩次請求,每次請求有獨立的request和response對象,,不能通過request在兩個頁面之間傳值,。從地址欄看,前一種方式在地址欄中顯示的第一個文件的路徑,,后一種方式顯示的第二個文件的路徑,。
12、
在Servlet中如何獲取Session對象,如何獲取Cookie
使用request對象的getSession方法獲取session,,通過getCookies獲取Cookie
13,、
Servlet在哪個文件中進(jìn)行配置?
在Web應(yīng)用的WEB-INF下面的web.xml中進(jìn)行配置,。
14,、
如何配置Servlet
包括兩步:Servlet的聲明和Servlet訪問方式的聲明。
Servlet的聲明:
<servlet>
<servlet-name>servlet的名字(自己定義的)</servlet-name>
<servlet-class>servlet的完整類名</servlet-class>
</servlet>
Servlet訪問方式的聲明
<servlet-mapping>
<servlet-name>Servlet的名字(應(yīng)該和聲明的時候保持一致)</servlet>
<url-pattern>訪問路徑</url-pattern>
</servlet-mapping>
15,、
編譯好的Servlet類放在什么位置,?
放在Web應(yīng)用WEB-INF下面的classes文件夾中。
16,、
假設(shè)網(wǎng)站的IP地址為1.2.3.4,,端口8878,應(yīng)用的名字hello,,servlet的訪問方式/hello,,現(xiàn)在要訪問這個servlet,如何訪問,?
http://1.2.3.4:8878/hello/hello
17,、
談?wù)?/span>Servlet過濾器的作用?
Servlet是特殊的Servlet,,能夠?qū)μ囟ǖ恼埱舐窂竭M(jìn)行過濾,,在訪問這個路徑之前,先執(zhí)行過濾器,,過濾器進(jìn)行預(yù)處理,過濾器決定是否繼續(xù)執(zhí)行后續(xù)的文件,。典型的應(yīng)用,,可以把用戶驗證的代碼寫在過濾器中,然后把過濾的路徑配制成需要驗證的文件的路徑,。
18,、
談?wù)?/span>Servlet監(jiān)聽器的作用
Servlet監(jiān)聽器對特定的事件進(jìn)行監(jiān)聽,當(dāng)產(chǎn)生這些事件的時候,,會執(zhí)行監(jiān)聽器的代碼,。可以對應(yīng)用的加載,、卸載,,對session的初始化、銷毀,,對session中值變化等事件進(jìn)行監(jiān)聽,。
|
|