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.