1. JSP只有对java相当熟悉的人才能用得很好。 而当前,Java程序员还比较少。
2. JSP程序调试困难。jsp页面首先被转化为一个.java文件(servlet),然后再被编译。这样,
出错信息实际上指向的是经过转化的那个 .java文件而不是jsp本身。
例如在.jsp文件第一行的错误可能被显示为第20行。如果试图通过反跟踪来解决这个问题
有时会使结果显得很滑稽。(但是,在Resin的引擎中,错误已经可以指向.jsp文件的出错行。)
你也可以使用一些集成设计工具IDE如VAJ或JDeveloper,但这有悖于JSP简单易用这一基本特性。
3. 数据库连接并不那么容易。大多数servlet引擎并不支持本地的缓冲池连接。
因此,不得不写很多代码来完成这项工作。
4. 很难选择合适的servlet引擎。没有一个独立的组织来对各种引擎提供独立的benchmark测试。
提供商当然地对他们自己的产品提供了benchmark测试,但结论通常以数据形式给出,
但均回避了稳定性。
5. 在JSP编程时问题很多,Jason Hunter 《Java servlet programming》一书的作者写过一篇
有趣的文章比较了JSP和其它替代工具。可参 http://www.servlets.com/soapbox/problems-jsp.html.