当我们有.java文件可用时,为什么我们需要JSP文件?

时间:2011-07-16 08:31:11

标签: html jsp servlets

我是JSP和Servlet Web开发的绝对初学者,因此我在一些概念性的东西上苦苦挣扎。

1)我真的不明白为什么我们需要编译纯Java代码文件,但是也有单独的JSP文件...不要这两个最终实现逻辑/功能在Java?

2)如何确定应该在java文件中包含哪些函数/操作以及哪些函数/操作应包含在JSP文件中?

3)最后,中的HTML代码都是 Java和JSP文件(尽管在Java文件中我们是动态打印HTML代码。但这不会导致重复HTML代码吗?

2 个答案:

答案 0 :(得分:3)

  

1)我真的不明白为什么我们需要拥有纯Java代码文件   我们编译但也有单独的JSP文件...不是他们俩   最终在Java中实现逻辑/函数?

我认为您所说的纯Java代码文件是Servlet。事实上,您只能使用Servlet编写整个Web应用程序,但您会发现应用程序存在以下缺点:

  • 使用println()生成HTML,这意味着如果要对HTML进行一些更改,则必须更改,重新编译然后重新部署java代码。这会导致维护问题。

  • 网页设计师很难理解java代码。

  • 内容与表示之间的分离很少,因为每个事物都在Java代码中表达。

JSP旨在解决这些缺点:

  • 您不必重新编译JSP以反映更改。只需更新并保存JSP,Web容器将在下一个请求中检索JSP时自动重新编译代码。

  • JSP页面看起来与HTML页面非常相似,Web页面设计者使用JSP页面而不是Servlet更容易。

  • JSP有助于在表示和业务逻辑代码之间进行分离,其中表示可以在JSP中表示,而业务逻辑可以以Java Bean或自定义标记的形式实现。这种分离将导致更好的可维护性。

  

2)如何确定应包含哪些功能/操作   在java文件中,你应该包含在JSP文件中......?

JSP的优势在于显示HTML。您应该使用JSP来定义视图以向用户呈现数据。

Servlet的优势在于控制和调度。例如,如果要根据某些输入参数或某些业务逻辑处理显示不同的内容,您应该执行此调度工作并选择要在哪个JSP中显示结果Servlet。

如果请求的输出不包含HTML,例如生成图形或下载文件,则应在Servlet中执行。

因此,从MVC模式的角度来看,Servlet扮演Controller的角色,而JSP扮演View的角色。

您可以在此处找到使用Servlet和JSP的最佳实践: http://www.oracle.com/technetwork/articles/javase/servlets-jsp-140445.html

答案 1 :(得分:1)

可以在此处找到java servlet与JSP的解释:

http://www.oxxus.net/tutorials/jsp/why-jsp

最重要的是

  

JSP实现了业务逻辑与表示的清晰分离。   通过使用Java作为脚本语言,JSP不限于特定的供应商平台。   JSP作为J2EE体系结构的一个组成部分,可以完全访问服务器端资源。

2:如果该函数仅由该JSP调用,请继续将其抛入其中。一般来说,您应该只是从JSP调用java,而不是在其中留下太多代码。将函数构建到.java中并从JSP中调用它们将促进代码重用,并使您更仔细地考虑如何实现这些函数。

3:尽量避免将演示文稿(HTML和其他)与业务逻辑(Java)混合使用。

  

这不会导致重复的HTML代码吗?

确实如此,不要这样做。