應(yīng)用服務(wù)器與WEB SERVER的區(qū)別?
JAVA SERVLET API中forward() 與sendRedirect()的區(qū)別?
forward()方法可以使用原來(lái)的對(duì)象,而且速度較快。地址欄不變化。只能在本機(jī)內(nèi)的頁(yè)面間跳轉(zhuǎn)。
redirect()方法不可以使用原來(lái)的對(duì)象,而且速度較慢。地址欄變化。可以跳轉(zhuǎn)到任何頁(yè)面和機(jī)器。
:前者僅是容器中控制權(quán)的轉(zhuǎn)向,在客戶端瀏覽器地址欄中不會(huì)顯示出轉(zhuǎn)向后的地址;后者則是完全的跳轉(zhuǎn),瀏覽器將會(huì)得到跳轉(zhuǎn)的地址,并重新發(fā)送請(qǐng)求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉(zhuǎn)后的鏈接地址。所以,前者更加高效,在前者可以滿足需要時(shí),盡量使用forward()方法,并且,這樣也有助于隱藏實(shí)際的鏈接。在有些情況下,比如,需要跳轉(zhuǎn)到一個(gè)其它服務(wù)器上的資源,則必須使用sendRedirect()方法。
STRUTS的應(yīng)用(如STRUTS架構(gòu))
Struts框架的處理流程清楚的體現(xiàn)了MVC系統(tǒng)的特點(diǎn), Struts Controller ActionServlet處理客戶請(qǐng)求,利用配置的ActionMapping對(duì)象把請(qǐng)求映射到Action處理器對(duì)象進(jìn)行處理。Action處理對(duì)象訪問(wèn)ActionForm中的數(shù)據(jù),處理和響應(yīng)客戶請(qǐng)求,它還調(diào)用后臺(tái)的Bean組件,這些組件封裝了具體的業(yè)務(wù)邏輯。Action處理器對(duì)象根據(jù)處理結(jié)果通知Controller,Controller進(jìn)行下一步的處理。
Struts是采用Java Servlet/JavaServer Pages技術(shù),開(kāi)發(fā)Web應(yīng)用程序的開(kāi)放源碼的framework。 采用Struts能開(kāi)發(fā)出基于MVC(Model-View-Controller)設(shè)計(jì)模式的應(yīng)用構(gòu)架。 Struts有如下的主要功能:
一.包含一個(gè)controller servlet,能將用戶的請(qǐng)求發(fā)送到相應(yīng)的Action對(duì)象。
二.JSP自由tag庫(kù),并且在controller servlet中提供關(guān)聯(lián)支持,幫助開(kāi)發(fā)員創(chuàng)建交互式表單應(yīng)用。
三.提供了一系列實(shí)用對(duì)象:XML處理、通過(guò)Java reflection APIs自動(dòng)處理JavaBeans屬性、國(guó)際化的提示和消息。
MVC的各個(gè)部分都有那些技術(shù)來(lái)實(shí)現(xiàn)?如何實(shí)現(xiàn)?
答:MVC是Model-View-Controller的簡(jiǎn)寫(xiě)。"Model" 代表的是應(yīng)用的業(yè)務(wù)邏輯(通過(guò)JavaBean,EJB組件實(shí)現(xiàn)), "View" 是應(yīng)用的表示面(由JSP頁(yè)面產(chǎn)生),"Controller" 是提供應(yīng)用的處理過(guò)程控制(一般是一個(gè)Servlet),通過(guò)這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過(guò)程和顯示邏輯分成不同的組件實(shí)現(xiàn)。這些組件可以進(jìn)行交互和重用。
一個(gè)網(wǎng)頁(yè)有以下html代碼片斷
在a.jsp中,獲取用戶提交的age參數(shù),如果年齡大于100或是小于等于0,則顯示“年齡不正確”的信息,否則輸出“你的年齡為:xx歲”的信息。
請(qǐng)寫(xiě)出a.jsp中完成這部分處理的代碼片斷。(請(qǐng)注意處理過(guò)程中的一些異常Exception)
有以下jsp代碼片斷
If(isTrue())
{
Response.sendRedirect(“/index.html”);
}
System.out.println(“繼續(xù)執(zhí)行”);
我們希望,如果isTrue()為真,則中止程序運(yùn)行,直接跳轉(zhuǎn)到/index.html。但是在程序執(zhí)行過(guò)程中,會(huì)繼續(xù)執(zhí)行后面輸出“繼續(xù)執(zhí)行”的代碼呢?
jsp有哪些內(nèi)置對(duì)象?作用分別是什么?
JSP共有以下9種基本內(nèi)置組件
request 用戶端請(qǐng)求,此請(qǐng)求會(huì)包含來(lái)自GET/POST請(qǐng)求的參數(shù)
response 網(wǎng)頁(yè)傳回用戶端的回應(yīng)
pageContext 網(wǎng)頁(yè)的屬性是在這里管理
session 與請(qǐng)求有關(guān)的會(huì)話期
application servlet 正在執(zhí)行的內(nèi)容
out 用來(lái)傳送回應(yīng)的輸出
config servlet的構(gòu)架部件
page JSP網(wǎng)頁(yè)本身
exception 針對(duì)錯(cuò)誤網(wǎng)頁(yè),未捕捉的例外
jsp有哪些動(dòng)作?作用分別是什么?
JSP共有以下6種基本動(dòng)作
jsp:include:在頁(yè)面被請(qǐng)求的時(shí)候引入一個(gè)文件。
jsp:useBean:尋找或者實(shí)例化一個(gè)JavaBean。
jsp:setProperty:設(shè)置JavaBean的屬性。
jsp:getProperty:輸出某個(gè)JavaBean的屬性。
jsp:forward:把請(qǐng)求轉(zhuǎn)到一個(gè)新的頁(yè)面。
jsp:plugin:根據(jù)瀏覽器類型為Java插件生成OBJECT或EMBED標(biāo)記
JSP中動(dòng)態(tài)INCLUDE與靜態(tài)INCLUDE的區(qū)別?
動(dòng)態(tài)INCLUDE用jsp:include動(dòng)作實(shí)現(xiàn)
它總是會(huì)檢查所含文件中的變化,適合用于包含動(dòng)態(tài)頁(yè)面,并且可以帶參數(shù)
靜態(tài)INCLUDE用include偽碼實(shí)現(xiàn),定不會(huì)檢查所含文件的變化,適用于包含靜態(tài)頁(yè)面
<%@ include file="included.htm" %>
兩種跳轉(zhuǎn)方式分別是什么?有什么區(qū)別?
說(shuō)一說(shuō)Servlet的生命周期?
servlet有良好的生存期的定義,包括加載和實(shí)例化、初始化、處理請(qǐng)求以及服務(wù)結(jié)束。這個(gè)生存期由javax.servlet.Servlet接口的init,service和destroy方法表達(dá)。
你使用的servlet和jsp的版本?
Servlet的基本架構(gòu)
public class ServletName extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
}
}
get與post提交的異同?