1 三個Statment區別,用法
Statment,基本的;PreparedStatement是可編譯的,提高效率,callablestatment,預存程序
2 Cookie
答:臨時cookic存在於記憶體中,(公話),長時cookic存在於硬碟上長時coolkie和臨時cookie 路徑問題
3 servlet調試方式幾種方法
答:使用列印語句,使用TOMCAT日誌,返回錯誤頁面,使用IDE整合,重起伺服器,直接查看HTML原始碼,分別處理請求和響應資料。
4.Cookie 與session 的區別是:session為短對話,Cookie可以設定任意時間的有效期間。
5.Get請求和Post請求區別
答:a、Post是通過Http中的Post機制將表單中的資料提交道Action所制定的程式Get方法是通過Url請求來提交表單資料的。
b.Get適用於傳輸資料量小於1K資料,執行效率高。Post傳輸資料量較大,但也有限量。
6. servlet生命週期
答: Servlet 的生命週期始於將它裝入 Web 服務器的記憶體時,並在終止或重新裝入 Servlet 時結束。包括載入和執行個體化、初始化、處理請求以及服務結束。這個生存期由 javax.servlet.Servlet 介面的 init, service 和 destroy 方法表達。
描述servlet的生命週期,誰來控制servlet的生命週期,servlet生命週期在J2EE規範中是如何來定義的伺服器執行個體化一個servlet對象,容器運行其init方法,請求到達時運行其service方法,service方法根據請求的類型調用(doGet,doPost)方法,當伺服器決定將執行個體銷毀時調用其destory方法
7、Servlet和Jsp的區別?
答:Servlet是直接執行的檔案Jsp是要被通過編譯形成Servlet後才執行。
8.JSP構架模型
Model1:純jsp 維護難,代碼可複用性差
Model2:jsp+javabean 在jsp中使用usebean標籤,代碼在jsp中本質同Model1
Mvc:jsp+servlet+javabean
9. JSP隱含變數
request 使用者端請求,此請求會包含來自GET/POST請求的參數
response 網頁傳回使用者端的回應
pageContext 網頁的屬性是在這裡管理
session 與請求有關的會話期
application servlet 正在執行的內容
config servlet的構架組件
out 用來傳送回應的輸出 (用來向用戶端輸出資料)
page JSP網頁本身
exception 針對錯誤網頁,未捕捉的例外 (異常)
10.四大共用範圍
答:a、page 當前頁面。
b、session 同一個網站內。
c、request 從上一頁到下一個頁面。
d、application 同一個網站內。
11.MVC——如何理解MVC
答: MVC是Model-View-Controller的簡寫。
"Model" 代表的是應用的商務邏輯 (通過JavaBean,EJB組件實現),
"View" 是應用的表示面(由JSP頁面產生),
"Controller" 是提供應用的處理過程式控制制(一般是一個Servlet),通過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的組件實現。這些組件可以進行互動和重用。
11. JSP生命週期
12、JSP中動態INCLUDE與靜態INCLUDE的區別?
動態INCLUDE用jsp:include動作實現,它總是會檢查所含檔案中的變化,適合用於包含動態網頁面,並且可以帶參數。
靜態INCLUDE用include偽碼實現,定不會檢查所含檔案的變化,適用於包含靜態頁面
13. Forword和SendRedirect區別
答: 前者僅是容器中控制權的轉向,在用戶端瀏覽器地址欄中不會顯示出轉向後的地址;
後者則是完全的跳轉,瀏覽器將會得到跳轉的地址,並重新發送請求連結。這樣,從瀏覽器的地址欄中可以看到跳轉後的連結地址。
所以,前者更加高效,在前者可以滿足需要時,盡量使用forward()方法,並且,這樣也有助於隱藏實際的連結。但在有些情況下,比如,需要跳轉到一個其它伺服器上的資源,則必須使用sendRedirect()方法。
forward是伺服器請求資源,伺服器直接存取目標地址的URL,把那個URL的響應內容讀取過來,然後把這些內容再發給瀏覽器,瀏覽器根本不知道伺服器發送的內容是從哪兒來的,所以它的地址欄中還是原來的地址。
redirect就是服務端根據邏輯,發送一個狀態代碼,告訴瀏覽器重新去請求那個地址,一般來說瀏覽器會用剛才請求的所有參數重新請求,所以session,request參數都可以擷取。
14. 從 BeanFactoy或 ApplicationContext是通過什麼模式取得執行個體的?如果要取得多個執行個體在配製檔案中要怎樣做映射
答:是通過單態模式取得執行個體的,在配製檔案中可以改,好像是isthread...設成false
15. jsp有哪些動作?作用分別是什麼?
答: JSP共有以下6種基本動作
jsp:include:在頁面被請求的時候引入一個檔案。
jsp:useBean:尋找或者執行個體化一個JavaBean。
jsp:setProperty:設定JavaBean的屬性。
jsp:getProperty:輸出某個JavaBean的屬性。
jsp:forward:把請求轉到一個新的頁面。
jsp:plugin:根據瀏覽器類型為Java外掛程式產生OBJECT或EMBED標記
16.請簡述Session的特點有哪些?
答案:
(1) 不是安全執行緒的
(2) Session執行個體是輕量級的
(3) (3)在Session 中,每個資料庫操作都是在一個事務(transaction)中進行的
17. 敘述Session的緩衝的作用
答案:
(1)減少訪問資料庫的頻率。
(2)保證緩衝中的對象與資料庫中的相關記錄保持同步。
18、如何設定/取得Bean 中的屬性值?
答:設定屬性值<jsp:setPropertyname=”haha”,property=”haha的屬性” value=”變數值”/>
< jsp:setProperty name=”haha”,property=”*” />擷取從上一個表單中提交過來的,與Bean中變數名字相同的所有屬性.
取得屬性值:<jsp:getProperty name=”haha” property=”bean的屬性”/>
相當於:<%=getA()%>
19、JavaBean的使用:<jsp:useBean id=”name” class=”sist.md5” scope=”page”/>或者<jsp:useBean id=”name” class=”sist.md5” scope=”page”></jsp:useBean>
20、實現頁面跳轉的兩種方法:
答:a、<jsp:forward page=”for2.jsp”/>
b、<%response.sendRedirect(“for2.jsp”);%>
21、include指令標籤:
<%@include file=”inc1.jsp”%> 簡單的代碼複製。
include動作標籤:<jsp:include page =”inc2.jsp”>擷取inc2.jsp的執行結果。
22、頁面之間的值傳遞:
答:a、設定Session 變數:session.setAttribute(“name”,”sist”);
擷取Session 變數:session.getAttribute(“name”);
b、地址方式傳遞:show.jsp?id=變數值
23、內建對象的範圍分為4種:
答:a、page 當前頁面。
b、session 同一個網站內。
c、request 從上一頁到下一個頁面。
d、application 同一個網站內。
24、擷取session ID: <%=session.getId()%>;判斷session是否有效:session.isNew();
25、使用Cookie對象
答:Cookie ck=new Cookie(“name”,”sist”);
寫入:response.addCookie(ck);
讀取:Cookie[] ck=request.getCookies();
If(ck==null)
for(int a=0;a<ck.length;a++)
{
If(“name”.equals(ck[a].getName()))
Out.print(ck[a].getValue());
}
26、什麼是servlet:在web容器中啟動並執行伺服器端JAVA程式,主要用於響應HTTP請求。Servlet一般用於MVC中的控制器部分。
27、什麼是servlet容器:用來管理servlet生命週期的應用程式如(tomcat)。
28、什麼是JSP Page:java server page 是servlet的擴充,強調web頁面表達,編譯後是一個類servlet。
29、JSP標籤
動作標籤:jsp:include jsp:forword jsp:usebean jsp:set/get Property
指令標籤:<%@page……%> <%@include…..%> <%@taglib…..%>
30、servlet中如何
A、從HTML表單中獲得參數
request.getParameterNames();enumer;
request.getParameter(); String
b、如何獲得要求標頭部的資訊
Enumeration enumer=request.getHeaderNames();
While(enumer. HasMoreElements())
{
String header= enumer.next();
String result=request.getHeader(header);
Out.print(result);
}
C、如何獲得客戶cookie的資訊
request.getCookies();array[]
d、如何設定response的頭部資訊
response.setHeader();
e、如何設定響應的content type
response.setContentType(“text/html charset=utf-8”);
f、如何獲得I/O流、text流、二進位流
g、如何從當前的servlet重新導向到其他的URL
response.sendRedirect(“url”)
RequstDispatcher rd=request.get RequstDispatcher(“url”)
Rd.forword(request,response);
h如何向用戶端寫cookie
Cookie cookie=new Cookie(“object”,”jklj”);
Cookie.setMaxAge(時間);
Response.addCookie(cookie);
31、描述servlet的生命週期,誰來控制servlet的生命週期,servlet生命週期在J2EE規範中是如何來定義的
伺服器執行個體化一個servlet對象,容器運行其init方法,請求到達時運行其service方法,service方法根據請求的類型調用(doGet,doPost)方法,當伺服器決定將執行個體銷毀時調用其destory方法。
32、如何建立Request Dispatcher對象,如何將請求轉寄給其它的web資源(包含其它的web資源),描述如何利用request來存狀態,以及與其它儲存狀態方法有什麼區別
RequstDispatcher rd=request.get RequstDispatcher(“url”)
Rd.forword(request,response);
Request.setAttribute(“object”,”內容”);
一旦產生響應request的生命週期就結束了
33、如何在web.xml中配置servlet定義
<servlet>
<servlet-name>name</servlet-name>
<servlet-class>package</servlet-class>
</servlet>
映射
<servlet-mapping>
<servlet-name>name</servlet-name>
<url-patten>/patten</url-patten>
</servlet-mapping>
34、獲得ServletConfig對象
ServletConfig sc=getServletConfig();
35、如何獲得servletContext對象
servletContext sc=getservletContext();
36、<html><body>
<a href=”/servlet/HelloServlet”>POST</a>
</body></html>
調用servlet時採用了doPost、doGet、doForm、doHref中的哪個方法
doGet方法
37、說明如下的web的資源應該放在web容器中的什麼目錄下,靜態頁面JSP、servlet class、web.xml、Tag libraries、JAR File、java class以及需要保護的資源檔
tomcat容器 web.xml, Tag libraries: \webapps\工程名\WEB-INF
servlet,javaclass: \webapps\工程名\WEB-INF\classes \
jar: \webapps\工程名\WEB-INF\lib\
38、描述request session web application的區別,建立監聽器類來監聽每個scope的生命週期
生命週期不同request產生響應時生命週期結束,session在web.xml中設定生命週期時間、手動清除web容器重啟生命週期結束。Webapplication容器重啟、手動清除
39、JSP的內建對象及方法。
request表示HttpServletRequest對象。它包含了有關瀏覽器請求的資訊,並且提供了幾個用於擷取cookie, header, 和session資料的有用的方法。
response表示HttpServletResponse對象,並提供了幾個用於設定送回 瀏覽器的響應的方法(如cookies,頭資訊等)
out對象是javax.jsp.JspWriter的一個執行個體,並提供了幾個方法使你能用於向瀏覽器回送輸出結果。
pageContext表示一個javax.servlet.jsp.PageContext對象。它是用於方便存取各種範圍的名字空間、servlet相關的對象的API,並且封裝了通用的servlet相關功能的方法。
session表示一個請求的javax.servlet.http.HttpSession對象。Session可以存貯使用者的狀態資訊
applicaton 表示一個javax.servle.ServletContext對象。這有助於尋找有關servlet引擎和servlet環境的資訊
config表示一個javax.servlet.ServletConfig對象。該對象用於存取servlet執行個體的初始化參數。
page表示從該頁面產生的一個servlet執行個體
40、JSP的常用指令
<%@page language="java" contenType="text/html;charset=gb2312" session="true" buffer="64kb" autoFlush="true" isThreadSafe="true" info="text" errorPage="error.jsp" isErrorPage="true" isELIgnored="true" pageEncoding="gb2312" import="java.sql.*"%>
isErrorPage(是否能使用Exception對象),isELIgnored(是否忽略運算式)
<%@include file="filename"%>
<%@taglib prefix="c"uri="http://......"%>
41、JSP和Servlet有哪些相同點和不同點,他們之間的聯絡是什嗎?
JSP是Servlet技術的擴充,本質上是Servlet的簡易方式,更強調應用的外表表達。JSP編譯後是"類servlet"。Servlet和JSP最主要的不同點在於,Servlet的應用邏輯是在Java檔案中,並且完全從展示層中的HTML裡分離開來。而JSP的情況是Java和HTML可以組合成一個副檔名為.jsp的檔案。JSP側重於視圖,Servlet主要用於控制邏輯。
42、四種會話跟蹤技術
會話範圍ServletsJSP 頁面描述
page否是代表與一個頁面相關的對象和屬性。一個頁面由一個編譯好的 Java servlet 類(可以帶有任何的 include 指令,但是沒有 include 動作)表示。這既包括 servlet 又包括被編譯成 servlet 的 JSP 頁面
request是是代表與 Web 客戶機發出的一個請求相關的對象和屬性。一個請求可能跨越多個頁面,涉及多個 Web 元件(由於 forward 指令和 include 動作的關係)
session是是代表與用於某個 Web 客戶機的一個使用者體驗相關的對象和屬性。一個 Web 會話可以也經常會跨越多個客戶機請求
application是是代表與整個 Web 應用程式相關的對象和屬性。這實質上是跨越整個 Web 應用程式,包括多個頁面、請求和會話的一個全域範圍
43、根據JSP的生命週期完成下面表格
|
頁面首次編寫完成 |
請求#1 |
請求#2 |
伺服器重起 |
請求#3 |
請求#4 |
頁面被修改 |
請求#5 |
請求#6 |
|
|
|
|
|
|
|
JSP頁面轉換成servlet |
|
|
|
|
|
|
Servlet編譯 |
|
|
|
|
|
|
建立servlet執行個體並載入伺服器的記憶體 |
|
|
|
|
|
|
Init(或類似的函數)被調用 |
|
|
|
|
|
|
DoGet(或類似的函數)被調用 |
|
|
|
|
|
|