JSP面試題

1、jsp有哪些內置對象作用分別是什麼
答:JSP共有以下9種基本內置組件(可與ASP的6種內部組件相對應):
     request 用戶端請求,此請求會包含來自GET/POST請求的參數
     response 網頁傳回用戶端的迴應
     pageContext 網頁的屬性是在這裏管理
     session 與請求有關的會話期
     application servlet 正在執行的內容
     out 用來傳送回應的輸出
     config servlet的構架部件
     page JSP網頁本身
     exception 針對錯誤網頁,未捕捉的例外

 

2、jsp有哪些動作作用分別是什麼
答:JSP共有以下6種基本動作
    jsp:include:在頁面被請求的時候引入一個文件。
    jsp:useBean:尋找或者實例化一個JavaBean。
    jsp:setProperty:設置JavaBean的屬性。
    jsp:getProperty:輸出某個JavaBean的屬性。
    jsp:forward:把請求轉到一個新的頁面。
    jsp:plugin:根據瀏覽器類型爲Java插件生成OBJECT或EMBED標記


3、JSP中動態INCLUDE與靜態INCLUDE的區別?
答:動態INCLUDE用jsp:include動作實現
    它總是會檢查所含文件中的變化,適合用於包含動態頁面,並且可以帶參數
    靜態INCLUDE用include僞碼實現,定不會檢查所含文件的變化,適用於包含靜態頁面

4、兩種跳轉方式分別是什麼有什麼區別
答:有兩種,分別爲:

<jsp:include page="included.jsp" flush="true"> 

<jsp:forward page= "nextpage.jsp"/>

前者頁面不會轉向include所指的頁面,只是顯示該頁的結果,主頁面還是原來的頁面。執行完後還會回來,相當於函數調用。並且可以帶參數.後者完全轉向新頁面,不會再回來。相當於go to 語句。

 

5、servlet的生命週期
     web容器加載servlet,生命週期開始。通過調用servlet的init()方法進行servlet的初始化。通過調用service()方法實現,根據請求的不同調用不同的do***()方法。結束服務,web容器調用servlet的destroy()方法。

 

6、JSP和Servlet有哪些相同點和不同點,他們之間的聯繫是什麼?
     Jsp是Servlet技術的擴展,本質上是Servlet的簡易方式,更強調應用的外表表達。JSP編譯後是"類servlet"。Servlet和JSP最主要的不同點在於,Servlet的應用邏輯是在Java文件中,並且完全從表示層中的HTML裏分離開來。而JSP的情況是Java和HTML可以組合成一個擴展名爲.jsp的文件。JSP側重於視圖,Servlet主要用於控制邏輯。

 

7、Jsp的四種會話跟蹤技術
     會話作用域ServletsJSP 頁面描述
     page否是代表與一個頁面相關的對象和屬性。一個頁面由一個編譯好的 Java servlet 類(可以帶有任何的 include 指令,但是沒有 include 動作)表示。這既包括 servlet 又包括被編譯成 servlet 的 JSP 頁面
     request是是代表與 Web 客戶機發出的一個請求相關的對象和屬性。一個請求可能跨越多個頁面,涉及多個 Web 組件(由於 forward 指令和 include 動作的關係)
     session是代表與用於某個 Web 客戶機的一個用戶體驗相關的對象和屬性。一個 Web 會話可以也經常會跨越多個客戶機請求
     application是是代表與整個 Web 應用程序相關的對象和屬性。這實質上是跨越整個 Web 應用程序,包括多個頁面、請求和會話的一個全局作用域

 

8、如何混合使用Jsp和SSI #include?
     在JSP中可以使用如下方式包含純HTML:
<!--#include file="data.inc"-->
但是如果data.inc中包含JSP CODE ,我們可以使用:
<%@include file="data.inc"%>

 

9、在JSP如何包含一個靜態文件?
     靜態包含如下:<%@ includefile="copyright.html" %>
     動態包含如下:<jsp:includepage="copyright.html" flush="true"/>

 

10、在JSP中如何設置COOKIE?
     COOKIE是作爲HTTP HEADER的一部分被髮送的,如下方法即可設置:
<%
Cookie mycookie = new Cookie("aName","aValue");
response.addCookie(mycookie);
%>

 

11、在JSP中如何刪除一個COOKIE?
<%
Cookie killMyCookie = new Cookie("mycookie", null);
killMyCookie.setMaxAge(0);
killMyCookie.setPath("/");
response.addCookie(killMyCookie);
%>

 

 

12、JSP的缺點?
1。對JAVA程序進行調試沒有好東東
2。因大多數的servlet引擎不支持connectionpooling
3。Servlet引擎沒有標準
4。JSP與其它腳本語言的交互

 

13、JSP和Servlet有哪些相同點和不同點,他們之間的聯繫是什麼?
    Servlet技術的擴展,本質上是Servlet的簡易方式,更強調應用的外表表達。JSP編譯後是"類servlet"。Servlet和JSP最主要的不同點在於,Servlet的應用邏輯是在Java文件中,並且完全從表示層中的HTML裏分離開來。而JSP的情況是Java和HTML可以組合成一個擴展名爲.jsp的文件。JSP側重於視圖,Servlet主要用於控制邏輯。

14、J2EE是技術還是平臺還是框架?

J2EE本身是一個標準,一個爲企業分佈式應用的開發提供的標準平臺。
J2EE
也是一個框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技術。

15、說出數據連接池的工作機制是什麼?

  J2EE服務器啓動時會建立一定數量的池連接,並一直維持不少於此數目的池連接。客戶端程序需要連接時,池驅動程序會返回一個未使用的池連接並將其表記爲忙。如果當前沒有空閒連接,池驅動程序就新建一定數量的連接,新建連接的數量有配置參數決定。當使用的池連接調用完成後,池驅動程序將此連接表記爲空閒,其他調用就可以使用這個連接。

 

16、什麼是web容器

      給處於其中的應用程序組件(JSP,SERVLET)提供一個環境,使JSP,SERVLET直接跟容器中的環境變量交互,不必關注其它系統問題。主要有WEB服務器來實現。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。該容器提供的接口嚴格遵守J2EE規範中的WEB APPLICATION 標準。我們把遵守以上標準的WEB服務器就叫做J2EE中的WEB容器。

 

17、什麼是JNDI

(Java Naming &Directory Interface)JAVA命名目錄服務。主要提供的功能是:提供一個目錄系統,讓其它各地的應用程序在其上面留下自己的索引,從而滿足快速查找和定位分佈式應用程序的功能。

 

18、filter是什麼?他的作用是什麼?主要實現什麼方法?doFilter方法裏面的2個參數request和 response? 他問 這兩個接口的全稱是什麼?

    1.Filter使用戶可以改變一個request和修改一個response. Filter 不是一個servlet,它不能產生一個response,它能夠在一個request到達servlet之前預處理request,也可以在離開servlet時處理response.換種說法,filter其實是一個”servlet chaining”(servlet 鏈).一個filter 包括:

  1. 在servlet被調用之前截獲;

  2. 在servlet被調用之前檢查servlet request;

  3. 根據需要修改request頭和request數據;

  4. 根據需要修改response頭和response數據;

  5. 在servlet被調用之後截獲.

19、CSS引入的方式有哪些? link和@import的區別是?

1.     使用 LINK標籤

將樣式規則寫在.css的樣式文件中,再以<link>標籤引入。

<link rel=stylesheet  type="text/css" href="example.css">

2.     使用@import引入

跟link方法很像,但必須放在<STYLE>...</STYLE>  中

<STYLE  TYPE="text/css">

<!--

  @import  url(css/example.css);

-->

</STYLE>

3.     使用STYLE標籤

將樣式規則寫在<STYLE>...</STYLE>標籤之中。

<STYLE  TYPE="text/css">

<!--

body {color:  #666;background: #f0f0f0;font-size: 12px;}

td,p {color:#c00;font-size:  12px;}

-->

</STYLE>

4.     使用STYLE屬性

將STYLE屬性直接加在個別的元件標籤裏,<元件(標籤) STYLE="性質(屬性)1: 設定值1; 性質(屬性)2: 設定值2; ...}

5.     使用<span></span>標記引入樣式

<span  style="font:12px/20px   #000000;">cnwebshow.com</span>

 

兩者區別:加載順序的差別。當一個頁面被加載的時候,link引用的CSS會同時被加載,而@import引用的CSS會等到頁面全部被下載完再被加載。@import可以在css中再次引入其他樣式表,比如可以創建一個主樣式表,在主樣式表中再引入其他的樣式表,如:

 

main.css

———————-

@import“sub1.css”;

@import“sub2.css”;

這樣做有一個缺點,會對網站服務器產生過多的HTTP請求,以前是一個文件,而現在卻是兩個或更多文件了,服務器的壓力增大,瀏覽量大的網站還是謹慎使用。

 

 

20、JSP頁面是如何被執行的?JSP執行效率比Servlet低嗎?

 

當客戶端向一個JSP頁面發出請求時,Web Container將JSP轉化成Servlet的源代碼(只在第一次請求時),然後編譯轉化後的Servlet並加載到內存中執行,執行的結果Response到客戶端。

JSP只在第一次執行的時候會轉化爲Servlet,以後每次執行Web容器都是直接執行編譯後的Servlet,所以JSP和Servlet只是在第一次執行的時候不一樣,JSP慢一點,以後的執行都是相同的。

 

21、JSP如何處理運行時異常(run-time)exceptions?

 

可以使用頁面的errorPage屬性捕獲沒有處理的運行時異常,然後自動轉向到一個錯誤處理頁面,代碼如下:

<%@ page errorPage=”error.jsp” %>

如果在頁面請求時出現運行時異常是,以上代碼會把頁面轉向到JSP頁面error.jsp,在error.jsp裏面,可以通過以下代碼定義這個頁面是錯誤處理頁:

<%@ page isErrorPage=”true” %>

這樣描述錯誤信息的Throwable對象就可以在error.jsp頁面裏面訪問到。

 

22、如果jsp表單元素的值爲空,如何避免null出現在頁面上?

 

可以寫一個簡單的函數對空值進行處理,判斷值是否爲空,如果是空就返回空字符串。實例代碼如下:

<%!

String blanknull(String s){

return (s == null) ? “” : s;

}

%>

在你的JSP裏面,可以使用以上函數輸出文本框或者其他頁面元素的值,實例代碼如下:

<input type=”text” name=”shoesize”value=”<%=blanknull(shoesize)% >” >

 

23、在servlets和JSP之間能共享session對象嗎?

當然可以,

HttpSession session =request.getSession(true);

session.putValue(”variable”,”value”);

 

24、Java Servlet的主要功能和作用是什麼?

 

Servlet 通過創建一個框架來擴展服務器的能力,以提供在 Web 上進行請求和響應服務。當客戶機發送請求至服務器時,服務器可以將請求信息發送給Servlet ,並讓 Servlet 建立起服務器返回給客戶機的響應。 當啓動 Web 服務器或客戶機第一次請求服務時,可以自動裝入 Servlet 。裝入後, Servlet 繼續運行直到其它客戶機發出請求。 Servlet 的功能涉及範圍很廣。例如, Servlet 可完成如下功能:

(1) 創建並返回一個包含基於客戶請求性質的動態內容的完整的 HTML 頁面。

(2) 創建可嵌入到現有 HTML 頁面中的一部分 HTML 頁面( HTML 片段)。

(3) 與其它服務器資源(包括數據庫和基於 Java 的應用程序)進行通信。

(4) 用多個客戶機處理連接,接收多個客戶機的輸入,並將結果廣播到多個客戶機上。例如, Servlet 可

以是多參與者的遊戲服務器。

(5) 當允許在單連接方式下傳送數據的情況下,在瀏覽器上打開服務器至 applet 的新連接,並將該連

接保持在打開狀態。當允許客戶機和服務器簡單、高效地執行會話的情況下,applet 也可以啓動客戶瀏覽器和服務器之間的連接。可以通過定製協議或標準(如 IIOP )進行通信。

(6) 對特殊的處理採用 MIME 類型過濾數據,例如圖像轉換和服務器端包括( SSI )。

(7) 將定製的處理提供給所有服務器的標準例行程序。例如, Servlet 可以修改如何認證用戶。

 

25、JSP中動態INCLUDE與靜態INCLUDE的區別?

動態INCLUDE用jsp:include動作實現 <jsp:includepage="included.jsp" flush="true" />它總是會檢查所含文件中的變化,適合用於包含動態頁面,並且可以帶參數。

靜態INCLUDE用include僞碼實現,不會檢查所含文件的變化,適用於包含靜態頁面<%@ include file="included.htm"%>

 

26、說一說Servlet的生命週期?
Servlet是一種可以 在Servlet容器中運行的組件,那麼理所當然就應該有一個從創建到銷燬的過程,這個過程我們可以稱之爲Servlet生命週期。Servlet的生命 週期可以分爲加載、實例化、初始化、處理客戶請求和卸載五個階段,體現在方法上主要是init()、service()和destroy()三個方法。生命週期的具體說明如下:

· Servlet容器完成加載Servlet類和實例化一個Servlet對象

· init()方法完成初始化工作,該方法由Servlet容器調用完成

· service()方法處理客戶端請求,並返回響應結果

· destroy()方法在Servlet容器卸載Servlet之前被調用,釋放一些資源

 

27、JSP和Servlet有哪些相同點和不同點,他們之間的聯繫是什麼? 
JSP技術是建立在Servlet技術基礎之上的,本質上是Servlet的簡易方式,更強調應用的外表表達。JSP編譯後是"類servlet",所有的JSP頁面最終都要被轉換成Servlet來運行。

目前,一個web應用往往由多個servlet和jsp組成。Servlet和JSP最主要的不同點在於,Servlet的應用邏輯是在Java文件中,並且完全從表示層中的HTML裏分離開來。而JSP的情況是Java和HTML可以組合成一個擴展名爲.jsp的文件。JSP側重於視圖,負責顯示工作完成;Servlet主要用於控制邏輯,負責流程控制功能。

 

28、JSP有哪些動作?作用分別是什麼?

共有以下6種基本動作:

Jsp:include:在頁面被請求的時候引入一個文件;

Jsp:useBean:尋找或實例化一個JavaBean;

Jsp:setProperty:設置JavaBean的屬性;

Jsp:getProperty:輸出某個JavaBean的屬性;

Jsp:forward:把請求轉到一個新的頁面;

Jsp:plugin:根據瀏覽器類型爲Java插件生成OBJECT或EMBED標記;

 

29、寫一段Jdbc連Oracle的程序,並實現數據查詢。

    Package hello.ant;

    Import java.sql.*;

    Public class JdbcOracle{

        String dbUrl = “jdbc:oracle:thin:@127.0.0.1:1521:orcl”;

        String userName = “admin”;

        String password = “manager”;

        Connection c = null;

        Statement conn;

        ResultSet rs = null;

       

        PublicJdbcOracle(){

        Try{

            Class.forName(“oracle.jdbc.driver.OracleDriver”).newInstance();

c =DriverManager.getConnection(dbUrl,username,password);

conn = c.createStatement();

}catch(Exceptione){

    e.printStackTrace();

}

}

}

30、說出在JSP頁面裏是怎麼分頁的?
頁面需要保存以下參數:

總行數:根據sql語句得到總行數

每頁顯示行數:設定值

當前頁數:請求參數

頁面根據當前頁數和每頁行數計算出當前頁第一行行數,定位結果集到此行,對結

果集取出每頁顯示行數的行即可。

 

31、瀏覽器jsp,html之間的關係

1.JSP與Java Servlet一樣,是在服務器端執行的,通常返回該客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽

2.在大多數Browser/Server結構的Web應用中,瀏覽器直接通過HTML或者JSP的形式與用戶交互,響應用戶的請求

3.JSP在服務器上執行,並將執行結果輸出到客戶端瀏覽器,我們可以說基本上與瀏覽器無關

 

32、自定義標籤要繼承哪個類

這個類可以繼承TagSupport或者BodyTagSupport,兩者的差別是前者適用於沒有主體的標籤,而後者適用於有主體的標籤。如果選擇繼承TagSupport,可以實現doStartTag和doEndTag兩個方法實現Tag的功能,如果選擇繼承BodyTagSupport,可以實現doAfterBody這個方法。

 

33、doPost,doGet的區別?

1、當你直接訪問一個servlet時,調用的是doGet方法。   
2、如果你的html裏面規定了method訪問哪個方法,則調用該方法。
   
3、get和post提交的數據量是不一樣的.get好像最多只能在url後跟8K, post沒這個限制

 

34、jsp亂碼如何解決,幾種解決方案?

一、JSP頁面顯示亂碼
二、表單提交中文時出現亂碼
三、數據庫連接時出現亂碼

 

35、敘述Session的緩存的作用 ? 

(1)減少訪問數據庫的頻率。 

(2)保證緩存中的對象與數據庫中的相關記錄保持同步。

 

36、什麼是servlet?

在web容器中運行的服務器端JAVA程序,主要用於響應HTTP請求。Servlet一般用於MVC中的控制器部分。

 

37、轉發、跳轉、提交、超鏈的區別?   

轉發:運行在服務端,下一頁面保留當前頁面的request、response   

跳轉:運行在服務端,下一頁面不保留當前頁面的request、response   

提交:運行在客戶端,向服務器發送請求,提交表單域的內容 

超鏈:運行在客戶端,向服務器發送請求,提交超鏈信息

 

 

38、如何實現servlet單線程模式?

<%@ page isThreadSafe="false"%>

 

39、如何防止在JSP或servlet中的輸出不被browser保存在cache中?

把一下腳本加入到jsp文件中即可

<%

response.setHeader("Cache-Control","no-store");

response.setHeader("Pragma","no-cache");

response.setDateHeader("Expires",0);

%>

 

40、MVC——如何理解MVC 

 MVC是Model-View-Controller的簡寫。 

“Model” 代表的是應用的業務邏輯 (通過JavaBean,EJB組件實現), “View” 是應用的表示面(由JSP頁面產生), 

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

 

 

41、url重寫有幾種方式? 

由於cookie可以被人爲的禁止,必須有其他機制以便在cookie被禁止時仍然能夠把session id傳遞迴

服務器。經常被使用的一種技術叫做URL重寫,就是把session id直接附加在URL路徑的後面,附加方式也有兩種,一種是作爲URL路徑的附加信息,表現形式爲 http://...../xxx;jsessionid= 

ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764 

另一種是作爲查詢字符串附加在URL後面,表現形式爲http://...../xxx?jsessionid=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764 

這兩種方式對於用戶來說是沒有區別的,只是服務器在解析的時候處理的方式不同,採用第一種方式也有利於把session id的信息和正常程序參數區分開來。爲了在整個交互過程中始終保持狀態,就必須在每個客戶端可能請求的路徑後面都包含這個session id。

 

42、Request對象的主要方法: 

setAttribute(String name,Object):設置名字爲name的request的參數值 

getAttribute(String name):返回由name指定的屬性值 

getAttributeNames():返回request對象所有屬性的名字集合,結果是一個枚舉的實例 

getCookies():返回客戶端的所有Cookie對象,結果是一個Cookie數組 

getCharacterEncoding():返回請求中的字符編碼方式 

getContentLength():返回請求的Body的長度 

getHeader(String name):獲得HTTP協議定義的文件頭信息 

getHeaders(String name):返回指定名字的request Header的所有值,結果是一個枚舉的實例 

getHeaderNames():返回所以request Header的名字,結果是一個枚舉的實例 

getInputStream():返回請求的輸入流,用於獲得請求中的數據 

getMethod():獲得客戶端向服務器端傳送數據的方法 

getParameter(String name):獲得客戶端傳送給服務器端的有name指定的參數值 

getParameterNames():獲得客戶端傳送給服務器端的所有參數的名字,結果是一個枚舉的實例 

getParameterValues(String name):獲得有name指定的參數的所有值 

getProtocol():獲取客戶端向服務器端傳送數據所依據的協議名稱 

getQueryString():獲得查詢字符串 

getRequestURI():獲取發出請求字符串的客戶端地址 

getRemoteAddr():獲取客戶端的IP地址 

getRemoteHost():獲取客戶端的名字 

getSession([Boolean create]):返回和請求相關Session 

getServerName():獲取服務器的名字 

getServletPath():獲取客戶端所請求的腳本文件的路徑 

getServerPort():獲取服務器的端口號 

removeAttribute(String name):刪除請求中的一個屬性

 

 

 

43、說說四種會話跟蹤技術

1,page是代表與一個頁面相關的對象和屬性。一個頁面由一個編譯好的java servlet類(可以帶有任何的include指令,但是沒有include動作)表示。這既包括servlet又包括被編譯成servlet的jsp頁面。

2,request是代表與web客戶端發送的一個請求相關的對象和屬性。一個請求可能跨越多個頁面,涉及多個web組件

3,session代表與用於某個web客戶端的一個用戶體驗相關的對象和屬性,一個web會話可以也經常會跨越多個客戶機請求。

4,application是代表與整個web應用程序相關的對象和屬性,這實質上是跨越多個web應用程序,包括多個頁面、請求和會話的一個全局作用域。

 

 

44、如何防止在JSP或servlet中的輸出不被browser保存在cache中?

把一下腳本加入到jsp文件中即可

<%

response.setHeader("Cache-Control","no-store");

response.setHeader("Pragma","no-cache");

response.setDateHeader("Expires",0);

%>

 

 

 

45、簡述HttpSession接口的功能和使用方法。(企業筆試題)
這是一個java.servelt.http包中的接口,它封裝了會話的概念。定義爲:“public interface HttpSession”,可以使用HttpServletRequest對象的getSession()方法來得到這種類型的對象,語法爲:“HttpSessionsession = request.getSession();”。

 

 

46、如何混合使用Jsp和SSI #include? 
 在JSP中可以使用如下方式包含純HTML: 
 <!--#include file="data.inc"--> 
 但是如果data.inc中包含JSP CODE ,我們可以使用: 
 <
%@include file="data.inc"%> 

 

 

47、如何執行一個線程安全的JSP? 
 只需增加如下指令 
 <%@ page isThreadSafe="false" %> 

 

48、JSP如何處理HTML FORM中的數據? 
 通過內置的request對象即可,如下: 
 <% 
 String item = request.getParameter("item"); 
 int howMany = newInteger(request.getParameter("units")).intValue(); 

 %>  

 

49、在JSP如何包含一個靜態文件? 
 靜態包含如下:<%@ includefile="copyright.html" %> 
 動態包含如下:<jsp:include page="copyright.html"flush="true"/>  

 

 

50、在JSP中如何使用註釋? 
 主要有四中方法: 
 1。<%-- 與 --%> 
 2。// 
 3。/**與**/ 
 4。<!--與-->  

 

51、在JSP中如何執行瀏覽重定向? 
 使用如下方式即可:response.sendRedirect("
http://ybwen.home.chinaren.com/index.html"); 
 也能物理地改變HTTP HEADER屬性,如下:
 
 <% 
 response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); 
 String newLocn="/newpath/index.html"; 
 response.setHeader("Location",newLocn); 
 %> 

 

55、如何防止在JSP或SERVLET中的輸出不被BROWSER保存在CACHE中? 
 
把如下腳本加入到JSP文件的開始即可: 
 <% 
 response.setHeader("Cache-Control","no-store");//HTTP 1.1 
 response.setHeader("Pragma","no-cache"); //HTTP 1.0 
 response.setDateHeader ("Expires", 0); //divvents caching atthe proxy server 
 %> 

 

 

56、在JSP中如何設置COOKIE? 
 COOKIE是作爲HTTP HEADER的一部分被髮送的,如下方法即可設置: 
 <% 
 Cookie mycookie = new Cookie("aName","aValue"); 
 response.addCookie(mycookie); 
 %>

 

57、在JSP中如何刪除一個COOKIE? 
 <% 
 Cookie killMyCookie = new Cookie("mycookie", null); 
 killMyCookie.setMaxAge(0); 
 killMyCookie.setPath("/"); 
 response.addCookie(killMyCookie); 
 %>  

 

58、在一個JSP的請求處理中如何停止JSP的執行 
 如下例: 
 <% 
 if (request.getParameter("wen") != null) { 
 // do something 
 } else { 
 return; 
 } 
 %>  

 

59、如果BROWSER已關閉了COOKIES,在JSP中我如何打開SESSION來跟蹤 
 
使用URL重寫即可,如下: 
 hello1.jsp 
 <%@ page session="true" %> 
 <% 
 Integer num = new Integer(100); 
 session.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 "+i.intValue()); 
 %>  

 

60、JSP和APPLET如何通訊 
 JSP如何與EJB SessionBean通訊 
 下面的代碼段作了很好的示範 
 <%@ page import="javax.naming.*, javax.rmi.PortableRemoteObject, 
 foo.AccountHome, foo.Account" %> 
 <%! 
 //定義一個對SessionBeanHome接口實例的全局引用 
 AccountHome accHome=null;  public void jspInit() { 
 //獲得Home接口實例 
 InitialContext cntxt = new InitialContext( ); 
 Object ref= cntxt.lookup("java:comp/env/ejb/AccountEJB"); 
 accHome =(AccountHome)PortableRemoteObject.narrow(ref,AccountHome.class); 
 } 
 %> 
 <% 
 //實例化SessionBean 
 Account acct = accHome.create(); 
 //調用遠程方法 
 acct.doWhatever(...); 
 // 如此等等 
 %> 

 

 

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

 

 

62、JSP能進行遞歸調用嗎? 
 當然可以,如對form的提交給本頁

 

 

63、能設置一些代碼在我所有的JSP文件之上運行?如果可以,能共享嗎? 
 當然可以,可以爲你的JSP文件定義一個別名:/jsp/=ybwen.genius.myPreprocessingServlet,而以/jsp/爲前綴的文件可以使用 

 

 

64、對一個JSP頁,如果多個客戶端同時請求它,同步可能嗎? 
 
在jsp:useBean語法中使用beanName有何好處? 
 beanName使用Beans.instantiate()初始化Bean 

 

 

發佈了48 篇原創文章 · 獲贊 6 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章