Jython - Servlets
Um servlet Java é a técnica de desenvolvimento da Web mais amplamente usada. Podemos usar Jython para escrever servlets e isso adiciona muito mais vantagens além do que Java tem a oferecer, porque agora podemos fazer uso dos recursos da linguagem Python também.
Devemos usar o NetBeans IDE para desenvolver um aplicativo Java da web com um servlet Jython. Certifique-se de que onbPython pluginestá instalado na instalação do NetBeans. Inicie um novo projeto para construir um aplicativo da web escolhendo o seguinte caminho -File → New Project → Java web → New Web Application.
Forneça o nome e a localização do projeto. O IDE criará a estrutura de pastas do projeto. Adicione um arquivo de servlet Java (ServletTest.java) no nó dos pacotes de origem na janela Projetos. Isso vai adicionarservlet-api.jarna pasta lib do projeto. Além disso, deixe o IDE criar o web.xmldescriptor file. Adicione o seguinte código emServletTest.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>"
);
}
}
O arquivo web.xml criado pelo NetBeans será como mostrado abaixo -
<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>
Construa e execute o projeto para obter o texto Servlet Testaparecendo na tag <h1> na janela do navegador. Portanto, adicionamos um servlet Java regular ao aplicativo.
Agora, devemos adicionar o Servlet Jython. Os servlets Jython funcionam por meio de um servlet Java intermediário, também conhecido como PyServlet. O PyServlet.class está presente nojython standalone.jar. Adicione-o noWEB-INF/lib pasta.
A próxima etapa é configurar o web.xml para invocar o PyServlet, sempre que uma solicitação de qualquer *.py fileé gerado. Isso deve ser feito adicionando o seguinte código xml nele.
<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>
O código web.xml completo terá a aparência mostrada abaixo.
<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>
Coloque o seguinte código Jython na pasta WEB-INF dentro da pasta do projeto como JythonServlet.py, que é equivalente ao ServletTest.java anterior.
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>"
)
Crie o projeto e, no navegador, abra a seguinte URL -
http://localhost:8080/jythonwebapp/jythonservlet.py
O navegador mostrará o Servlet Test na tag <h1> como no caso da saída do Java Servlet.