用Jython来写SERVLET!!

来源:互联网 发布:网络高手联系方式 编辑:程序博客网 时间:2024/05/16 19:29

众所周知,Servlet是Java在服务器端程序设计的重要组成部分,servlet执行效率较高,适合做程序的逻辑处理,缺点是使用起来比较繁琐,每个servlet必须在Web.XML中声明并且当修改部署后的servet后一般还需要reload容器,这种情况对于开速开发是很不利的,本文介绍一种另外的serlvet开发方式:

使用jython 本文假设读者熟悉某种应用服务器(如tomcat),java 和 python程序设计语言在http://www.jython.org上下载jython,假设为D:/jython-2.1 建立一个名称为jython的web应用,把D:/jython-2.1/jython.jar copy到webapp下的WEB-INF/lib下,并配置web.xml如下:

<servlet>

<servlet-name>PyServlet</servlet-name>

<servlet-class>org.python.util.PyServlet</servlet-class>

<load-on-startup>11</load-on-startup>

<init-param><param-name>python.home</param-name>

<param-value>D:/jython-2.1</param-value>

</init-param><init-param>

<param-name>python.path</param-name>

<param-value>D:/jython-2.1/Lib</param-value>

</init-param>

</servlet>

<servlet-mapping>

<servlet-name>PyServlet</servlet-name>

<url-pattern>*.py</url-pattern>

</servlet-mapping>

现在编写一个HelloWorld.py,如下:

from javax.servlet.http import HttpServlet

class HelloWorld(HttpServlet):#需要类名和文件名一致

def doGet(self,request,response):

response.setContentType("text/html;charset=utf-8");

out = response.getWriter()print>>out,"<H1>Hello World by Jython Servlet!</H1>";

启动应用服务器,假设位于localhost,端口8080,访问

http://localhost:8080/jython/HelloWorld.py,是不是看到了“Hello World by Jython Servlet!”字符串输出呢?正如您所想象的一样,jython servlet无须在web.xml做任何声明,PySerlvet会拦截所有.py请求并分发给各自的jython servlet,并且在修改HelloWorld的实现后,立刻就可以看到变化,无须重启应用服务器,很方便吧!