Servlet技術基礎知識一

honghu79 13年前發布 | 210 次閱讀 google應用商城 GlassFish
理解:
1、http請求和Http響應
2、http協議
3、servlet與jsp
重點:
1、通過服務器端組件動態生成HTML頁面
 瀏覽器得到的頁面不是預先寫好的,而是程序算出來的
2、Servlet和servlet容器
 Servlet是一種服務器端的Java應用程序,具有獨立于平臺和協議的特性,可以生成動態的Web頁面。 它擔當客
 戶請求(Web瀏覽器或其他HTTP客戶程序)與服務器響應(HTTP服務器上的數據庫或應用程序)的中間層。
 是java寫的程序,是按照sun 公司的servlet標準寫的
 可以在實現了sun 公司的servlet標準的容器里面運行
 servlet可以在容器的支持下,處理http請求和響應,動態生成html頁面
 
 Servlet 的生命周期
  Servlet 的生命周期始于將它裝入 Web 服務器的內存時,并在終止或重新裝入 Servlet 時結束。
  (1) 初始化
  在下列時刻裝入 Servlet:
  如果已配置自動裝入選項,則在啟動服務器時自動裝入
    在服務器啟動后,客戶機首次向 Servlet 發出請求時
  重新裝入 Servlet 時裝入 Servlet 后,服務器創建一個 Servlet 實例并且調用 Servlet 的 init() 方法。
 在初始化階段,Servlet 初始化參數被傳遞給 Servlet 配置對象。
  (2) 請求處理
  對于到達服務器的客戶機請求,服務器創建特定于請求的一個“請求”對象和一個“響應”對象。服務器調用
  Servlet 的 service() 方法,該方法用于傳遞“請求”和“響應”對象。service() 方法從“請求”對象獲得請
  求信息、處理該請求并用“響應”對象的方法以將響應傳回客戶機。service() 方法可以調用其它方法來處理請求
  ,例如 doGet()、doPost() 或其它的方法。
  (3) 終止
  當服務器不再需要 Servlet, 或重新裝入 Servlet 的新實例時,服務器會調用 Servlet 的 destroy() 方法。
 
3、web項目及其基本結構(這是sun公司標準規定的,tomcat,weblogic,websphere肯定也一樣的結構)
app-name<dir>
 靜態文本
 首先要新建一個文本夾dangdang
  再建一個文件夾WEB-INF
    web.xml用來作配置文件,用來告訴tomcat有哪些servlet等文件。部署描述符
    classes文件夾(寫得類文件要放在這里)
    lib文件夾(jvm虛擬機沒有的jar包要放在這里,比如ojdbc訪問oracle的驅動)
4、什么工具都不使得情況下,寫一個servlet

 javac -d . HeyServlet.java
  package cn.e2leaning.
  import javax.servlet.Servlet; //Servlet不在Jdk中,可以使用tomcat目錄下的common下的lib
  public class HeyServlet implements Servlet{
   //實現其方法
  }
  
  或者
  import javax.servlet.Http.HttpServlet;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  public class HeyServlet extends HttpServlet{
   //HttpServlet已經實現了Servlet的相應方法
   public void Service(HttpServletRequest request,HttpServletResponse response){
    //其中request為請求;response為響應
    //重寫httpservlet的service方法;
    System.out.println("hey!!!");//顯示在console上,并不顯示在頁面上
   
   }
  }
  
  
  

  import javax.servlet.Http.HttpServlet;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  public class HeyServlet extends HttpServlet{
   public HeyServlet(){
    System.out.println("HeyServlet!");//只在加載的時候創建下對象
   }
  
   //HttpServlet已經實現了Servlet的相應方法
   public void Service(HttpServletRequest request,HttpServletResponse response){
    //其中request為請求;response為響應
    //重寫httpservlet的service方法;
    System.out.println("hey!!!");//顯示在console上,并不顯示在頁面上
   
   }
  }
  
  
 HeyServlet是怎么運行的?
  在代碼里面沒有new Service,那么是怎么做的呢?什么時候調用的service方法呢?
  是tomcat在收到請求的時候,通過調用下service方法(固定的方法),來創建一個對象。
  《配合servlet的生命周期來理解》 
  
 
 javac -d . -classpath servlet-api.jar  HeyServlet.java //意思是告訴javac使用classpath指定的api來編譯
  servlet-api.jar是sun公司提供的,tomcat放到了其lib目錄下
 
 寫一下web.xml,告訴tomcat在哪里有servlet等,這些servlet在運行的時候有哪些功能特性
  <!--省略web.xml的標準的文件頭-->
     <servlet>
        <servlet-name>one</servlet-name>
        <servlet-class>這里寫哪個類</servlet-class> 
     </servlet>
  注意多個servlet,name和class名字不能一樣
     <servlet-mapping>
         <servlet-name>one</servlet-name>
         <url-pattern>/hello</url-pattern>
     </servlet-mapping>
  把上面寫的servlet與一個地址進行綁定

 http://localhost:8080/目錄/hello
 
 
 本文由用戶 honghu79 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!