Jsp&servlet知識問答

來源:互聯網
上載者:User

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方法

7ServletJsp的區別?

答: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.四大共用範圍

答:apage 當前頁面。

bsession 同一個網站內。

crequest 從上一頁到下一個頁面。

dapplication 同一個網站內。

 

 

11.MVC——如何理解MVC

答:  MVCModelViewController的簡寫。

"Model" 代表的是應用的商務邏輯 (通過JavaBeanEJB組件實現),

"View"應用的表示面(由JSP頁面產生),

"Controller"提供應用的處理過程式控制制(一般是一個Servlet,通過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的組件實現。這些組件可以進行互動和重用。

11. JSP生命週期

12JSP中動態INCLUDE與靜態INCLUDE的區別?
動態INCLUDE用jsp:include動作實現,它總是會檢查所含檔案中的變化,適合用於包含動態網頁面,並且可以帶參數。
靜態INCLUDE用include偽碼實現,定不會檢查所含檔案的變化,適用於包含靜態頁面

13. ForwordSendRedirect區別

答:  前者僅是容器中控制權的轉向,在用戶端瀏覽器地址欄中不會顯示出轉向後的地址;

後者則是完全的跳轉,瀏覽器將會得到跳轉的地址,並重新發送請求連結。這樣,從瀏覽器的地址欄中可以看到跳轉後的連結地址。

所以,前者更加高效,在前者可以滿足需要時,盡量使用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()%>

19JavaBean的使用:<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”);%>

21include指令標籤:

<%@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種:

答:apage 當前頁面。

bsession 同一個網站內。

crequest 從上一頁到下一個頁面。

dapplication 同一個網站內。

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。

29JSP標籤

動作標籤:jsp:include  jsp:forword  jsp:usebean  jsp:set/get Property

指令標籤:<%@page……%>  <%@include…..%>  <%@taglib…..%>

30servlet中如何

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容器中的什麼目錄下,靜態頁面JSPservlet classweb.xmlTag librariesJAR Filejava 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容器重啟、手動清除

39JSP的內建對象及方法。

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執行個體

40JSP的常用指令
<%@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://......"%>

41JSPServlet有哪些相同點和不同點,他們之間的聯絡是什嗎?
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(或類似的函數)被調用

 

 

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.