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

第一個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環境變量下

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

相關文章
相關標籤/搜索