1. 程式人生 > >java面試(jsp部分)

java面試(jsp部分)

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

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

123、JSP中動態INCLUDE與靜態INCLUDE的區別?
動態INCLUDE用jsp:include動作實現
它總是會檢查所含檔案中的變化,適合用於包含動態頁面,並且可以帶引數
靜態INCLUDE用include偽碼實現,定不會檢查所含檔案的變化,適用於包含靜態頁面
<%@ include file=”included.htm” %>

124、兩種跳轉方式分別是什麼?有什麼區別?
有兩種,分別為:


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

125、如何執行一個執行緒安全的JSP?
只需增加如下指令
<%@ page isThreadSafe=”false” %>

126、JSP如何處理HTML FORM中的資料?
通過內建的request物件即可,如下:
<%
String item = request.getParameter(“item”);
int howMany = new Integer(request.getParameter(“units”)).intValue();
%>

127、在JSP如何包含一個靜態檔案?
靜態包含如下:<%@ include file=”copyright.html” %>
動態包含如下:

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

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

130、如何防止在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); //prevents caching at the proxy server
%>

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

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

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

134、在JSP中如何定義方法
你可以定義方法,但是你不能直接訪問JSP的內建物件,而是通過引數的方法傳遞。如下:
<%!
public String howBadFrom(HttpServletRequest req) {
HttpSession ses = req.getSession();

return req.getRemoteHost();
}
%>
<%
out.print(“in general,lao lee is not baddie “);
%>
<%= howBadFrom(request) %>

如果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”);
%>
>hello2.jsp

hello2.jsp
<%@ page session=”true” %>
<%
Integer i= (Integer )session.getValue(“num”);
out.println(“Num value in session is “+i.intValue());
%>

135、在JSP中能傳送EMAIL嗎
可以使用SUN的專用包:sun.net.smtp包。如下指令碼使用SmtpClient類傳送EMAIL。
<%@ page import=”sun.net.smtp.SmtpClient, java.io.*” %>
<%
String from=”[email protected]”;
String to=”[email protected][email protected]”;
try{
SmtpClient client = new SmtpClient(“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.println(“Cool! :-)”);
message.println();
message.println(“Good Boy”);
message.println(“Im in genius.com”);
message.println();
client.closeServer();
}
catch (IOException e){
System.out.println(“ERROR SENDING EMAIL:”+e);
}
%>

136、在SERVLET中我能呼叫一個JSP錯誤頁嗎
當然沒問題,如下展示瞭如何在一個SERVLET控制邏輯單元內呼叫一個JSP錯誤頁面。
protected void sendErrorRedirect(HttpServletRequest request,
HttpServletResponse response, String errorPageURL,
Throwable e)
throws ServletException, IOException {
request.setAttribute (“javax.servlet.jsp.jspException”, e);
getServletConfig().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.printStackTrace();
}
}
}

137、APPLET和JSP如何通訊
可以用URLConnection

138、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(…);
// 如此等等
%>

139、當我使用一個結果集時,如何防止欄位為”null”的字域顯示在我的HTML輸入文字域中?
可以定義一個簡單的函式來達到目的,如下:
<%!
String blanknull(String s) {
return (s == null) ? “” : s;
}
%>
然後在JSP的FORM中,可以這樣使用
”>

140、如何中SERVLET或JSP下載一個檔案(如:binary,text,executable)?
現提供兩個解決方案:
A:使用HTTP,
B:在Servlet中,通過設定ContentType和使用java.io包的Stream等類可作到.例如:
response.setContentType(“application/x-msword”);
然後想輸出緩衝中寫一些東東即可。

141、使用useBean標誌初始化BEAN時如何接受初始化引數
使用如下兩標籤即可:

142、使用JSP如何獲得客戶瀏覽器的資訊?
使用request.getHeader(String)即可

143、能象呼叫子程式一樣呼叫JSP嗎?
當然可以,用

144、當我重編譯我的JSP使用的一個類後,為什麼JVM繼續使用我的老CLASS?
因為沒有熱替換。

145、<%@include file=”abc.jsp”%>與之間的差別?
前一個為靜態包含,而後一個為動態包含

146、JSP的缺點?
1。對JAVA程式進行除錯沒有好東東
2。因大多數的servlet引擎不支援connection pooling
3。Servlet引擎沒有標準
4。JSP與其它指令碼語言的互動

147、JSP能進行遞迴呼叫嗎?
當然可以,如對form的提交給本頁

148、如何實現JSP的國際化?
為各種版本提供resource bundles屬性檔案即可

149、在JSP中如何寫文字檔案?
使用PrintWriter物件,如:
<%@ page import=”java.io.*” %>
<%
String str = “print me”;
String nameOfTextFile = “/usr/anil/imp.txt”;
try {
PrintWriter pw = new PrintWriter(new FileOutputStream(nameOfTextFile));
pw.println(str);
pw.close();
} catch(IOException e) {
out.println(e.getMessage());
}
%>

150、如何在JSP中包括絕對路徑檔案?
使用URLConnection即可。

151、在servlets和JSP之間能共享session物件嗎?
當然可以,
HttpSession session = request.getSession(true);
session.putValue(“variable”,”value”);

152、如何設定cookie在某一時間後過期?
用Cookie.setMaxAge(int)

153、如何獲得當前的sessions數?
可以使用HttpSessionListeners來跟蹤

154、能設定一些程式碼在我所有的JSP檔案之上執行?如果可以,能共享嗎?
當然可以,可以為你的JSP檔案定義一個別名:/jsp/=ybwen.genius.myPreprocessingServle
t,而以/jsp/為字首的檔案可以使用
(lightning案:??????)

155、對一個JSP頁,如果多個客戶端同時請求它,同步可能嗎?
當然可能

156、在jsp:useBean語法中使用beanName有何好處?
beanName使用Beans.instantiate()初始化Bean

157、當我使用時,在瀏覽器的位址列沒有改變?
使用response.sendRedirect(“newURL”)

158、如何轉換JSP 0.9版本的檔案到JSP1.1?
可使用sed/awk即可

159、使用JSP連線到資料庫連線緩衝池的最好方法是什麼?
1.使用JDBC2。0中帶有此服務的Driver
2.使用提供有此服務的Application server
3.自己寫

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

相關推薦

java面試(jsp部分)

121、jsp有哪些內建物件?作用分別是什麼? JSP共有以下9種基本內建元件(可與ASP的6種內部元件相對應): request 使用者端請求,此請求會包含來自GET/POST請求的引數 response 網頁傳回使用者端的迴應 pageCont

java面試②基礎部分

實現 原則 setname ets works 簡單 htable 工廠 == 2.1.1 簡單講一下java的跨平臺原理 由於各操作系統(windows,linux)支持的指令集,不是完全一致的,就會讓我們的程序在不同的操作系統上要執行不同程序代碼,java開發了適用

java面試③Web部分

理解 初始 限制 欺騙 get 正在 servlet 加載 ini 2.2.1 講一下http get和post請求的區別 get和post請求都是http的請求方式,用戶通過不同的http請求方式完成對資源(url)的不同操作,具體點來講get一般用於獲取/查詢資源信息,

java面試⑥框架部分

nat ecb ring 5.7 截器 框架 5.4 iba cbe 2.5.1 什麽是框架: 2.5.2 MVC模式 2.5.3 MVC框架 2.5.4 簡單講一下struts2的執行流程 2.5.5 Struts2中的攔截器,你都用它幹什麽?

Java面試基礎部分合集

項目資源 value 地址 ini ie6 客戶 alt ssl sql 寫在前面:這篇文章對於在Java方面已經很牛逼的大手,就沒必要看了,因為對於你們來說,這tm簡直太簡單了。。。。 面試我們都經歷過,你真的懂面試嗎?針對面試我只想說一點,面試的目的不是讓考官知道你

JAVA面試——基礎部分常見問題簡答

一、面向物件的四大基本特徵 繼承 子類可以繼承父類的所有屬性和方法,例如,兒子繼承父親的財產。 封裝 將零散的屬性封裝成一個物件,將物件歸納為一個類 多型 每個種群有不同的表現形式,比如People people = new Student()/new Teach

java面試④資料庫部分

2.3.1 資料庫的分類及常用的資料庫 資料庫分為:關係型資料庫和非關係型資料庫 關係資料庫:mysql,oracle,sqlServer 非關係型:redis,mongoDB 2.3.2 簡單介紹一下關係資料庫三正規化 正規化就是規範,就是關係型資料庫在設定表

java面試④數據庫部分

pda 命令 有一個 非關系型 sel data 索引 .exe 只需要 2.3.1 數據庫的分類及常用的數據庫 數據庫分為:關系型數據庫和非關系型數據庫 關系數據庫:mysql,oracle,sqlServer 非關系型:redis,mongoDB 2.3.2 簡單介

Java面試進階部分集合

ber 基本 table 依賴 gif jdbc 時也 生成 clas 框架基礎 反射:反射是Java開發的一類動態相關機制。因為本身Java語言並不是一款動態語言,如果我們想要得到程序動態的效果,因此便引入了反射機制這一概念。 怎麽表達反射?

java面試常問問題及部分答案(2018)

java 面試 2018年 基礎 一:java基礎1.簡述string對象,StringBuffer、StringBuilder區分string是final的,內部用一個final類型的char數組存儲數據,它的拼接效率比較低,實際上是通過建立一個StringBuffer,讓後臺調用appen

java面試java基礎部分(未完待續)

1.&與&&區別? &和&&都是邏輯運算子,都是判斷兩邊同時真則為真,否則為假;但是&&當第一個條件不成之後,後面的條件都不執行了,而&

GitHub上獲得26236個Star的Java面試專案,看看你都會哪幾個部分

對於很多人來說,找到一份工作不是問題,但找到一份合適而滿意的工作,卻不那麼簡單。有些人雖然很有實力但是往往卡在面試環節…… 本文為大家找了幾個Java相關的面試專案,其中有的已經在GitHub上獲得了26236個Star,下面我們一起來盤點一下這幾個Java面試專案。

Java EE Web部分--05.JSP、EL、JSTL

學習目標 JSP (Java Server Pages) EL ( Expression Language ) JSTL (The JavaServer Pages Standard Tag Library) 一、JSP 1、概述 JSP全名為Java Serve

JAVA面試之JavaWeb部分(一)

1、 forward 和 redirect 的區別 forward是伺服器的轉向,就是請求轉發, redirect是客戶端的跳轉, 就是重定向 forward瀏覽器的地址不會發生改變 forward是一次請求中完成。redirect是重新發起請求 請求轉發的

[Java面試二]Java基礎知識精華部分.

隨筆-159  文章-0  評論-254  [Java面試二]Java基礎知識精華部分. 一:java概述(快速瀏覽): 1991 年Sun公司的James Gosling等人開始開發名稱為 Oak 的語言,希望用於控制嵌入在有線電視交換盒、PDA等的微處理

java面試,中高階部分

1、為什麼說Redis是單執行緒的以及Redis為什麼這麼快。 Redis為什麼這麼快: Redis不使用表,是基於Key-Value字典方式儲存的 資料庫,由C語言編寫。他的資料庫不會預定義或者強制去要求使用者對Redis儲存的不同資料進行關聯。 資料庫的工作模式按儲存方式可分為:硬碟資料

Java面試筆試知識點之基礎部分3

一、Java基礎部分 1-5問題見部落格:點選開啟連結 6-10問題見部落格:點選開啟連結 11、是否可以繼承String類。  不可以,因為String類有final修飾符,而final修飾的類是不能被繼承的,實現細節不允許改變public final cla

Java面試技巧

cnblogs bsp wan pri 跨域 java高級 瀏覽器 -m 相關 [Java面試一]面試復習大綱. [Java面試二]Java基礎知識精華部分. [Java面試三]JavaWeb基礎知識總結. [Java面試四]Strust2總結及在面試中的一些問題. [Ja

java面試準備之基礎排序——冒泡與選擇排序

-1 [] pub pop 基礎排序 ava for length system 選擇排序: public void select(int[] arr){ for(int i=0;i<arr.length;i++){ for(int j=i+1;j&

java 面試 -- 4

dha 通道 設計 poi 為什麽 引用 字節碼指令 vol -i Java面試知識點總結 本篇文章會對面試中常遇到的Java技術點進行全面深入的總結,幫助我們在面試中更加得心應手,不參加面試的同學也能夠借此機會梳理一下自己的知識體系,進行查漏補缺(閱讀本文需要有一