1.jsp有哪些內建物件?作用分別是什麼?
jsp有九大內建物件,分別是request、response、page、pageContext、session、application、out、config、exception。其作用分別是:
request:使用者端請求,此請求會包含來自GET/POST請求的引數
response:網頁傳回使用者端的回應
pageContext:網頁的屬性是在這裡管理
session:與請求有關的會話期
application:servlet正在執行的內容
out:用來傳送回應的輸出
config:servlet的架構部件
page:JSP網頁本身
exception:針對錯誤網頁,未捕捉的例外
2.get和post的區別
Form中的get和post方法,在資料傳輸過程中分別對應了HTTP協議中的GET和POST方法。二者區別如下。
(1)Get是用來從伺服器上獲取資料,而Post是用來向伺服器傳遞資料。
(2)Get是不安全的,因為在傳輸過程,資料被放在請求的URL中;Post的所有操作對使用者來說都是不可見的。
(3)Get傳輸的資料量小,這主要是因為受URL長度限制;而Post可以傳輸大量的資料,所以在上傳檔案只能使用Post。
(4)Get限制Form表單的資料集必須為ASCII字元,而Post支援整個ISO10646字符集
(5)Get是Form的預設方法
3.什麼情況下呼叫doGet()和doPost()
Jsp頁面中的form標籤裡的method屬性為get時呼叫doGet(),為post時呼叫doPost方法
4.JSP和Servlet有哪些相同點和不同點,他們之間的聯絡是什麼?有servlet為什麼還要jsp?
JSP是Servlet技術的擴充套件,本質上是Servlet的簡易方式,更強調應用的外表表達。JSP編譯後是"類servlet"。Servlet和JSP最主要的不同點在於,Servlet的應用邏輯是在Java檔案中,並且完全從表現層中的HTML裡分離開來。而JSP的情況是Java和HTML可以組合成一個副檔名為.jsp的檔案。JSP側重於檢視,Servlet主要用於控制邏輯。
jsp在其內容顯示上更好,servlet在邏輯處理更據優越性,JSP是顯示層的。重在顯示。Servlet是控制層,重在業務邏輯。可以降低耦合、有利於分工。
5.Request物件的主要方法(例舉5個)
setAttribute(String name,Object):設定名字為name的屬性值
getAttribute(String name):返回由name指定的屬性值
getParameter(String name):獲取客戶端請求中傳送的name指定的引數值
getMethod():獲取客戶端向伺服器端傳送資料的方法
removeAttribute(String name):刪除請求中的一個屬性
6.JSP和Servlet中的請求轉發分別如何實現?
JSP中的請求轉發可利用forward動作實現:<jsp:forward/>
Servlet中實現請求轉發的方式為:getServletContext().getRequestDispatcher(path).forward(request,response)
7.寫出熟悉的JSTL標籤
<c:if>、<c:choose>、<c:when>、<c:otherwise>、<c:forEach>、<c:set>
8.請求重定向和請求轉發的區別
request.getRequestDispatcher(path).forward(req,res)方法只能將請求轉發給同一個WEB應用中的元件;
response.sendRedirect(path)方法還可以重定向到同一個站點上的其他應用程式中的資源,甚至是使用絕對URL重定向到其他站點的資源
9.JSTL是什麼?怎麼用?
答:(1)JSTL是一個實現Web應用程式中常用功能的定製標籤庫集,由5個不同的功能標籤庫組成。
(2)使用前,必須下載好JSTL,然後複製到Web工程下的/WEB-INFO/lib目錄下。在JSP頁面中新增
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>然後就可以使用JSTL了