0啦撮、寫在前面
在用Java進行Web開發(fā)的過程中,往往都會使用Eclipse或者MyEclipse等集成開發(fā)環(huán)境博肋。這些IDE固然方便低斋,然而,對于新手來說匪凡,卻屏蔽了許多實現(xiàn)的細節(jié)膊畴。本文的目的是通過一個簡單的Servlet例子,來說明IDE到底幫我們完成了哪些工作病游。
Via: Servlets - Examples唇跨。
1稠通、簡單的Servlet代碼HelloWorld
Servlets是響應(yīng)處理HTTP請求,實現(xiàn)javax.servlet.Servlet
接口的Java類买猖。Web應(yīng)用的開發(fā)人員經(jīng)常寫繼承javax.servlet.http.HttpServlet
(它一個實現(xiàn)了Servlet接口改橘,專為處理HTTP請求設(shè)計)的Servlets。
下面是一個用Servlet實現(xiàn)的HelloWorld:
// 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.
}
}
2玉控、Servlet編譯
下面要進行編譯飞主,目前已經(jīng)配置的Java相關(guān)環(huán)境變量,如下:
>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相關(guān)的類高诺,這里在編譯時要將Servlet相關(guān)的jar包(這里引用的類都包含在servlet-api.jar
這個jar包中既棺,該jar包在tomcat的安裝目錄中可以找到,這里的路徑是D:\Java\apache-tomcat-7.0.68\lib
)加入到CLASSPATH中懒叛。
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
3丸冕、Servlet部署
默認地,一個Servlet應(yīng)用位于Tomcat安裝目錄\webapps\ROOT
目錄下薛窥,類文件放在Tomcat安裝目錄\webapps\ROOT\WEB-INF\classes
目錄下胖烛。
如果你有一個可用的類名com.myorg.MyServlet
,那么對應(yīng)的servlet類文件必須位于Tomcat安裝目錄\webapps\ROOT\WEB-INF\classes\com\myorg\MyServlet.class
诅迷。
下面佩番,將HelloWorld.class文件拷貝到Tomcat安裝目錄\webapps\ROOT\WEB-INF\classes
目錄下(可能一開始classes目錄是沒有的,需要創(chuàng)建):
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\
已復(fù)制 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\
目錄下)中創(chuàng)建如下的入口信息(entries):
<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>
上面的入口信息必須創(chuàng)建在web.xml
中可用的<web-app>...</web-app>
標簽內(nèi)趟畏,可能其中已經(jīng)有了各種各樣的入口信息,沒關(guān)系(直接添加就行)滩租。下面是我最終的web.xml
文件的內(nèi)容:
<?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服務(wù)器律想,在windows下是執(zhí)行腳本``Tomcat安裝目錄\bin\startup.bat猎莲。最終,在瀏覽器的地址欄輸入
http://localhost:8080/HelloWorld`技即,如果一切順利著洼,就會得到如下的結(jié)果: