servlet and jsp面試題_第1頁
servlet and jsp面試題_第2頁
servlet and jsp面試題_第3頁
servlet and jsp面試題_第4頁
servlet and jsp面試題_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、1、jsp有哪些內(nèi)置對象作用分別是什么答:JSP共有以下9種基本內(nèi)置組件(可與ASP的6種內(nèi)部組件相對應):     request 用戶端請求,此請求會包含來自GET/POST請求的參數(shù)     response 網(wǎng)頁傳回用戶端的回應pageContext 網(wǎng)頁的屬性是在這里管理session 與請求有關的會話期application servlet 正在執(zhí)行的內(nèi)容     out 用來傳送回應的輸出     config servl

2、et的構(gòu)架部件     page JSP網(wǎng)頁本身     exception 針對錯誤網(wǎng)頁,未捕捉的例外2、jsp有哪些動作作用分別是什么答:JSP共有以下6種基本動作    jsp:include:在頁面被請求的時候引入一個文件。    jsp:useBean:尋找或者實例化一個JavaBean。    jsp:setProperty:設置JavaBean的屬性。    jsp:getPrope

3、rty:輸出某個JavaBean的屬性。    jsp:forward:把請求轉(zhuǎn)到一個新的頁面。    jsp:plugin:根據(jù)瀏覽器類型為Java插件生成OBJECT或EMBED標記3、JSP中動態(tài)INCLUDE與靜態(tài)INCLUDE的區(qū)別?答:動態(tài)INCLUDE用jsp:include動作實現(xiàn)    它總是會檢查所含文件中的變化,適合用于包含動態(tài)頁面,并且可以帶參數(shù)    靜態(tài)INCLUDE用include偽碼實現(xiàn),定不會檢查所含文件的變化,適用于包含靜態(tài)頁面4、兩種跳轉(zhuǎn)

4、方式分別是什么有什么區(qū)別答:有兩種,分別為:前者頁面不會轉(zhuǎn)向include所指的頁面,只是顯示該頁的結(jié)果,主頁面還是原來的頁面。執(zhí)行完后還會回來,相當于函數(shù)調(diào)用。并且可以帶參數(shù).后者完全轉(zhuǎn)向新頁面,不會再回來。相當于go to 語句。57、JSP的內(nèi)置對象及方法。     request表示HttpServletRequest對象。它包含了有關瀏覽器請求的信息,并且提供了幾個用于獲取         cookie, header, 和session數(shù)據(jù)的有用的方法。 

5、;   response表示HttpServletResponse對象,并提供了幾個用于設置送回瀏覽器的響應的方法(如cookies,頭信息等)    out對象是javax.jsp.JspWriter的一個實例,并提供了幾個方法使你能用于向瀏覽器回送輸出結(jié)果。    pageContext表示一個javax.servlet.jsp.PageContext對象。它是用于方便存取各種范圍的名字空間、servlet相關的對象的API,并且包裝了通用的servlet相關功能的方法。    s

6、ession表示一個請求的javax.servlet.http.HttpSession對象。Session可以存貯用戶的狀態(tài)信息    applicaton 表示一個javax.servle.ServletContext對象。這有助于查找有關servlet引擎和servlet環(huán)境的信息    config表示一個javax.servlet.ServletConfig對象。該對象用于存取servlet實例的初始化參數(shù)。    page表示從該頁面產(chǎn)生的一個servlet實例二、JSP&Servlet

7、技術1. 描述JSP和Servlet的區(qū)別、共同點、各自應用的范圍2. 在Web開發(fā)中需要處理HTML標記時,應做什么樣的處理,要篩選那些字符(< > & “”)3. 在JSP中如何讀取客戶端的請求,如何訪問CGI變量,如何確定某個Jsp文件的真實路徑。4. 描述Cookie和Session的作用,區(qū)別和各自的應用范圍,Session工作原理。5. 列出Jsp中包含外部文件的方式,兩者有何區(qū)別。6. 說明Jsp中errorPage的作用,應用范圍。7. 介紹在Jsp中如何使用JavaBeans。8. 簡單介紹JSP的標記庫9. Jsp和Servlet中的請求轉(zhuǎn)發(fā)分別如何實現(xiàn)

8、。59、JSP的常用指令     isErrorPage(是否能使用Exception對象),isELIgnored(是否忽略表達式)60、什么情況下調(diào)用doGet()和doPost()?     Jsp頁面中的form標簽里的method屬性為get時調(diào)用doGet(),為post時調(diào)用doPost()。61、servlet的生命周期     web容器加載servlet,生命周期開始。通過調(diào)用servlet的init()方法進行servlet的初始化。通過調(diào)用servic

9、e()方法實現(xiàn),根據(jù)請求的不同調(diào)用不同的do*()方法。結(jié)束服務,web容器調(diào)用servlet的destroy()方法。62、如何現(xiàn)實servlet的單線程模式63、頁面間對象傳遞的方法request,session,application,cookie等64、JSP和Servlet有哪些相同點和不同點,他們之間的聯(lián)系是什么?     Jsp是Servlet技術的擴展,本質(zhì)上是Servlet的簡易方式,更強調(diào)應用的外表表達。JSP編譯后是"類servlet"。Servlet和JSP最主要的不同點在于,Servlet的應用邏輯是在Jav

10、a文件中,并且完全從表示層中的HTML里分離開來。而JSP的情況是Java和HTML可以組合成一個擴展名為.jsp的文件。JSP側(cè)重于視圖,Servlet主要用于控制邏輯。65、四種會話跟蹤技術     會話作用域ServletsJSP 頁面描述     page否是代表與一個頁面相關的對象和屬性。一個頁面由一個編譯好的 Java servlet 類(可以帶有任何的 include 指令,但是沒有 include 動作)表示。這既包括 servlet 又包括被編譯成 servlet 的 JSP 頁面 &#

11、160;   request是是代表與 Web 客戶機發(fā)出的一個請求相關的對象和屬性。一個請求可能跨越多個頁面,涉及多個 Web 組件(由于 forward 指令和 include 動作的關系)     session是代表與用于某個 Web 客戶機的一個用戶體驗相關的對象和屬性。一個 Web 會話可以也經(jīng)常會跨越多個客戶機請求     application是是代表與整個 Web 應用程序相關的對象和屬性。這實質(zhì)上是跨越整個 Web 應用程序,包括多個頁面、請求和會話的一個全局作用域66、Re

12、quest對象的主要方法:setAttribute(String name,Object):設置名字為name的request的參數(shù)值getAttribute(String name):返回由name指定的屬性值getAttributeNames():返回request對象所有屬性的名字集合,結(jié)果是一個枚舉的實例getCookies():返回客戶端的所有Cookie對象,結(jié)果是一個Cookie數(shù)組getCharacterEncoding():返回請求中的字符編碼方式getContentLength():返回請求的Body的長度getHeader(String name):獲得HTTP協(xié)議定義的

13、文件頭信息getHeaders(String name):返回指定名字的request Header的所有值,結(jié)果是一個枚舉的實例getHeaderNames():返回所以request Header的名字,結(jié)果是一個枚舉的實例getInputStream():返回請求的輸入流,用于獲得請求中的數(shù)據(jù)getMethod():獲得客戶端向服務器端傳送數(shù)據(jù)的方法getParameter(String name):獲得客戶端傳送給服務器端的有name指定的參數(shù)值getParameterNames():獲得客戶端傳送給服務器端的所有參數(shù)的名字,結(jié)果是一個枚舉的實例getParameterValues(S

14、tring name):獲得有name指定的參數(shù)的所有值getProtocol():獲取客戶端向服務器端傳送數(shù)據(jù)所依據(jù)的協(xié)議名稱getQueryString():獲得查詢字符串getRequestURI():獲取發(fā)出請求字符串的客戶端地址getRemoteAddr():獲取客戶端的IP地址getRemoteHost():獲取客戶端的名字getSession(Boolean create):返回和請求相關SessiongetServerName():獲取服務器的名字getServletPath():獲取客戶端所請求的腳本文件的路徑getServerPort():獲取服務器的端口號removeAt

15、tribute(String name):刪除請求中的一個屬性67.在jsp:useBean語法中使用beanName有何好處?     beanName使用Beans.instantiate()初始化Bean68、Servlet執(zhí)行時一般實現(xiàn)哪幾個方法?public void init(ServletConfig config)public ServletConfig getServletConfig()public String getServletInfo()public void service(ServletRequest request,Se

16、rvletResponse response)public void destroy()JSP1、如何混合使用Jsp和SSI #include?     在JSP中可以使用如下方式包含純HTML:<!-#include file="data.inc"->但是如果data.inc中包含JSP CODE ,我們可以使用:<%include file="data.inc"%> 2、如何執(zhí)行一個線程安全的JSP?     只需增加如下指令<% page

17、isThreadSafe="false" %>3、JSP如何處理HTML FORM中的數(shù)據(jù)?     通過內(nèi)置的request對象即可,如下:<%String item = request.getParameter("item");int howMany = new Integer(request.getParameter("units").intValue();%>4、在JSP如何包含一個靜態(tài)文件?     靜態(tài)包含如下:<% i

18、nclude file="copyright.html" %>     動態(tài)包含如下:<jsp:include page="copyright.html" flush="true"/>5、在JSP中如何使用注釋?     主要有四中方法:1。<%- 與 -%>2。/3。/*與*/4。<!-與->6、在JSP中如何執(zhí)行瀏覽重定向?使用如下方式即可:response.sendRedirect("也能物理地改變

19、HTTP HEADER屬性,如下:<%response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);String newLocn="/newpath/index.html"response.setHeader("Location",newLocn);%>7、如何防止在JSP或SERVLET中的輸出不被BROWSER保存在CACHE中?     把如下腳本加入到JSP文件的開始即可:<%response.setHeader("Ca

20、che-Control","no-store"); /HTTP 1.1response.setHeader("Pragma","no-cache"); /HTTP 1.0response.setDateHeader ("Expires", 0); /prevents caching at the proxy server%>8、在JSP中如何設置COOKIE?     COOKIE是作為HTTP HEADER的一部分被發(fā)送的,如下方法即可設置:<%Coo

21、kie mycookie = new Cookie("aName","aValue");response.addCookie(mycookie);%>9、在JSP中如何刪除一個COOKIE?<%Cookie killMyCookie = new Cookie("mycookie", null);killMyCookie.setMaxAge(0);killMyCookie.setPath("/");response.addCookie(killMyCookie);%>10、在一個JSP的請求處理中如

22、何停止JSP的執(zhí)行     如下例:<%if (request.getParameter("wen") != null) / do something else return;%>11、在JSP中如何定義方法     你可以定義方法,但是你不能直接訪問JSP的內(nèi)置對象,而是通過參數(shù)的方法傳遞。如下:<%!public String howBadFrom(HttpServletRequest req) HttpSession ses = req.getSession();.ret

23、urn req.getRemoteHost();%><%out.print("in general,lao lee is not baddie ");%><%= howBadFrom(request) %>12、如果BROWSER已關閉了COOKIES,在JSP中我如何打開SESSION來跟蹤     使用URL重寫即可,如下:hello1.jsp<% page session="true" %><%Integer num = new Integer(100);ses

24、sion.putValue("num",num);String url =response.encodeURL("hello2.jsp");%><a href=<%=url%>>hello2.jsp</a> hello2.jsp<% page session="true" %><%Integer i= (Integer )session.getValue("num");out.println("Num value in session is &q

25、uot;+Value();%>13、在JSP中能發(fā)送EMAIL嗎         可以使用SUN的專用包:.smtp包。如下腳本使用SmtpClient類發(fā)送EMAIL。<% page import=".smtp.SmtpClient, java.io.*" %><%String from="ybwen"String to="hewenjun, lei"trySmtpClient client = new SmtpClie

26、nt("mail.xxxxx.xxx");client.from(from);client.to(to);PrintStream message = client.startMessage();message.println("To: " + to);message.println("Subject: Sending email from JSP!");message.println("This was sent from a JSP page!");message.println();message.printl

27、n("Cool! :-)");message.println();message.println("Good Boy");message.println("Im in ");message.println();client.closeServer();catch (IOException e)System.out.println("ERROR SENDING EMAIL:"+e);%>14、在SERVLET中我能調(diào)用一個JSP錯誤頁嗎      &#

28、160;  當然沒問題,如下展示了如何在一個SERVLET控制邏輯單元內(nèi)調(diào)用一個JSP錯誤頁面。protected void sendErrorRedirect(HttpServletRequest request,HttpServletResponse response, String errorPageURL,Throwable e)throws ServletException, IOException request.setAttribute ("javax.servlet.jsp.jspException", e);getServletConfig().

29、getServletContext().getRequestDispatcher(errorPageURL).forward(request,response); public void doPost(HttpServletRequest request,HttpServletResponse response) try / do something catch (Exception ex) try sendErrorRedirect(request,response,"/jsp/MyErrorPage.jsp",ex); catch (Exception e) e.pri

30、ntStackTrace();15、JSP和APPLET如何通訊         JSP如何與EJB SessionBean通訊下面的代碼段作了很好的示范<% page import="javax.naming.*, javax.rmi.PortableRemoteObject,foo.AccountHome, foo.Account" %><%!/定義一個對SessionBeanHome接口實例的全局引用AccountHome accHome=null; public voi

31、d jspInit() /獲得Home接口實例InitialContext cntxt = new InitialContext( );Object ref= cntxt.lookup("java:comp/env/ejb/AccountEJB");accHome = (AccountHome)PortableRemoteObject.narrow(ref,AccountHome.class);%><%/實例化SessionBeanAccount acct = accHome.create();/調(diào)用遠程方法acct.doWhatever(.);/ 如此等等%&

32、gt;16、當我使用一個結(jié)果集時,如何防止字段為"null"的字域顯示在我的HTML輸入文本域中?         可以定義一個簡單的函數(shù)來達到目的,如下:<%!String blanknull(String s) return (s = null) ? "" : s;%> 然后在JSP的FORM中,可以這樣使用<input type="text" name="shoesize" value="<%=b

33、lanknull(shoesize)%>">17、如何中SERVLET或JSP下載一個文件(如:binary,text,executable)?         現(xiàn)提供兩個解決方案:A:使用HTTP,B:在Servlet中,通過設置ContentType和使用java.io包的Stream等類可作到.例如:response.setContentType("application/x-msword");然后想輸出緩沖中寫一些東東即可。 18、使用useBean標志初始化BEA

34、N時如何接受初始化參數(shù)使用如下兩標簽即可:<jsp:getProperty name="wenBean" property="someProperty"/><jsp:setProperty name="wenBean" property="someProperty" value="someValue"/> 19、使用JSP如何獲得客戶瀏覽器的信息?使用request.getHeader(String)即可20、能象調(diào)用子程序一樣調(diào)用JSP嗎?  

35、60;      當然可以,用<jsp:include page="relativeURL" flush="true"/>21、當我重編譯我的JSP使用的一個類后,為什么JVM繼續(xù)使用我的老CLASS?<%include file="abc.jsp"%>與<jsp:include page="abc.jsp"/>之間的差別?前一個為靜態(tài)包含,而后一個為動態(tài)包含22、JSP的缺點?1。對JAVA程序進行調(diào)試沒有好東東2。因大多數(shù)的s

36、ervlet引擎不支持connection pooling3。Servlet引擎沒有標準4。JSP與其它腳本語言的交互23、JSP能進行遞歸調(diào)用嗎?         當然可以,如對form的提交給本頁24、如何實現(xiàn)JSP的國際化?         為各種版本提供resource bundles屬性文件即可 25、在JSP中如何寫文本文件?         使用PrintWriter對象,如:<% page import="java.io.*" %><%String str = "print me"String nameOfTextFile = "/usr/anil/imp.txt"try PrintWriter pw = new P

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論