Jython - Servletler

Java sunucu uygulaması, en yaygın olarak kullanılan web geliştirme tekniğidir. Jython'u servlet yazmak için kullanabiliriz ve bu, Java'nın sunduklarının ötesinde çok daha fazla avantaj sağlar çünkü artık Python dil özelliklerini de kullanabiliriz.

Jython sunucu uygulamasına sahip bir Java web uygulaması geliştirmek için NetBeans IDE'yi kullanacağız. Emin olunnbPython pluginNetBeans kurulumuna yüklenir. Aşağıdaki yolu seçerek bir web uygulaması oluşturmak için yeni bir proje başlatın -File → New Project → Java web → New Web Application.

Proje adını ve konumunu sağlayın. IDE, proje klasör yapısını yaratacaktır. Projeler penceresindeki kaynak paketleri düğümünün altına bir Java servlet dosyası (ServletTest.java) ekleyin. Bu ekleyecekservlet-api.jarprojenin lib klasöründe. Ayrıca, IDE'nin web.xml dosyasını oluşturmasına izin verindescriptor file. Aşağıdaki kodu şuraya ekleyin: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 tarafından oluşturulan web.xml dosyası aşağıda gösterildiği gibi olacaktır -

<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>

Metni elde etmek için projeyi oluşturun ve çalıştırın Servlet Testtarayıcı penceresindeki <h1> etiketinde görünüyor. Böylece uygulamaya normal bir Java servlet ekledik.

Şimdi Jython Servlet'i ekleyeceğiz. Jython sunucuları, PyServlet olarak da bilinen ara Java sunucu uygulaması aracılığıyla çalışır. PyServlet.class,jython standalone.jar. EkleyinWEB-INF/lib Klasör.

Bir sonraki adım, web.xml'yi PyServlet'i çağıracak şekilde yapılandırmaktır. *.py fileyükseltilir. Bu, içine aşağıdaki xml kodunu ekleyerek yapılmalıdır.

<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>

Tam web.xml kodu aşağıda gösterildiği gibi görünecektir.

<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>

Aşağıdaki Jython kodunu proje klasörünün içindeki WEB-INF klasörüne JythonServlet.py olarak yerleştirin, bu önceki ServletTest.java ile eşdeğerdir.

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>"
      )

Projeyi oluşturun ve tarayıcıda aşağıdaki URL'yi açın -

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

Tarayıcı şunu gösterecektir: Servlet Test Java Servlet çıktısı durumunda olduğu gibi <h1> etiketinde.