點選免費獲取最新BAT面試題,2020最新面試技巧和簡歷模板!
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.直接使用,一定要結尾;