자이 썬-서블릿

Java 서블릿은 가장 널리 사용되는 웹 개발 기술입니다. 우리는 자이 썬을 사용하여 서블릿을 작성할 수 있으며, 이것은 이제 우리가 파이썬 언어 기능을 사용할 수 있기 때문에 자바가 제공하는 것 이상의 많은 이점을 추가합니다.

NetBeans IDE를 사용하여 자이 썬 서블릿으로 Java 웹 애플리케이션을 개발할 것입니다. 확인하십시오nbPython pluginNetBeans 설치에 설치됩니다. 다음 경로를 선택하여 웹 애플리케이션을 빌드하는 새 프로젝트를 시작하십시오.File → New Project → Java web → New Web Application.

프로젝트 이름과 위치를 제공하십시오. IDE는 프로젝트 폴더 구조를 생성합니다. 프로젝트 창의 소스 패키지 노드 아래에 Java 서블릿 파일 (ServletTest.java)을 추가하십시오. 이것은 추가됩니다servlet-api.jar프로젝트의 lib 폴더에 있습니다. 또한 IDE가 web.xml을 생성하도록합니다.descriptor file. 다음 코드를 추가하십시오.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에 의해 생성 된 web.xml 파일은 다음과 같습니다.

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

프로젝트를 빌드하고 실행하여 텍스트를 얻습니다. Servlet Test브라우저 창에서 <h1> 태그에 나타납니다. 따라서 애플리케이션에 일반 Java 서블릿을 추가했습니다.

이제 자이 썬 서블릿을 추가하겠습니다. Jython 서블릿은 PyServlet이라고도하는 중간 Java 서블릿을 통해 작동합니다. PyServlet.class는jython standalone.jar. 그것을 추가하십시오WEB-INF/lib 폴더.

다음 단계는 모든 요청이있을 때마다 PyServlet을 호출하도록 web.xml을 구성하는 것입니다. *.py file제기됩니다. 다음 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>

전체 web.xml 코드는 다음과 같습니다.

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

다음 Jython 코드를 이전 ServletTest.java와 동일한 JythonServlet.py로 프로젝트 폴더 내의 WEB-INF 폴더에 배치하십시오.

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

프로젝트를 빌드하고 브라우저에서 다음 URL을 엽니 다.

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

브라우저에 Servlet Test Java Servlet 출력의 경우와 같이 <h1> 태그에서.