開發部署一個簡單的Servlet
先介紹一下Tomcat的目錄結構,然後講解如何添加一個應用,並部署一個簡單的Servlet。
1)Tomcat 的主要目錄結構
① /bin: 存放Tomcat服務器的可執行文件和運行用的Jar包。
② /conf :存放Tomcat服務器的各種配置文件,其中最重要的是server.xml。
③ /server :包含3個子目錄classes、lib和webapps。
④ /common/lib 存放Tomcat服務器以及所有Web應用都可以訪問的JAR。
⑤ /logs:存放了Tomcat的日誌文件。
⑥ /webapps:當發佈Web應用時,默認情況下把Web應用文件放於此目錄下。
⑦ /work:Tomcat把由JSP生成的Servlet放於此目錄下。
其中server.xml是用於整個Web服務器的,可以配置Web服務器的端口、應用目錄、應用的入口、用戶訪問安全等信息。
2)Web應用的目錄結構
Web應用有固定的結構,在/webapps目錄下創建一個目錄myapp。則這個Web應用的目錄結構如下:
① /myapp:Web應用的根目錄,所有的JSP和Html文件都存放在該目錄下。
② /myapp/WEB-INF:存放Web應用的描述文件web.xml。
③ /myapp/WEB-INF/classes:存放各種class文件,servlet類文件也存放與該目錄下。
④ /myapp/WEB-INF/lib:存放Web應用所需的各種JAR文件。如可以存放JDBC驅動程序的JAR文件。
3)配置文件web.xml
Java Web 應用通過一個基於XML的發佈描述文件來配置其發佈信息。Web.xml文件中可包含的配置信息有:
① Servlet的定義;
② Servlet的初始化參數;
③ Servlet以及JSP的映射;
④ 安全域配置參數;
⑤ 資源引用;
⑥ 環境變量的定義。
配置文件web.xml可以自己編寫,也可以從其他應用(如Root、JSP-examples、servlets-examples等)目錄下拷貝過來修改。
4)部署Servlet文件的步驟
① 編寫Servlet並編譯成class文件,編譯時,將servlet-api.jar文件(在/common/lib 目錄下)加入到classpath中;
② 將編譯好的class文件拷貝到應用的WEB-INF/classes/下(如/myapp/WEB-INF/classes/);
③ 在web.xml中進行配置 <servlet> 、<servet-mapping>,具體可參見下面的web.xml。
這裏以一簡單的Servlet爲例,實現Servlet的開發和部署。
文件 HelloServlet.java
import java.io.*;
import javax.servlet.http.*;
public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println("<HEAD>");
out.println("<TITLE>Hello Servlet</TITLE>");
out.println("</HEAD>");
out.println("<BODY>");
out.println("<B>Hello, World !</B>");
out.println("</BODY>");
out.println("</HTML>");
out.close();
}
}
編譯成功後,將HelloServlet.class拷貝到/myapp/WEB-INF/classes/下,然後修改web.xml。
配置文件 web.xml。
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<display-name>Welcome to Tomcat</display-name>
<description>
JSP和Servlet
</description>
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/servlet/HelloServlet</url-pattern>
</servlet-mapping>
</web-app>
一個Servlet可以映射到多個URL路徑。
然後在瀏覽器中運行http://localhost:8080/ch2/servlet/HelloServlet