第一個Servlet程序—Hello World!java
Step1:編寫HelloWorldServlet類web
編寫一個Servlet,實際上就是編寫一個實現了javax.servlet.Servlet接口的類。apache
個人Tomcat安裝的路徑是H:\Java-tools\apache-tomcat-7.0.47api
下面用%CATALINA_HOME%來代替瀏覽器
在%CATALINA_HOME%\webapps新建一個ex1目錄,再在ex1目錄下再創建一個子目錄srctomcat
將編寫好的HelloWorldServlet.java源文件放在子目錄src下。詳細代碼:服務器
package org.lixiyu.ex1.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class HelloWorldServlet implements Servlet { private ServletConfig config; public void destroy(){} public ServletConfig getServletConfig() { return config; } /** *該方法不多使用,所以返回null便可 */ public String getServletInfo() { return null; } /** *ServletConfig對象由容器構造。容器在調用init()方法時,將其做爲參數傳給Servlet */ public void init(ServletConfig config) throws ServletException { this.config=config; } public void service(ServletRequest req,ServletResponse res) throws ServletException,IOException { //獲得PrintWriter對象。Servlet使用輸出流來產生響應 PrintWriter out=res.getWriter(); //向客戶端發送字符數據 out.println("Hello World"); //關閉輸出流 out.close(); } }
大概實現過程: app
在Servlet中,主要的方法是service(),客戶端發出請求,Tomcat將調用Servlet實例的service()方法對請求進行處理。webapp
service()方法中,先經過ServletResponse類中的getWriter()方法調用獲得一個PrintWrite類型的輸出流對象out,而後調用out對象的println()方法向客戶端發送字符串「Hello World」,最後關閉out對象。ide
Step2:編譯HelloWorldServlet.java
打開命令提示符,轉到所在目錄%CATALINA_HOME%\webapps\ex1\src下,而後執行:
javac -d . HelloWorldServlet.java
在這以前要先配置servlet環境變量:將%CATALINA_HOME%\lib\servlet-api.jar加入到ClassPath環境變量下
不然會出現錯誤以下圖所示
正確編譯會生成一個org包
Step3:部署HelloWorldServlet
在Servlet容器運行時,Web應用程序的類加載器將首先加載classes目錄下的,其次纔是lib目錄下的類。若是這兩個目錄下存在同名的類,起做用的將是calsses目錄下的類。
在%CATALINA_HOME%\webapps\ex1目錄下新建一個子目錄WEB-INF(注意是大寫)
再在WEB-INF目錄下新建一個calsses目錄
將生成的HelloWorldServlet.class文件連同所在org包一塊兒放到WEB-INF\classes目錄下
接下來,須要經過web.xml來對servlet進行部署
能夠到%CATALINA_HOME%\webapps\ROOT\WEB-INF目錄下複製一份web.xml存放到ex1\WEB-INF目錄下。這個web.xml內容以下:
<?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0" metadata-complete="true"> <display-name>Welcome to Tomcat</display-name> <description> Welcome to Tomcat </description> </web-app>
而後編輯這個文件,添加HelloWorldServlet配置,以下:
<?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0" metadata-complete="true"> <display-name>Welcome to Tomcat</display-name> <description> Welcome to Tomcat </description> <servlet> <servlet-name>HelloWorldServlet</servlet-name> <servlet-class>org.lixiyu.ex1.servlet.HelloWorldServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorldServlet</servlet-name> <url-pattern>/helloworld</url-pattern> </servlet-mapping> </web-app>
Step4:訪問HelloWorldServlet
確保Tomcat服務器已經啓動。
經過瀏覽器訪問,輸入地址:http://localhost:8080/ex1/helloworld