溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JSP常見(jiàn)面試題有哪些

發(fā)布時(shí)間:2021-10-15 13:45:46 來(lái)源:億速云 閱讀:133 作者:小新 欄目:編程語(yǔ)言

這篇文章主要為大家展示了“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è)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

jsp
AI