webapp中的Java servlet与Java类

webapp中的Java servlet与Java类,java,class,jsp,servlets,web-applications,Java,Class,Jsp,Servlets,Web Applications,我对Java/Servlets/Tomcat等非常陌生,但从我作为CGI/PHP开发人员的日子起,我就对web应用有相当好的理解 我有一个JSPindex.JSP,它表示数据库中的表 我有一个Results.class,它是一个普通的Java类(不是servlet),用于查询数据库并从方法返回字符串:公共静态字符串displayAllResults() 返回的字符串是一个html表 因此,在我的index.jsp中有一行内容如下: String table=Result.displayAllRe

我对Java/Servlets/Tomcat等非常陌生,但从我作为CGI/PHP开发人员的日子起,我就对web应用有相当好的理解

我有一个JSPindex.JSP,它表示数据库中的表

我有一个Results.class,它是一个普通的Java类(不是servlet),用于查询数据库并从方法返回字符串:
公共静态字符串displayAllResults()

返回的字符串是一个html表
因此,在我的index.jsp中有一行内容如下:

String table=Result.displayAllResults()

然后桌子就如我所希望的那样展示出来了——一切都很好


我的问题是:以这种方式使用普通Java类而不是Java servlet是否有任何优点/缺点,或者我应该将所有类移植到servlet以增加功能???

通常认为从JSP页面中的脚本调用Java是一种糟糕的做法。JSP旨在进行HTML格式设置,使用
语言环境
以及类似的东西具有一些额外的智能。一个更好的PHP,如果你愿意的话。数据库处理应该由servlet来处理。

我认为理解
servlet
JSP
普通类的用途将回答您的问题

根据我的理解,
JSP
用于查看目的,也就是说,将UI呈现到屏幕上是JSP的角色

然而,
servlet
被用作控制器,其作用是充当视图和模型之间的桥梁


普通java类
可以充当模型,在这里您可以执行一些核心业务逻辑。

您应该真正使用像Spring MVC或struts2这样的MVC框架。您应该始终具有清晰的抽象概念:

  • 道层
  • 服务层
  • 业务层
  • 模型对象
  • DTO's
  • 助手/实用工具
尽可能在JSP页面上使用JSTL/OGNL等EL语言。永远不要使用scriptlet。如果您使用上述任何MVC框架,您可能永远不需要直接使用servlet


使用DisplayTag或Jqgrid(使用Ajax调用)之类的方式显示数据库中的数据网格。

实际上,您根本不应该这样做。这是一种非常幼稚且不可扩展的开发方法。显然,您可以将Java类用作PHP脚本,但这不是Java的设计目的。此外,JSP是一个servlet,用JSP编写Java几乎总是不好的。用Java编写HTML几乎总是不好的。单独的功能。如果您正在学习JSP,那么应该从JSF开始。您将更轻松地享受MVC模式。数据库处理应由服务处理,数据通过servlet公开给JSP。感谢大家的回答。我的下一个问题实际上是关于使用JSTL的好处,我想这是我将要考虑的事情。@thonnor-如果你觉得答案真的对你有帮助,请接受和/或投赞成票。我已经尝试过投票选出几个答案,但我需要15或更高的声誉来做到这一点。我今天早上才加入这个网站,到目前为止没有任何声誉:(@thonnor-别担心,你很快就会获得这些声誉。顺便说一句,谢谢你接受我的回答。祝你黑客愉快;)因此,一天后,我得到了一个关于JSTL的快速教程,并创建了一个页面,用我在原始类中编写的代码的一小部分来执行和显示我的DB查询。谢谢大家的帮助和指导:)