Servlet和JSP知識複習(2)Servlet基礎

來源:互聯網
上載者:User

Servlet和JSP知識複習(2)Servlet基礎

 

·產生HTML的servlet

    ·告知瀏覽器接下來發送的時HTML

        -
response.setContentType(“text/html”);

    ·修改println語句以構建合法的Web頁面

        - 列印語句應用輸出相應的HTML標籤。

    ·用形式語法驗證器 檢查產生的HTML

        - http://validator.w3.org/

        - http://www.htmlhelp.com/tools/validator/

 

·servlet的打包

    ·將檔案移動到與預想的包名相匹配的子目錄中

    ·在類檔案中插入包語句

        - E.g
package org.waityou.test.servlet;

    ·要保證CLASSPATH指出頂層目錄

    ·在URL中包括包名

        - E.g http://localhost/servlet/org.waityou.test.servlet.TestServlet

 

·一些簡單的、用以構建HTML的工具 + 生產力類

    public class
ServletUtilities {

public static
final String DOCTYPE =

"<!DOCTYPE
HTML PUBLIC /"-//W3C//DTD
HTML 4.0 " +

"Transitional//EN/">";

public static
String headWithTitle(String title) {

return(DOCTYPE +
"/n" +

"<HTML>/n"
+

"<HEAD><TITLE>"
+ title +

"</TITLE></HEAD>/n");

}

...

}

·不要走極端

    - 完整的HTML產生包常常不能很好地工作

    - 應用JSP架構時更好的解決方案。

 

·servlet的生命週期

    ·init

        -
僅在servlet首次載入時執行一次。

            不是每次請求都要調用。

    ·service

        -
在新線程中由伺服器為每個請求而調用。發送到

            doGet,doPost等。

            不要覆蓋這個方法!

    ·doGet,doPost,doXxx

        -
處理GET,POST,等請求。

        -
覆蓋這些方法以提供期望的行為。

    ·destroy

        -
在伺服器刪除servlet的執行個體時調用。

            不是每次請求後都調用。

 

·為什麼不應該覆蓋service

    ·之後可以通過加入doPut,doTrace等支援其他服務。

    ·通過添加getLastModified方法,就可以支援修改日期。

    ·service方法自動提供下述支援:

        - HEAD請求

        - OPTIONS請求

        - TRACE請求

    ·其他方案:讓doPost調用doGet

 

·servlet的調試

    ·使用列印語句;在案頭電腦上運行伺服器

    ·使用Apache Log4J

    ·使用IDE整合的調試器

    ·直接查看HTML源碼

    ·返回錯誤頁面給客戶

        -
需要針對缺失或異常資料預先規劃

    ·使用記錄檔

        - log(“message”)或log(“message”, Throwable)

    ·分別處理請求和響應資料

    ·停止並重新啟動伺服器

 

·小結

    ·主要的servlet代碼都在doGet或doPost中:

        -
HttpServletRequest包含輸入資訊

        -
HttpServletResponse允許我們設定發送出去的資訊

            ·調用setContentType指定MIME類型

            ·調用getWriter擷取針對客戶的Writer

    ·一次性的設定代碼放在init中

        - servlet僅僅初始化並載入一次

        - servlet被多次調用

        - 初始化參數在web.xml中設定。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.