Jython - serwlety

Serwlet Java jest najczęściej używaną techniką tworzenia stron internetowych. Możemy używać Jythona do pisania serwletów, a to dodaje wiele innych korzyści poza tym, co ma do zaoferowania Java, ponieważ teraz możemy również korzystać z funkcji języka Python.

Będziemy używać NetBeans IDE do tworzenia aplikacji internetowych w języku Java z serwletem Jython. Upewnij się, żenbPython pluginjest zainstalowany w instalacji NetBeans. Rozpocznij nowy projekt, aby zbudować aplikację internetową, wybierając następującą ścieżkę -File → New Project → Java web → New Web Application.

Podaj nazwę i lokalizację projektu. Środowisko IDE utworzy strukturę folderów projektu. Dodaj plik serwletu Java (ServletTest.java) w węźle pakietów źródłowych w oknie Projekty. To dodaservlet-api.jarw folderze lib projektu. Niech IDE utworzy również plik web.xmldescriptor file. Dodaj następujący kod wServletTest.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>"
      );
   }
}

Plik web.xml utworzony przez NetBeans będzie wyglądał tak, jak pokazano poniżej -

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

Skompiluj i uruchom projekt, aby uzyskać tekst Servlet Testpojawiające się w tagu <h1> w oknie przeglądarki. Dlatego dodaliśmy do aplikacji zwykły serwlet Java.

Teraz dodamy serwlet Jython. Serwlety Jython działają za pośrednictwem pośredniego serwletu Java, znanego również jako PyServlet. Klasa PyServlet.class znajduje się w plikujython standalone.jar. Dodaj go wWEB-INF/lib teczka.

Następnym krokiem jest skonfigurowanie web.xml do wywoływania PyServlet, gdy tylko pojawi się żądanie *.py filejest podniesiony. Należy to zrobić, dodając w nim następujący kod 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>

Pełny kod web.xml będzie wyglądał tak, jak pokazano poniżej.

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

Umieść następujący kod Jython w folderze WEB-INF wewnątrz folderu projektu jako JythonServlet.py, co jest odpowiednikiem poprzedniego 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>"
      )

Zbuduj projekt iw przeglądarce otwórz następujący adres URL -

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

Przeglądarka pokaże plik Servlet Test w tagu <h1> tak jak w przypadku wyjścia Java Servlet.