為了生成一個servlet對應的網頁。我們需要新建一個web.xml,其中將會放置servlet的相關信息。
web.xml文件放置在WebContent/WEB-INF/目錄下。(我們在Eclipe中新建一個Dynamic Web Project的時候一直點"next"的話會有提示"Generate web.xml deployment descriptor",勾選該選項會默認生成一個web.xml文件)。
我們需要配置兩對映射關系,一對是servlet名和他對應的servlet類的對應關系;另一對是servlet和他的對應的URL后綴的對應關系。這么一來我們就將一個servlet類和一個URL聯系到了一起。
我們在web.xml中加入元素servlet和servlet-mapping,如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>WebProject</display-name> <servlet> <servlet-name>moonlit</servlet-name> <servlet-class>com.moonlit.MoonlitServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>moonlit</servlet-name> <url-pattern>/page2.do</url-pattern> </servlet-mapping> </web-app>
可以看到servlet中moonlit這個servlet名對應的類名為com.moonlit.MoonlitServlet,但是這個類我們還沒有創建,所以我們現在需要創建這個類。
要創建這個類,我們首先需要創建一個包com.moonlit,然后在包com.moonlit中創建一個類MoonlitServlet。
Moonlit類作為一個servlet類需要繼承HttpServlet類,並且因為我們這里是需要這個setvlet類輸出一些我們想要的效果,所以還需要重寫這個類的doGet和doPost方法。
我們這里就要求這個servlet早對應的網頁上顯示出當前的日期相關的信息吧。
那么實現出來的MoonlitServlet類如下:
package com.moonlit; import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @SuppressWarnings("serial") public class MoonlitServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { PrintWriter out = resp.getWriter(); out.println("<html>" + "<head><title>page2</title></head>" + "<body>" + new Date() + "</body>" + "</html>"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doGet(req, resp); } }
重啟服務器,會看到/page2.do頁面顯示了當前的日期信息。