Java Servlet Development Without Eclipse

0、寫在前面

在用Java進行Web開發的過程當中,每每都會使用Eclipse或者MyEclipse等集成開發環境。這些IDE當然方便,然而,對於新手來講,卻屏蔽了許多實現的細節。本文的目的是經過一個簡單的Servlet例子,來講明IDE到底幫咱們完成了哪些工做。php

一、簡單的Servlet代碼HelloWorld

Servlets是響應處理HTTP請求,實現javax.servlet.Servlet接口的Java類。Web應用的開發人員常常寫繼承javax.servlet.http.HttpServlet(它一個實現了Servlet接口,專爲處理HTTP請求設計)的Servlets。css

下面是一個用Servlet實現的HelloWorld:html

// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// Extend HttpServlet class
public class HelloWorld extends HttpServlet {
 
  private String message;

  public void init() throws ServletException {
      // Do required initialization
      message = "Hello World";
  }

  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      // Set response content type
      response.setContentType("text/html");

      // Actual logic goes here.
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
  }
  
  public void destroy() {
      // do nothing.
  }
}
複製代碼

二、Servlet編譯

下面要進行編譯,目前已經配置的Java相關環境變量,以下:java

>Echo %classpath%
C:\Program Files\Java\jdk1.8.0_51\lib\tools.jar;C:\Program Files\Java\jdk1.8.0_51\lib\dt.jar
>Echo %path%
C:\Program Files\Java\jdk1.8.0_51\bin
複製代碼

因爲上面的HelloWorld.java中引用了Servlet相關的類,這裏在編譯時要將Servlet相關的jar包(這裏引用的類都包含在servlet-api.jar這個jar包中,該jar包在tomcat的安裝目錄中能夠找到,這裏的路徑是D:\Java\apache-tomcat-7.0.68\lib)加入到CLASSPATH中。python

D:\ServletDevel>javac -cp D:\Java\apache-tomcat-7.0.68\lib\servlet-api.jar HelloWorld.java
D:\ServletDevel>dir
2016/04/05  22:27             1,034 HelloWorld.class
2016/04/05  22:21               780 HelloWorld.java
複製代碼

三、Servlet部署

默認地,一個Servlet應用位於Tomcat安裝目錄\webapps\ROOT目錄下,類文件放在Tomcat安裝目錄\webapps\ROOT\WEB-INF\classes目錄下。web

若是你有一個可用的類名com.myorg.MyServlet,那麼對應的servlet類文件必須位於Tomcat安裝目錄\webapps\ROOT\WEB-INF\classes\com\myorg\MyServlet.classapache

下面,將HelloWorld.class文件拷貝到Tomcat安裝目錄\webapps\ROOT\WEB-INF\classes目錄下(可能一開始classes目錄是沒有的,須要建立):windows

d:\ServletDevel>mkdir D:\Java\apache-tomcat-7.0.68\webapps\ROOT\WEB-INF\classes\
d:\ServletDevel>copy HelloWorld.class D:\Java\apache-tomcat-7.0.68\webapps\ROOT\WEB-INF\classes\
已複製         1 個文件。
d:\ServletDevel>cd D:\Java\apache-tomcat-7.0.68\webapps\ROOT\WEB-INF\classes\
D:\Java\apache-tomcat-7.0.68\webapps\ROOT\WEB-INF\classes>dir
2016/04/05  22:27             1,034 HelloWorld.class
複製代碼

並在文件web.xml(位於Tomcat安裝目錄\webapps\ROOT\WEB-INF\目錄下)中建立以下的入口信息(entries):api

<servlet>
   <servlet-name>HelloWorld</servlet-name>
   <servlet-class>HelloWorld</servlet-class>
</servlet>

<servlet-mapping>
   <servlet-name>HelloWorld</servlet-name>
   <url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
複製代碼

上面的入口信息必須建立在web.xml中可用的<web-app>...</web-app>標籤內,可能其中已經有了各類各樣的入口信息,不要緊(直接添加就行)。下面是我最終的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>
    <servlet>
       <servlet-name>HelloWorld</servlet-name>
       <servlet-class>HelloWorld</servlet-class>
    </servlet>
    
    <servlet-mapping>
       <servlet-name>HelloWorld</servlet-name>
       <url-pattern>/HelloWorld</url-pattern>
    </servlet-mapping>
</web-app>
複製代碼

到這裏,基本上就成功了。下面啓動Tomcat服務器,在windows下是執行腳本``Tomcat安裝目錄\bin\startup.bat。最終,在瀏覽器的地址欄輸入http://localhost:8080/HelloWorld`,若是一切順利,就會獲得以下的結果:

相關文章
相關標籤/搜索