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