- Jython 教程
- Jython - 首頁
- Jython - 概述
- Jython - 安裝
- Jython - 匯入 Java 庫
- Jython - 變數和資料型別
- Jython - 使用 Java 集合型別
- Jython - 決策控制
- Jython - 迴圈
- Jython - 函式
- Jython - 模組
- Jython - 包
- Jython - Java 應用程式
- Jython - Eclipse 外掛
- Jython - 在 Eclipse 中建立一個專案
- Jython - NetBeans 外掛和專案
- Jython - Servlet
- Jython - JDBC
- Jython - 使用 Swing GUI 庫
- Jython - 佈局管理
- Jython - 事件處理
- Jython - 選單
- Jython - 對話方塊
- Jython 有用資源
- Jython - 快速指南
- Jython - 有用資源
- Jython - 討論
Jython - Servlet
Java Servlet 是最廣泛使用的 Web 開發技術。我們可以使用 Jython 來編寫 Servlet,這比 Java 提供了更多優勢,因為現在我們也可以使用 Python 語言特性。
我們將使用 NetBeans IDE 來開發一個包含 Jython Servlet 的 Java Web 應用程式。確保在 NetBeans 安裝中安裝了 **nbPython 外掛**。透過選擇以下路徑啟動一個新專案以構建 Web 應用程式:**檔案 → 新建專案 → Java Web → 新建 Web 應用程式**。
提供專案名稱和位置。IDE 將建立專案資料夾結構。在“專案”視窗的源包節點下新增一個 Java Servlet 檔案 (ServletTest.java)。這將在專案的 lib 資料夾中新增 **servlet-api.jar**。另外,讓 IDE 建立 web.xml **描述符檔案**。在 **ServletTest.java** 中新增以下程式碼。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ServletTest extends HttpServlet {
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType ("text/html");
PrintWriter toClient = response.getWriter();
toClient.println (
"<html>
<head>
<title>Servlet Test</title>" + "
</head>
<body>
<h1>Servlet Test</h1>
</body>
</html>"
);
}
}
NetBeans 建立的 web.xml 檔案如下所示:
<web-app>
<servlet>
<servlet-name>ServletTest</servlet-name>
<servlet-class>ServletTest</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletTest</servlet-name>
<url-pattern>/ServletTest</url-pattern>
</servlet-mapping>
</web-app>
構建並執行專案,您將在瀏覽器視窗中看到 `
` 標籤中顯示的文字 **Servlet Test**。因此,我們在應用程式中添加了一個普通的 Java Servlet。
現在,我們將新增 Jython Servlet。Jython Servlet 透過一箇中間 Java Servlet 工作,也稱為 PyServlet。PyServlet.class 位於 **jython standalone.jar** 中。將其新增到 **WEB-INF/lib** 資料夾中。
下一步是配置 web.xml,以便在每次發出對任何 ***.py 檔案** 的請求時呼叫 PyServlet。這可以透過在其中新增以下 xml 程式碼來完成。
<servlet> <servlet-name>PyServlet</servlet-name> <servlet-class>org.python.util.PyServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>PyServlet</servlet-name> <url-pattern>*.py</url-pattern> </servlet-mapping>
完整的 web.xml 程式碼如下所示。
<web-app>
<servlet>
<servlet-name>ServletTest</servlet-name>
<servlet-class>ServletTest</servlet-class>
</servlet>
<servlet>
<servlet-name>PyServlet</servlet-name>
<servlet-class>org.python.util.PyServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ServletTest</servlet-name>
<url-pattern>/ServletTest</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>PyServlet</servlet-name>
<url-pattern>*.py</url-pattern>
</servlet-mapping>
</web-app>
將以下 Jython 程式碼作為 JythonServlet.py 放置在專案資料夾內的 WEB-INF 資料夾中,它相當於之前的 ServletTest.java。
from javax.servlet.http import HttpServlet
class JythonServlet1 (HttpServlet):
def doGet(self,request,response):
self.doPost (request,response)
def doPost(self,request,response):
toClient = response.getWriter()
response.setContentType ("text/html")
toClient.println (
"<html>
<head>
<title>Servlet Test</title>" + "
</head>
<body>
<h1>Servlet Test</h1>
</body>
</html>"
)
構建專案,並在瀏覽器中開啟以下 URL:
https://:8080/jythonwebapp/jythonservlet.py
瀏覽器將像 Java Servlet 輸出一樣在 `