mvc 架構

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            74 Posts :: 60 Stories :: 5 Comments :: 0 Trackbacks
          posted on 2007-08-27 14:15 e全 閱讀(207) 評論(0)  編輯  收藏

          Servlet 方面

          75 、說一說 Servlet 的生命周期 ?
          : servlet 有良好的生存期的定義,包括加載和實例化、初始化、處理請求以及服務結束。這個生存期由 javax.servlet.Servlet 接口的 init,service destroy 方法表達。 Servlet 被服務器實例化后,容器運行其 init 方法,請求到達時運行其 service 方法, service 方法自動派遣運行與請求對應的 doXXX 方法( doGet doPost )等,當服務器決定將實例銷毀的時候調用其 destroy 方法。
          cgi 的區別在于 servlet 處于服務器進程中,它通過多線程方式運行其 service 方法,一個實例可以服務于多個請求,并且其實例一般不會銷毀,而 CGI 對每個請求都產生新的進程,服務完成后就銷毀,所以效率上低于 servlet 。
          76 、 JAVA SERVLET API forward() redirect() 的區別?
          : 前者僅是容器中控制權的轉向,在客戶端瀏覽器地址欄中不會顯示出轉向后的地址;后者則是完全的跳轉,瀏覽器將會得到跳轉的地址,并重新發送請求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉后的鏈接地址。所以,前者更加高效,在前者可以滿足需要時,盡量使用 forward() 方法,并且,這樣也有助于隱藏實際的鏈接。在有些情況下,比如,需要跳轉到一個其它服務器上的資源,則必須使用 sendRedirect() 方法。
          77 Servlet 的基本架構
          答:
          public class ServletName extends HttpServlet {
          ? public void doPost(HttpServletRequest request, HttpServletResponse response) throws
          ????? ServletException, IOException? {
          ????? }
          ? public void doGet(HttpServletRequest request, HttpServletResponse response) throws
          ????? ServletException, IOException? {
          ????? }
          }

          78 、什么情況下調用 doGet() doPost() ?
          答: Jsp 頁面中的 form 標簽里的 method 屬性為 get 時調用 doGet() ,為 post 時調用 doPost() 。
          79 、 servlet 的生命周期
          答: web 容器加載 servlet ,生命周期開始。通過調用 servlet init() 方法進行 servlet 的初始化。通過調用 service() 方法實現,根據請求的不同調用不同的 do***() 方法。結束服務, web 容器調用 servlet destroy() 方法。
          80 、如何現實 servlet 的單線程模式
          答: <%@?page?isThreadSafe="false"%>
          81 、頁面間對象傳遞的方法
          答: request , session , application , cookie
          82 JSP Servlet 有哪些相同點和不同點,他們之間的聯系是什么? ?
          答: JSP Servlet 技術的擴展,本質上是 Servlet 的簡易方式,更強調應用的外表表達。 JSP 編譯后是 " servlet" Servlet JSP 最主要的不同點在于, Servlet 的應用邏輯是在 Java 文件中,并且完全從表示層中的 HTML 里分離開來。而 JSP 的情況是 Java HTML 可以組合成一個擴展名為 .jsp 的文件。 JSP 側重于視圖, Servlet 主要用于控制邏輯。
          83 、四種會話跟蹤技術
          答: 會話作用域 ServletsJSP? 頁面描述
          page 否是代表與一個頁面相關的對象和屬性。一個頁面由一個編譯好的 ?Java?servlet? 類(可以帶有任何的 ?include? 指令,但是沒有 ?include? 動作)表示。這既包括 ?servlet? 又包括被編譯成 ?servlet? ?JSP? 頁面
          request 是是代表與 ?Web? 客戶機發出的一個請求相關的對象和屬性。一個請求可能跨越多個頁面,涉及多個 ?Web? 組件(由于 ?forward? 指令和 ?include? 動作的關系)
          session 是是代表與用于某個 ?Web? 客戶機的一個用戶體驗相關的對象和屬性。一個 ?Web? 會話可以也經常會跨越多個客戶機請求
          application 是是代表與整個 ?Web? 應用程序相關的對象和屬性。這實質上是跨越整個 ?Web? 應用程序,包括多個頁面、請求和會話的一個全局作用域
          84 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) :刪除請求中的一個屬性
          85 、我們在 web 應用開發過程中經常遇到輸出某種編碼的字符,如 iso8859-1 等,如何輸出 個某種編碼的字符串?
          答:
          ??Public?String?translate?(String?str)?{
          ????String?tempStr?=?"";
          ????try?{
          ??????tempStr?=?new?String(str.getBytes("ISO-8859-1"),?"GBK");
          ??????tempStr?=?tempStr.trim();
          ????}
          ????catch?(Exception?e)?{
          ??????System.err.println(e.getMessage());
          ????}
          ????return?tempStr;
          ??}
          86 Servlet 執行時一般實現哪幾個方法?
          答:
          public?void?init(ServletConfig?config)
          public?ServletConfig?getServletConfig()
          public?String?getServletInfo()
          public?void?service(ServletRequest?request,ServletResponse?response)
          public?void?destroy()



          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 永德县| 垦利县| 禹城市| 清丰县| 红河县| 三都| 板桥市| 娄烦县| 台南县| 安宁市| 芦溪县| 绥滨县| 宜良县| 沂南县| 福清市| 静宁县| 河源市| 长春市| 梁河县| 溧水县| 龙陵县| 凤台县| 灵武市| 锡林郭勒盟| 公主岭市| 苍梧县| 临城县| 敦化市| 天门市| 三亚市| 思茅市| 山阳县| 富民县| 阳山县| 桃源县| 常熟市| 磴口县| 高平市| 玛曲县| 咸宁市| 合肥市|