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


現在的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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM