众所周知,servlet是java在服务器端程序设计 的重要组成部分,servlet执行效率较高,适合做程序的逻辑处理,缺点是使用起来比较繁琐,每个servlet必须在web.xml中声明并且当修改部署后的servet后一般还需要reload容器,这种情况对于开速开发是很不利的,
本文介绍一种另外的serlvet开发方式:使用Jython编写Servlet
本文假设 读者熟悉某种应用服务器(如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>
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
现在编写一个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>";
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
启动应用服务器 ,假设位于localhost,端口8080,访问http://localhost:8080/jython/HelloWorld.py ,是不是看到了
“Hello World by Jython Servlet!”字符串 输出呢?
正如 您所想象的一样,Jython编写Servlet无须在web.xml做任何声明,PySerlvet会拦截所有.py请求并分发给各自的jython servlet,
并且在修改HelloWorld的实现后,立刻就可以看到变化,无须重启 应用服务器,很方便吧!
注:编写HelloWorld.py的时候请严格缩进 ,jython是一种以缩进区分代码块的语言,不正确的缩进是语法错误。这样就完成了Jython编写Servlet。
【编辑推荐】