|
一、實現(xiàn)Servlet接口 通過實現(xiàn)Servlet接口來了解Servlet的生命周期 (1)以規(guī)范的形式創(chuàng)建一個web應用(即在webapps目錄下創(chuàng)建一個web應用) 創(chuàng)建web應用
(2)classes目錄下創(chuàng)建一個.java(該java文件為實現(xiàn)Servlet接口) 創(chuàng)建文件夾MyFirstServlet.java 代碼如下: package com.focus; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class MyFirstServlet implements Servlet { //Servlet引擎會在Servlet實例化之后,置入服務之前精確地調用init方法。(初始化servlet,把servlet裝載到內存中) //該函數(shù)只會被調用一次 public void init(ServletConfig config) throws ServletException{ } //Servlet引擎調用這個方法以允許Servlet響應請求。這個方法在Servlet未成功初始化之前無法調用。(業(yè)務邏輯代碼都將寫在這個函數(shù)中) //在被卸載后,還沒初始化時,service不被調用,其余可重復調用 public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException{ System.out.println('Hello World!'); response.getWriter().println('Hello World!'+new java.util.Date()); } //卸載servlet public void destroy(){
} //得到servlet的配置信息 public ServletConfig getServletConfig(){ return null; } //純文本的servlet信息 public String getServletInfo(){ return null; } } 編譯后出現(xiàn)錯誤,導入的程序包找不到。
PS:使用dos編譯時,該Java有包是 需要輸入的命令行格式為 Javac -d . name.java (3)配置CLASSPATH 即指定到tomcat的lib目錄下的servlet-api.jar(其中有servlet-api.jar就是上面所引入的javax.servlet.*;javax.servlet.http.*;)。 在配置CLASSPATH時得指定到特定.jar 不能設置*.jar ,只能一個個寫,所以一般大的工程會配置一個啟動腳本,專門計算出所有的jar包,然后導入啟動環(huán)境中...
重啟cmd.exe,再重新編譯。即可 (4)配置與部署Servlet (5)最后效果:
補充:當Tomcat啟動的時候首先會啟動一個server.xml,當servlet映射找不到對應的,tomcat啟動直接就報錯。 二、配置與部署Servlet 由于客戶端是通過URL地址訪問web服務器中的資源,所以Servlet程序若想被外界訪問,必須把servlet程序映射到一個URL地址上。 // //指定該servlet類放在哪個包中 形式 包/包/.../類(包名+類名) // // // 一個注冊好了的servlet可以被多次映射 如: 即輸入的Web資源不管是/My或 /Servlet/My或/Servlet/My.html都可以訪問到com.focus.MyFirstServlet這個類 當映射一個servlet時候,可以是多層,后綴名為html不一定就是html文件。 進行Servlet映射時,可使用通配符 有兩種格式: 第一種格式 *.擴展名 如:*.html *.abc 第二種格式 以“/“開頭 同時以”/*“結尾 如:/abc/* /* 例:1. 2. 3. 4. 當瀏覽器的URL的servlet名 輸入/abc時 匹配 2 當瀏覽器的URL的servlet名 輸入/hellobaby時 匹配 1 當瀏覽器的URL的servlet名 輸入/abc/hellobaby時 匹配 3 當瀏覽器的URL的servlet名 輸入/hello.gogo時 匹配 1 匹配標準: (1)匹配度高的選擇映射那個 (2)*.擴展名 的優(yōu)先級最低 load-on-startup元素標記 1)load-on-startup元素標記容器是否在啟動的時候就加載這個servlet(實例化并調用其init()方法)。 2)它的值必須是一個整數(shù),表示servlet應該被載入的順序 2)當值為0或者大于0時,表示容器在應用啟動時就加載并初始化這個servlet; 3)當值小于0或者沒有指定時,則表示容器在該servlet被選擇時才會去加載。 4)正數(shù)的值越小,該servlet的優(yōu)先級越高,應用啟動時就越先加載。 5)當值相同時,容器就會自己選擇順序來加載。 所以, 補充:怎樣更好的管理tomcat中的web應用,即進入tomcat Manager
Reload:即重載的意思,重新裝載該web應用。 Stop:停止該web應用 好處:單獨對某個web應用做相應的處理,不用對整個服務器進行操作 |
|
|