您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“JSP常見(jiàn)面試題有哪些”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“JSP常見(jiàn)面試題有哪些”這篇文章吧。
1:什么是Jsp?
Java Server Page 結(jié)合 java和html在服務(wù)端動(dòng)態(tài)生成web頁(yè)面的技術(shù)
2:描述Jsp頁(yè)面的運(yùn)行過(guò)程?
第一步:
請(qǐng)求進(jìn)入Web容器,將JSP頁(yè)面翻譯成Servlet代碼
第二步:
編譯Servlet代碼,并將編譯過(guò)的類文件裝入Web容器(JVM)環(huán)境
第三步:
Web容器為JSP頁(yè)面創(chuàng)建一個(gè)Servlet類實(shí)例,并執(zhí)行jspInit方法
第四步:
Web容器為該JSP頁(yè)面調(diào)用Servlet實(shí)例的_jspService方法;將結(jié)果發(fā)送給用戶
3:描述Jsp頁(yè)面的五類腳本元素的功能、寫(xiě)法、并示例
注釋 <%-- --%>: <HTML> <%-- scripting element --%> </HTML> 指令標(biāo)記 <%@ %> 指令標(biāo)記影響JSP頁(yè)面的翻譯階段: <%@ page session=”false” %> 聲明標(biāo)記 <%! %> 聲明標(biāo)記允許JSP頁(yè)面開(kāi)發(fā)人員包含類級(jí)聲明: <%! public static final String DEFAULT_NAME = “World”; %> 腳本標(biāo)記 <% %> 腳本標(biāo)記允許JSP頁(yè)面開(kāi)發(fā)人員在_jspService方法中包含任意的Java代碼: <% int i = 0; %> 表達(dá)式標(biāo)記 <%= %> 表達(dá)式標(biāo)記封裝Java運(yùn)行時(shí)的表達(dá)式,其值被送至HTTP響應(yīng)流: <B>Ten is <%= (2 * 5) %></B>
4:描述Jsp頁(yè)面中的注釋種類和寫(xiě)法
HTML注釋
<!-- HTML注釋顯示在響應(yīng)中 -->
JSP頁(yè)面注釋
<%-- JSP注釋只在JSP代碼中可見(jiàn),不顯示在servlet代碼或響應(yīng)中。--%>
Java注釋
<%
/* Java注釋顯示在servlet代碼中,不顯示在響應(yīng)中
*/
%>
5:描述Jsp頁(yè)面的指令標(biāo)記的功能、寫(xiě)法、并示例
指令標(biāo)記影響JSP頁(yè)面的翻譯階段
<%@ page session=”false” %>
<%@ include file=”incl/copyright.html” %>
<%@ taglib %>
6:描述Jsp頁(yè)面的聲明標(biāo)記的功能、寫(xiě)法、并示例
聲明標(biāo)記允許JSP頁(yè)面開(kāi)發(fā)人員包含類級(jí)聲明
寫(xiě)法:
<%! JavaClassDeclaration %>
例: <%! public static final String DEFAULT_NAME = “World”; %> <%! public String getName(HttpServletRequest request) { return request.getParameter(“name”); } %> <%! int counter = 0; %>
7:描述Jsp頁(yè)面翻譯成Servlet的規(guī)則
jsp中的注釋標(biāo)記被翻譯成Servlet類中的注釋
jsp中的指令標(biāo)記被翻譯成Servlet類中的import語(yǔ)句等
jsp中的聲明標(biāo)記被翻譯成Servlet類中的屬性
jsp中的腳本標(biāo)記被轉(zhuǎn)移到Servlet類中service方法中的代碼
jsp中的表達(dá)式標(biāo)記被翻譯成Serlvet類中的write()或者print()方法括號(hào)中的代碼
8:描述Jsp頁(yè)面的九個(gè)預(yù)定義變量的功能、用法、并示例
request 與請(qǐng)求相關(guān)的HttpServletRequest對(duì)象
response 與送回瀏覽器的響應(yīng)相關(guān)的HttpServletResponse對(duì)象
out 與響應(yīng)的輸出流相關(guān)的JspWriter對(duì)象
session 與給定用戶請(qǐng)求會(huì)話相關(guān)的HttpSession對(duì)象,該變量只在JSP頁(yè)面參與一個(gè)HTTP會(huì)話時(shí)有意義
Applicationn 用于Web應(yīng)用的ServletContext對(duì)象
config 與該JSP頁(yè)面的servlet相關(guān)的ServletConfig對(duì)象
pageContext 該對(duì)象封裝了一個(gè)JSP頁(yè)面請(qǐng)求的環(huán)境
page 該變量與Java編程語(yǔ)言中的this變量等價(jià)
exception 由其它JSP頁(yè)面拋出的Throwable對(duì)象,該變量只在"JSP錯(cuò)誤頁(yè)面"中可用
9:page指令的功能,寫(xiě)法、并示例,并描述它的如下屬性的功能和用法:import、session、buffer、errorPage、isErrorPage、ContentType、pageEncoding
import : import 定義了一組servlet類定義必須導(dǎo)入的類和包,值是一個(gè)由逗號(hào)分隔的完全類名或包的列表。
session : session 定義JSP頁(yè)面是否參與HTTP會(huì)話,值可以為true(缺?。┗騠alse。
buffer : buffer 定義用于輸出流(JspWriter對(duì)象)的緩沖區(qū)大小,值可以為none或Nkb,缺省為8KB或更大。
errorPage: 用來(lái)指定由另一個(gè)jsp頁(yè)面來(lái)處理所有該頁(yè)面拋出的異常
isErrorPage : 定義JSP頁(yè)面為其它JSP頁(yè)面errorPage屬性的目標(biāo),值為true或false(缺?。?。
ContentType : 定義輸出流的MIME類型,缺省為text/html。
pageEncoding :定義輸出流的字符編碼,缺省為ISO-8859-1
10:描述MVC各部分的功能?
Model
封裝應(yīng)用狀態(tài)
響應(yīng)狀態(tài)查詢
暴露應(yīng)用的功能
Controller
驗(yàn)證HTTP請(qǐng)求的數(shù)據(jù)
將用戶數(shù)據(jù)與模型的更新相映射
選擇用于響應(yīng)的視圖
View
產(chǎn)生HTML響應(yīng)
請(qǐng)求模型的更新
提供HTML form用于用戶請(qǐng)求
11:什么是Model 1結(jié)構(gòu),以及結(jié)構(gòu)中各部分的功能
Model1中使用jsp來(lái)處理web應(yīng)用中的視圖控制部分
jsp+javabean
12:什么是JavaBean?
用戶可以使用JavaBean將功能、處理、值、數(shù)據(jù)庫(kù)訪問(wèn)和其他任何可以用java代碼
創(chuàng)造的對(duì)象進(jìn)行打包,并且其他的開(kāi)發(fā)者可以通過(guò)內(nèi)部的JSP頁(yè)面、Servlet、其
他JavaBean、applet程序或者應(yīng)用來(lái)使用這些對(duì)象。
13:JavaBean的規(guī)則?
使用get和set方法定義屬性
一個(gè)無(wú)參構(gòu)造方法
無(wú)public實(shí)例變量
14:什么是jsp標(biāo)準(zhǔn)動(dòng)作?包含那些?分別都是什么功能?如何使用?
JSP頁(yè)面中使用類似于XML的標(biāo)記表示運(yùn)行時(shí)的動(dòng)作
jsp:userBean
jsp:setProperty
jsp:getProperty
jsp:parameter
jsp:include
jsp:forward
15:用代碼示例如下標(biāo)準(zhǔn)動(dòng)作的使用:useBean、getProperty、setProperty
<jsp:useBean id="myForms" class="com.base.mystruts.forms.MyActionForm" scope="session" /> <jsp:setProperty name="MyForms" property="name" /> <jsp:getProperty name="MyForms" property="id" />
16:描述說(shuō)明Bean的四種scope
Request
Session
Application
Page
17:描述說(shuō)明頁(yè)面上的字段和Bean中屬性的對(duì)應(yīng)規(guī)則
id 指javabean的變量名
class指javabean類的全路徑
scope指javabean的應(yīng)用范圍
name指所用到的javabean的變量名
property指javabean中的屬性
18:描述useBean動(dòng)作的處理過(guò)程
使用id聲明變量
試圖在指定的范圍內(nèi)查找對(duì)象
如果沒(méi)找到
創(chuàng)建一個(gè)類的實(shí)例
執(zhí)行useBean標(biāo)記體初始化對(duì)象
如果找到
將對(duì)象轉(zhuǎn)換為類指定的類型
19:描述forward動(dòng)作的功能
使用腳本代碼處理請(qǐng)求時(shí),可用jsp:forward 動(dòng)作產(chǎn)生一個(gè)不同的視圖,
使用同一個(gè)request:
20:什么是Model 2結(jié)構(gòu),以及結(jié)構(gòu)中各部分的功能
jsp+javabean+servlet
Model 2架構(gòu)使用MVC模式,JSP頁(yè)面充當(dāng)視圖,Servlet充當(dāng)控制器
Servlet控制器:
驗(yàn)證HTML form數(shù)據(jù)
調(diào)用模型中的業(yè)務(wù)服務(wù)
存儲(chǔ)請(qǐng)求(或會(huì)話)范圍內(nèi)的域?qū)ο?/p>
選擇下一個(gè)用戶的視圖
JSP頁(yè)面視圖:
使用用戶界面(在HTML中)
訪問(wèn)域?qū)ο?/p>
21:如何獲得分發(fā)器?分發(fā)器的功能?
上下文對(duì)象中的分發(fā)器:
ServletContext context = getServletContext(); RequestDispatcher servlet = context.getNamedDispatcher("MyServlet"); servlet.forward(request, response);
請(qǐng)求對(duì)象中的分發(fā)器:
RequestDispatcher view = request.getRequestDispatcher("tools/nails.jsp"); view.forward(request, response);
可以將請(qǐng)求轉(zhuǎn)發(fā)到另一個(gè)jsp頁(yè)面
當(dāng)從客戶端發(fā)出請(qǐng)求到a 是request(1),a再請(qǐng)求b是request(2)就變成兩個(gè)不同的請(qǐng)求,用RequestDispatcher來(lái)保持原來(lái)的請(qǐng)求(在不同的servlet之間保持同一個(gè)請(qǐng)求時(shí)用RequestDispatcher)
RequestDispatcher rd = request.getRequestDispatcher(“string”); rd.forword(request);//前往下一個(gè)請(qǐng)求 到下一個(gè)servlet
22:描述Jsp中引入另外頁(yè)面的兩種方法?
<%@ include%>
<jsp:include>
23:比較上述兩種方法的特點(diǎn)
<%@ include%> 再編譯期間把另一個(gè)頁(yè)面完全嵌入這個(gè)頁(yè)面,可以說(shuō)是一個(gè)頁(yè)面
在這里可以共享變量
<jsp:include> 動(dòng)態(tài)的再運(yùn)行期間把另一個(gè)頁(yè)面加入這個(gè)頁(yè)面,可以說(shuō)是兩個(gè)頁(yè)面,不可以共享變量
24:什么是自定義標(biāo)記
自定義標(biāo)記庫(kù)是一個(gè)Web組件,
包括:
一個(gè)標(biāo)記庫(kù)描述符文件
所有相關(guān)的標(biāo)記處理器類
25:描述使用自定義標(biāo)記的步驟,以及每步詳細(xì)的工作
1.自定義標(biāo)記遵循XML標(biāo)記規(guī)則
自定義標(biāo)記使用XML規(guī)則;
標(biāo)記名屬性,以及前綴都是大小寫(xiě)敏感;
標(biāo)記嵌套規(guī)則;
2.需要在JSP頁(yè)面和Web應(yīng)用程序的部署描述符中聲明標(biāo)記庫(kù):
taglib
在部署描述符中使用taglib元素聲明web應(yīng)用程序使用一個(gè)標(biāo)記庫(kù);
在jsp頁(yè)面中使用taglib指令表明要使用哪個(gè)標(biāo)記庫(kù)及相應(yīng)的自定義標(biāo)記所使用的前綴;
使用自定義的空標(biāo)記
使用自定義的條件標(biāo)記
使用自定義的迭代標(biāo)記
3.在JSP頁(yè)面中可使用自定義的空標(biāo)記
getPepParam()標(biāo)記:將命名的請(qǐng)求標(biāo)志插入的輸出中;
4.在JSP頁(yè)面中使用自定義標(biāo)記,可有條件地執(zhí)行HTML響應(yīng)的某部分
heading標(biāo)記:生成一個(gè)隱藏的Html table創(chuàng)建一個(gè)彩色且格式化過(guò)的頁(yè)表頭
5.在JSP頁(yè)面中使用自定義標(biāo)記,可迭代執(zhí)行HTML響應(yīng)中的某部分:
IterateOverErrors標(biāo)記:對(duì)stutas中的所有異?,F(xiàn)象進(jìn)行迭代;
taglib
1.把類烤過(guò)去
2.把Taglib的描述文件(*.tld)放在web-inf根目錄下
3.在web.xml里配置
4.回到頁(yè)面去,定義Taglib使用的前綴
5.直接使用,一定要結(jié)尾;
以上是“JSP常見(jiàn)面試題有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。