是否可以使用Servlet实现任何功能,而不是使用JSP实现,反之亦然

时间:2011-11-14 13:54:49

标签: java jsp java-ee servlets

我们知道 JSP转换为Servlet,Servlet用于Buisines逻辑,JSP用于视图等。。但从理论上讲,您可以使用servlet完成JSP所做的大部分工作。反之亦然。

但是您可以使用Servlet而不是使用JSP实现任何功能,反之亦然吗?

我在一次采访中回答了这个问题,但是经过大量的谷歌搜索后没有找到任何答案。

6 个答案:

答案 0 :(得分:5)

  

但有没有什么可以用Servlet实现而不用JSP实现,反之亦然?

从技术上讲, 只能实现

从功能上讲,遵循MVC设计模式并在servlet和JSP中的视图部分实现控制器部分时,可维护性存在巨大差异。 Servlet API提供了更清晰的抽象,可以挂钩特定的HTTP方法,并在将任何位写入响应之前控制请求/响应。反过来,JSP是响应的部分,它可以使某些任务更难实现,例如在发生异常时更改响应。

另见:

答案 1 :(得分:2)

两者之间存在一些微妙的差异:

生命周期不同,JSP被转换为文档形式(从JSP文件形式),然后转换为Java类文件(.java文件)。从这里开始,它们被视为servlet(编译等)。

JSP还具有Serv范围无法使用的Page范围。

就可重用性而言,JSP与Servlet不同。 JSP可以使用TagFile和TagLibraries作为可重用的逻辑单元,这是servlet无法做到的。

答案 2 :(得分:0)

唯一的区别是JSP可以由文档编写者编写,他们不了解Java。

除此之外没有差异。

答案 3 :(得分:0)

虽然技术上没有任何东西阻止你这样做,但是当没有用户界面时使用jsp会让我觉得这是徒劳的教训。 servlet不仅可以用于提供网页,还可以通过Apache HttpClientSpring remoting之类的东西作为简单的远程处理机制。

答案 4 :(得分:0)

所说的(技术上没有任何servlet可以做的,JSP不能,反之亦然)是真的,但我相信面试官正在寻找的答案是 JSP只适合用于文本输出,而 servlet可以轻松输出文本或二进制数据

答案 5 :(得分:0)

据我所知,JSP专门针对HTTPprotocol。我们无法将jsp用于任何其他协议实现。 但是协议特定的servlet我们可以创建只是继承(实现/扩展)对应的基本协议clasess。   在正常情况下(HTTP协议实现),我们也可以通过JSP实现servlet给出的所有舒适性。