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