JSP/SERVLET入門教程--Servlet 使用入門

來源:互聯網
上載者:User

標籤:

現在的JSP書籍有的是直接講述JSP的使用,然後再講解SERVERLET的使用;也有書籍是先講述SERVERLET的使用,然後講解JSP使用.個人認為第二種相對好一些,至於原因大家可以在學習體會到!所以今天我們接著學習SERVERLET的使用!

好,廢話少說,現在開始!

    1. 什麼是Servlet?
      ① Servlet就是JAVA 類
      ② Servlet是一個繼承HttpServlet類的類
      ③ 這個在伺服器端運行,用以處理用戶端的請求
    2. Servlet相關包的介紹
      --javax.servlet.* :存放與HTTP 協議無關的一般性Servlet 類;
      --javax.servlet.http.* :除了繼承javax.servlet.* 之外,並且還增加與HTTP協議有關的功能。
        (注意:大家有必要學習一下HTTP協議,因為WEB開發都會涉及到)
        所有的Servlet 都必須實現javax.servlet.Servlet 介面(Interface)。
        若Servlet程式和HTTP 協議無關,那麼必須繼承javax.servlet.GenericServlet類;
        若Servlet程式和HTTP 協議有關,那麼必須繼承javax.servlet.http.HttpServlet 類。
      --HttpServlet :提供了一個抽象類別用來建立Http Servlet。
        public void doGet()方法:用來處理用戶端發出的 GET 請求
        public void doPost()方法:用來處理 POST請求
        還有幾個方法大家自己去查閱API協助檔案
      --javax.servlet包的介面:
        ServletConfig介面:
      在初始化的過程中由Servlet容器使用
        ServletContext介面:定義Servlet用於擷取來自其容器的資訊的方法
        ServletRequest介面:向伺服器請求資訊
        ServletResponse介面:響應用戶端請求
        Filter介面:
      --javax.servlet包的類:
        ServletInputStream類
      :用於從用戶端讀取位元據
        ServletOutputStream類:用於將位元據發送到用戶端
      --javax.servlet.http包的介面:
        HttpServletRequest介面:
      提供Http請求資訊
        HttpServletResponse介面:提供Http響應
    3. Servlet生命週期
      --Servlet生命週期就是指建立Servlet執行個體後,存在的時間以及何時銷毀的整個過程.
      --Servlet生命週期有三個方法
        init()方法
        service()方法:Dispatches client requests to the protected service method 
        destroy()方法:Called by the servlet container to indicate to a servlet that the servlet is being taken out of service.
      --Servlet生命週期的各個階段
        ----執行個體化:Servlet容器建立Servlet執行個體
        ----初始化:調用init()方法
        ----服務:如果有請求,調用service()方法
        ----銷毀:銷毀執行個體前調用destroy()方法
        ----垃圾收集:銷毀執行個體
    4. Servlet的基本結構
      package cn.dragon.servlet;//下面是匯入相應的包import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/*** 這是第一個Servlet的例子* @author cn.dragon*/public class ServletDemoFirst extends HttpServlet {     //用於處理用戶端發送的GET請求     public void doGet(HttpServletRequest request, HttpServletResponse response)       throws ServletException, IOException {        response.setContentType("text/html;charset=GB2312"); //這條語句指明了向用戶端發送的內容格式和採用的字元編碼.        PrintWriter out = response.getWriter();         out.println(" 您好!"); //利用PrintWriter對象的方法將資料發送給用戶端        out.close();     }     //用於處理用戶端發送的POST請求     public void doPost(HttpServletRequest request, HttpServletResponse response)       throws ServletException, IOException {       doGet(request, response); //這條語句的作用是,當用戶端發送POST請求時,調用doGet()方法進行處理     }}

       

    5. Servlet的部署
      以下截取部分 <servlet>    <description>任意</description>    <display-name>任意</display-name>    <servlet-name>ServletDemoFirst</servlet-name>    <servlet-class>cn.dragon.servlet.ServletDemoFirst</servlet-class>  </servlet> <servlet-mapping>    <servlet-name>ServletDemoFirst</servlet-name>    <url-pattern>/servlet/ServletDemoFirst</url-pattern>  </servlet-mapping> 【注意】  ① 上面的兩個<servlet-name>必須相同  ② <servlet-class>後面指在對應的類上面.  技巧:你可以直接在你的servlet類中複製過來,這樣可以避免出錯!  ③ <url-pattern> 必須是/servlet 再加servlet名字.大家現在就這麼記.

       

    6. Servlet執行個體示範
    7. package cn.dragon.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ServletDemoSecond extends HttpServlet {   //初始化   public void init() throws ServletException {      System.out.println("我是init()方法!用來進行初始化工作");   }   //處理GET請求   public void doGet(HttpServletRequest request, HttpServletResponse response)     throws ServletException, IOException {      System.out.println("我是doGet()方法!用來處理GET請求");      response.setContentType("text/html;charset=GB2312");      PrintWriter out = response.getWriter();      out.println("<HTML>");      out.println("<BODY>");      out.println("這是Servlet的例子");      out.println("</BODY>");      out.println("</HTML>");   }   //處理POST請求   public void doPost(HttpServletRequest request, HttpServletResponse response)     throws ServletException, IOException {      doGet(request, response);   }   //銷毀執行個體   public void destroy() {      super.destroy();      System.out.println("我是destroy()方法!用來進行銷毀執行個體的工作");   }} web.xml檔案<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4"    xmlns="http://java.sun.com/xml/ns/j2ee"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  <servlet>    <servlet-name>ServletDemoSecond</servlet-name>    <servlet-class>cn.dragon.servlet.ServletDemoSecond</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>ServletDemoSecond</servlet-name>    <url-pattern>/servlet/ServletDemoSecond</url-pattern>  </servlet-mapping></web-app>

      轉載與:http://www.cnblogs.com/goody9807/archive/2007/06/13/782519.htm

JSP/SERVLET入門教程--Servlet 使用入門

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.