- 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 输出一样在 `