为什么jsp不能取代servlet

如题所述

  JSP动态Web内容可能是动态Web内容的一项伟大的技术,并可将内容和表示presentation相分离,有些人仍然觉得奇怪,为什么servlets仍然有必要和JSP同时实施。

  其实servlets的实用性并不是一个问题。它们在服务器端处理方面的表现非常优秀,而且,由于它们引人注目的安装方式而继续存在着。事实上,你可以将JSP看作一种servlets的高级抽象,它以Servlet 2.1 API扩展的形式来实现。

  你仍然不应该不加选择地使用servlets;它们可能并不适用于每个人。例如,当一个页面设计者可以很简单地使用方便的HTML或XML工具来编写JSP页面时,servlets可能更适合那些在后端的开发者,因为他们经常使用某种IDE来编写-- 这是一种通常需要较高编程经验的处理工作。

  当发布servlets时,甚至开发者都不得不小心确保在presentation和内容之间不存在紧密结合。你通常可以通过增加一个第三方发行包如htmlKona来做到这一点。但即使可以做到这一点,虽然可以通过简单的屏幕上的调整提供一些灵活性,仍无法为你保证在presentation自身格式上的变化。例如,如果你的presentation从HTML改变到DHTML,你将仍然需要确保发行包和新的格式相一致,在最坏的case -- scenario中,如果一个发行包无法得到,你将结束在动态web的内容中对presentation使用手写代码。

  所以,解决方法是什么呢?

  方法之一就是同时使用JSP和servlet技术来建立应用系统。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-16
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测试,但结论通常以数据形式给出,
但均回避了稳定性。
相似回答