首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Resin 3.0 Servlet 部署實戰:web.xml 修正與 HelloWorld 完整範例

     編輯:Java 相關知識

前置條件

正確安裝 JDK 與 Resin 3.0。

web.xml 關鍵修正(原文檔三大錯誤)

  1. 順序修正:<servlet> 必須置於 <servlet-mapping> 之前
  2. 閉合標籤補全:缺少結尾 /
  3. 移除錯誤標籤:刪除干擾部署的殘留標籤

修正後標準 web.xml

<web-app>
  <servlet>
    <servlet-name>hello-world</servlet-name>
    <servlet-class>test.HelloWorld</servlet-class>
    <init-param>
      <param-name>greeting</param-name>
      <param-value>Hello World</param-value>
    </init-param>
  </servlet>

  <servlet-mapping>
    <servlet-name>hello-world</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>
</web-app>

檔案位置:$APP_DIR/WEB-INF/web.xml

Servlet 實作類別

位置:$APP_DIR/WEB-INF/classes/test/HelloWorld.java(或編譯後的 .class)

版本一:使用 init-param(原文檔風格)

package test;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet {
    private String greeting;

    public void init() throws ServletException {
        greeting = getInitParameter("greeting");
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html><body>" + greeting + "</body></html>");
    }

    public void destroy() { /* nothing */ }
}

版本二:簡化直寫(實測可行)

package test;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse res)
            throws ServletException, IOException {
        res.setContentType("text/html");
        PrintWriter pw = res.getWriter();
        pw.println("<html><body>Hello, world!</body></html>");
        pw.close();
    }
}

部署與驗證

  1. 啟動 Resin 服務
  2. 瀏覽器訪問:https://localhost:8080/hello
  3. 正確顯示 "Hello World" 或 "Hello, world!" 即部署成功

關鍵目錄結構速查

$APP_DIR/
├── WEB-INF/
│   ├── web.xml
│   └── classes/
│       └── test/
│           └── HelloWorld.class

避坑指南

  • 包名 test 與目錄結構 classes/test/ 必須一致
  • url-pattern 必須以 / 開頭
  • Resin 3.0 預設埠 8080,若衝突請修改 resin.conf
  • 修改程式碼後需重新編譯並重啟應用(或啟用開發模式熱部署)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved