分享

使用Jython编写Servlet - 51CTO.COM

 击碎星辰 2010-06-08
    本文介绍了Servlet的另一种开发方式:使用使用Jython编写Servlet。

     

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

    本文介绍一种另外的serlvet开发方式:使用Jython编写Servlet

    本文假设 读者熟悉某种应用服务器(如tomcat),java 和 python程序设计语言

    http://www. 上下载jython,假设为D:\jython-2.1

    建立一个名称为jython的web应用,把D:\jython-2.1\jython.jar copy到webapp下的WEB-INF\lib下,并配置web.xml如下:

            
    1. < servlet> 
    2. < servlet-name>PyServlet< /servlet-name> 
    3. < servlet-class> 
    4.  org.python.util.PyServlet  
    5. < /servlet-class> 
    6. < load-on-startup>11< /load-on-startup> 
    7. < init-param> 
    8.  < param-name>python.home< /param-name> 
    9.  < param-value>D:\jython-2.1< /param-value> 
    10. < /init-param> 
    11. < init-param> 
    12.  < param-name>python.path< /param-name> 
    13.  < param-value>D:\jython-2.1\Lib< /param-value> 
    14. < /init-param> 
    15. < /servlet> 
    16. < servlet-mapping> 
    17. < servlet-name>PyServlet< /servlet-name> 
    18. < url-pattern>*.py< /url-pattern> 
    19. < /servlet-mapping> 

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

            
    1. from javax.servlet.http import HttpServlet  
    2. class HelloWorld(HttpServlet):#需要类名和文件名 一致  
    3.  def doGet(self,request,response):  
    4.  response.setContentType("text/html;charset=utf-8");  
    5.  out = response.getWriter()  
    6.  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的实现后,立刻就可以看到变化,无须重启 应用服务器,很方便吧!

    注:编写HelloWorld.py的时候请严格缩进 ,jython是一种以缩进区分代码块的语言,不正确的缩进是语法错误。这样就完成了Jython编写Servlet。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多