手動編寫部署第一個servlet
(1)在“Tomcat 6.0\webapps”下建立一個web工程--FirstServlet
FirstServlet目錄結構為:
FirstServlet
| ---- index.html
| ---- WEB-INF
| ---- classes
| ---- FirstServlet.java
| ---- edu.servlet.FirstServlet.class
| ---- lib
| ---- web.xml
如圖:
(2)在classes目錄下編寫FirstServlet.java,其內容為:
package edu.servlet;
import java.io.*;
import javax.servlet.*;
public class FirstServlet extends GenericServlet
{
public FirstServlet(){
System.out.println("我被例項化了!");
}
public void service(ServletRequest req,ServletResponse res) throws ServletException,IOException{
String data = "hello servlet!";
OutputStream out = res.getOutputStream();
out.write(data.getBytes());
}
public void init(ServletConfig config)throws ServletException{
System.out.println("我被初始化了!");
}
}
(3)在cmd視窗中編譯FirstServlet.java(因為帶有報名,所以應該使用javac -d . FirstServlet.java)
但是會報錯,因為classpath路徑下沒有servlet相關的jar包,所以編譯不成功,解決辦法:
set classpath = %classpath%;C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar(因為tomcat\lib下有servlet的jar包)
然後再執行javac -d . FirstServlet.java,則會編譯成功!
(4)在web.xml中編寫servlet的對映檔案
<servlet>
<servlet-name>firstServlet</servlet-name>
<servlet-class>edu.servlet.FirstServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>firstServlet</servlet-name>
<url-pattern>/first.do</url-pattern>
</servlet-mapping>
(5)啟動tomcat,會發現啟動的時候打印出"我被例項化了!""我被初始化了!",因為web.xml檔案中設定<load-on-startup>0</load-on-startup>
(6)位址列上輸入:http://localhost:8080/FirstServlet/first.do則可以出現: