Jython 을 이용한 Servlet 코드 작성하기.
Resin 에서의 Setting ¶
<web-app> 항목에 다음을 추가
~cpp
<servlet>
<servlet-name>PyServlet</servlet-name>
<servlet-class>org.python.util.PyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>PyServlet</servlet-name>
<url-pattern>*.py</url-pattern>
</servlet-mapping>
요즈음(resin 3.08 기준)에는 이렇게 쓴다.
~cpp
<web-app ..>
.
<servlet servlet-name="PyServlet"
servlet-class="org.python.util.PyServlet"/>
<servlet-mapping url-pattern="*.py" servlet-name="PyServlet"/>
.
.
</web-app>
resin/lib 디렉토리에 jython.jar 화일을 복사해준다.
예제 코드.
~cpp
from javax.servlet.http import HttpServlet
class test(HttpServlet):
def doGet(self, req, res):
res.setContentType("text/html")
out = res.getOutputStream()
out.println("Testing...")
print >>out, ""
print >>out, ""
print >>out, "Hello World..."
print >>out, ""
print >>out, ""
out.close()
return
작동이 되면 성공.~
Problem ¶
servlet 클래스의 경우는 수정시 바로바로 적용이 되나, import 되는 모듈을 수정하는 경우 바로 적용이 되지 않는다.
1002 가
PyServlet 에서 생각하는 장점이라면, Servlet 의 특징으로, CGI와는 달리 인스턴스가 메모리에 남아있다는 점이다. 간단한 프로토타이핑을 할때 memory persistence 를 이용할 수 있게 된다. ZP 에서의 12줄 이야기와 같은 프로그램을 작성할 수도 있다.