为什么不建议在JSP中使用JavaScript?

为什么不建议在JSP中使用JavaScript?,java,javascript,jsp,Java,Javascript,Jsp,为什么不建议在JSP中使用JavaScript?我能想到的一个理由是,关闭浏览器中的功能会阻止代码执行。这背后还有其他原因吗?JSP是一种服务器端技术。也就是说,服务器解析/编译所有信息,然后将其发送到客户端(即您的浏览器)。然后 若接收到的数据包含任何javascript,那个么浏览器将在其自己的javascript VM中对其进行解释,而服务器早已被遗忘,因为HTTP是无状态协议 考虑到“不推荐web中的JS”,我不会为此烦恼。大多数站点广泛使用JS,因此在客户端关闭JS将使它们几乎没有用处

为什么不建议在JSP中使用JavaScript?我能想到的一个理由是,关闭浏览器中的功能会阻止代码执行。这背后还有其他原因吗?

JSP是一种服务器端技术。也就是说,服务器解析/编译所有信息,然后将其发送到客户端(即您的浏览器)。然后

若接收到的数据包含任何javascript,那个么浏览器将在其自己的javascript VM中对其进行解释,而服务器早已被遗忘,因为HTTP是无状态协议


考虑到“不推荐web中的JS”,我不会为此烦恼。大多数站点广泛使用JS,因此在客户端关闭JS将使它们几乎没有用处。

Afaik,在jsp中使用javascript没有问题,许多站点确实使用它。特别是如果你的网站是一个web应用程序,你将不得不同时使用这两个应用程序。他们完全独立。你只需要确保你所使用的每一个都是合适的


至于关闭浏览器中的javascript使站点无法使用的部分,无论是否使用jsp,只要使用javascript都是正确的。

如果您有许多客户端,那么最好使用javascript在客户端上进行计算。如果你在服务器上做所有的事情,你只会浪费客户端浏览器提供的许多处理能力,如果太多的客户端使服务器繁忙,Java的速度优势将是徒劳的。(感谢评论中的@subtenate指出这一点!)

但另一方面,在服务器上运行的Java比在客户端上运行的JavaScript快,而且它不会在客户端上出现冗余代码,用于测试客户端运行的浏览器


不过,正如trex指出的那样,JavaScript也有它的用途。由于它在客户机上运行,例如,它可以在将表单发送到服务器之前验证表单字段

我知道这是一个非常古老的问题,但我想我无论如何都会插嘴。我认为您应该在当前时期使用javascript,因为它提供了非常丰富的用户体验,并且通过jQuery(我个人最喜欢的)、prototype和mootools等js库,您可以轻松地将javascript集成到应用程序中

如果您正确设计了应用程序,您可以添加javascript来丰富用户体验(并使他们更容易使用您的站点/应用程序),而无需额外的服务器开销和很少的工作量

然而,您的站点不应该依赖javascript来实现功能,因为用户的浏览器可能不支持它

Javascript应该不引人注目,并为支持它的用户提供更丰富的体验

这是一篇关于用户界面和优雅升级的好文章,而不是针对用户浏览器的故障而设计的

他的意思是“不要使用java scriptlets”,这是介于两者之间的东西

最大的原因是可维护性和调试;Scriptlet使一切都变得非常困难

另一方面,如果实现taglibs,则可以将任何逻辑提取到一个真正的java类中,这很容易调试,并且仍然能够在可视化xml/html编辑器中打开,因为taglibs是一个有效的xml结构


现在,在客户端(用javascript)进行验证是个坏主意。用户可以禁用javascript,甚至可以直接访问url来绕过验证,这会让您面临漏洞攻击。

这是一个非常好的想法。希望除此之外没有其他原因。被否决的-类似这样的问题应该会引用任何此类断言。您是否想过不应该在JSP中使用Java的断言?最好的做法是将Java业务逻辑保存在servlet/单独的类中,并且只将显示信息/html/js放在jsp文件中。@Alnitak-可以更具体一点吗Java比js快,好吧,但是您只有一台服务器,而且可能有很多客户端。如果不考虑客户端,繁重的功能可能会提高性能,从而减轻服务器的负担。感谢您的评论。我同意你的意见,并修改了我的回答。我今天觉得我不太喜欢我的答案。如果可以,我会删除我的答案并告诉提问者从下面选择另一个:)但我希望你现在同意我的答案:)“现在,在客户端(javascript)进行验证是个坏主意。”“只在客户端进行验证是不好的。但是,除此之外,这样做有助于提高响应能力(无需等待服务器拒绝它并减少服务器的负载)。