📜  Jython-Servlet

📅  最后修改于: 2020-11-08 07:18:01             🧑  作者: Mango


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 (
         "
            
               Servlet Test" + "
            
            
               

Servlet Test

" ); } }

NetBeans创建的web.xml文件如下所示-


   
      ServletTest
      ServletTest
   
   
   
      ServletTest
      /ServletTest
   

生成并运行该项目,以获取文本Servlet Test,该文本出现在浏览器窗口的

标记中。因此,我们在应用程序中添加了常规Java servlet。

现在,我们将添加Jython Servlet。 Jython servlet通过中间Java servlet进行工作,也称为PyServlet。 PyServlet.class存在于jython standalone.jar中。将其添加到WEB-INF / lib文件夹中。

下一步是将web.xml配置为在提出任何* .py文件的请求时调用PyServlet。这可以通过在其中添加以下xml代码来完成。


   PyServlet
   org.python.util.PyServlet
   1



   PyServlet
   *.py

完整的web.xml代码如下所示。


   
      ServletTest
      ServletTest
   
   
   
      PyServlet
      org.python.util.PyServlet
      1
   
   
   
      ServletTest
      /ServletTest
   
   
   
      PyServlet
      *.py
   

将以下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 (
         "
            
               Servlet Test" + "
            
            
               

Servlet Test

" )

生成项目,然后在浏览器中打开以下URL-

http:// localhost:8080 / jythonwebapp / jythonservlet.py

与Java Servlet输出一样,浏览器将在

标记中显示Servlet测试