學習扎記:一個最簡單的Servlet——Hello World

第一個Servlet程序—Hello World!


Step1:編寫HelloWorldServlet類


編寫一個Servlet,實際上就是編寫一個實現了javax.servlet.Servlet接口的類。

我的Tomcat安裝的路徑是H:\Java-tools\apache-tomcat-7.0.47

下面用%CATALINA_HOME%來代替

在%CATALINA_HOME%\webapps新建一個ex1目錄,再在ex1目錄下再建立一個子目錄src

將編寫好的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();
}
}

大概實現過程:

在Servlet中,主要的方法是service(),客戶端發出請求,Tomcat將調用Servlet實例的service()方法對請求進行處理。

 service()方法中,先通過ServletResponse類中的getWriter()方法調用得到一個PrintWrite類型的輸出流對象out,然後調用out對象的println()方法向客戶端發送字符串“Hello World”,最後關閉out對象。




Step2:編譯HelloWorldServlet.java


打開命令提示符,轉到所在目錄%CATALINA_HOME%\webapps\ex1\src下,然後執行:

javac -d . HelloWorldServlet.java

在這之前要先配置servlet環境變量:將%CATALINA_HOME%\lib\servlet-api.jar加入到ClassPath環境變量下

191516693.jpg

否則會出現錯誤如下圖所示

191632931.jpg


正確編譯會生成一個org包

191842763.jpg




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

193537659.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章