JSP企業面試題整理(4)
5-1. 簡述Servlet和JSP的關係。
JSP是以另外一種方式實現的Servlet,Servlet是JSP的早期版本,在JSP中,更加註重頁面的表現,而在Servlet中則更注重商務邏輯的實現。
因此,當編寫的頁面顯示效果比較複雜時,首選是JSP。或者在開發過程中,HTML代碼經常發生變化,而Java代碼則相對比較固定時,可以選擇JSP。而我們在處理商務邏輯時,首選則是Servlet。
同時,JSP只能處理瀏覽器的請求,而Servlet則可以處理一個用戶端的應用程式請求。因此,Servlet加強了Web伺服器的功能。
5-2. 簡述Servlet的生命週期。(企業筆試題)
Servlet運行機制和Applet類似,Servlet是載伺服器端啟動並執行,但是Applet是在用戶端啟動並執行。Servlet是javax.servlet包中HttpServlet類的子類,由伺服器完成該子類的建立和初始化。
Servlet的生命週期主要由3個過程組成。
1、init()方法:伺服器初始化Servlet。
2、service()方法:初始化完畢,Servlet對象調用該方法相應客戶的請求。
3、destroy()方法:調用該方法消滅Servlet對象。
其中,init()方法只在Servlet第一次被請求載入的時候被調用一次,當有客戶再請求Servlet服務時,Web伺服器將啟動一個新的線程,在該線程中,調用service方法相應客戶的請求。
5-3. 簡述HttpSession介面的功能和使用方法。(企業筆試題)
這是一個java.servelt.http包中的介面,它封裝了會話的概念。定義為:“public interface HttpSession”,可以使用HttpServletRequest對象的getSession()方法來得到這種類型的對象,文法為:“HttpSession session = request.getSession();”。
5-5. 編寫一個HTML檔案,利用Servelt的doPost方法實現Form表單內容的讀取。(上機完成)(企業筆試題)
案例名稱:使用doGet和doPost方法
程式名稱:j5_02.htm
<HTML>
<BODY>
<FORM ACTION="/doget" METHOD="get">
請輸入姓名:
<INPUT TYPE="TEXT" NAME="myname"><br>
您的興趣:
<SELECT NAME="love">
<OPTION value="Sleep">Sleep</OPTION>
<OPTION value="Dance">Dance</OPTION>
<OPTION value="Travel">Travel</OPTION>
</SELECT><br>
<INPUT TYPE="SUBMIT" NAME="mysubmit"><br>
<INPUT TYPE="RESET" VALUE="重新來過"><br>
</FORM>
</BODY>
</HTML>
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class j5_03 extends HttpServlet
{
//重寫doPost方法
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
//首先設定頭資訊
res.setContentType("text/html");
//用 writer方法返迴響應資料
PrintWriter out = res.getWriter();
out.println("<html><head></head><body>");
out.println("name: " + req.getParameter("myname"));
out.println("<br>");
out.println("love: " + req.getParameter("love"));
out.println("</body></html>");
out.close();
}
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException,IOException{
doPost(req,res);
}
}
6-1 什麼是組件?使用組件有什麼優點?
現在軟體開發都已經轉向了基於組件的開發,目前具備代表性的組件技術有微軟的COM、COM+,有Sun的JavaBean和EJB(Enterprise Java Bean),另外還有CORBA(Common Object Request Broker Architecture,公用對象請求代理結構)
JavaBean規範將“軟體組件”的概念引入到Java編程的領域。組件是自包含的、可重用的軟體單元;而JavaBean組件,則可以使用可視的應用程式開發工具,可視地將它們編寫到Java程式中。JavaBean規範為Java開發人員提供了一種“組件化”其Java類的方法
6-2 編寫JavaBean的時候,要注意哪些?
1、如果類的成員變數的名字是xxx,那麼為了更改或擷取成員變數的值,在類中使用兩個方法:
getXxx(),用來擷取屬性xxx。
setXxx(),用來修改屬性xxx。
2、對於boolean類型的成員變數,允許使用is代替get和set。
3、類中方法的訪問屬性必須是public的。
4、類中如果有構造方法,那麼這個構造方法也是public的,並且是無參數的。
6-3 簡述JSP的設計模式。(企業筆試題)
JSP設計模式包括兩個:(1)Model1,JSP+JavaBean設計模式。(2)Model2,MVC設計模式。
在這種模式中,JSP頁面獨自響應請求並將處理結果返回客戶,所有的資料庫操作通過JavaBean來實現。大量地使用這種模式,常會導致在JSP頁面中嵌入大量的Java代碼,當需要處理的商業邏輯非常複雜時,這種情況就會變得很糟糕。大量的Java代碼使得JSP頁面變得非常臃腫。前端的頁面設計人員稍有不慎,就有可能破壞關係到商業邏輯的代碼。
“MVC”模式即是:“Model-View-Controller”模式。在這種模式中,通過JSP技術來表現頁面,通過Servlet技術來完成大量的交易處理工作,實現使用者的商業邏輯。
在這種模式中,Servlet用來處理請求的事務,充當了控制器(Controller即“C”)的角色,Servlet負責響應客戶對商務邏輯的請求並根據使用者的請求行為,決定將哪個JSP頁面發送給客戶。JSP頁面處於表現層,也就是視圖(View即“V”)的角色。JavaBean則負責資料的處理,也就是模型(Model即“M”)的角色。