我们还需要JSP吗?
发布网友
发布时间:2023-09-15 17:33
我来回答
共2个回答
热心网友
时间:2024-12-13 04:52
jsp还是需要的,现在很多大型的电商网站都是采用jsp做的,jsp就有以下特点:
1 跨平台
既然JSP是基于Java语言的,那么它就可以使用Java API,所以它也是跨平台的,可以应用在不同的系统中,如Windows、Linux、Mac和Solaris等。这同时也拓宽了JSP可以使用的Web服务器的范围。另外,应用于不同操作系统的数据库也可以为JSP服务,JSP使用JDBC技术操作数据库,从而避免了代码移植导致更换数据库时的代码修改问题。
正是因为跨平台的特性,使得采用JSP技术开发的项目可以不加修改地应用到任何不同的平台上,这也应验了Java语言的"一次编写,到处运行"的特点。
2 业务代码分离
采用JSP技术开发的项目,通常使用HTML语言来设计和格式化静态页面的内容,而使用JSP标签和Java代码片段来实现动态部分。程序开发人员可以将业务处理代码全部放到JavaBean中,或者把业务处理代码交给Servlet、Struts等其他业务控制层来处理,从而实现业务代码从视图层分离。这样JSP页面只负责显示数据即可,当需要修改业务代码时,不会影响JSP页面的代码。
3 组件重用
JSP中可以使用JavaBean编写业务组件,也就是使用一个JavaBean类封装业务处理代码或者作为一个数据存储模型,在JSP页面甚至整个项目中都可以重复使用这个JavaBean。JavaBean也可以应用到其他Java应用程序中,包括桌面应用程序。
4 继承Java Servlet功能
Servlet是JSP出现之前的主要Java Web处理技术。它接受用户请求,在Servlet类中编写所有Java和HTML代码,然后通过输出流把结果页面返回给浏览器。其缺点是:在类中编写HTML代码非常不便,也不利于阅读。使用JSP技术之后,开发Web应用便变得相对简单快捷多了,并且JSP最终要编译成Servlet才能处理用户请求,因此我们说JSP拥有Servlet的所有功能和特性。
5 预编译
预编译就是在用户第一次通过浏览器访问JSP页面时,服务器将对JSP页面代码进行编译,并且仅执行一次编译。编译好的代码将被保存,在用户下一次访问时,直接执行编译好的代码。这样不仅节约了服务器的CPU资源,还大大提升了客户端的访问速度。
热心网友
时间:2024-12-13 04:53
现在JSP不是活的很好吗?为什么会这么说。然而经常使用JSP的人可能会发现,JSP虽然动态地利用Java程序来生成Web前端,但JSP在调试、可视化方面都不尽人意。而且JSP提供了大量另人难以理解的标签。这些也会大大增加JSP的使用难度。在当前Sun之所以在推出Java三年后又弄出个JSP,可能主要是为了对付微软的ASP。事实上,Sun提供了JSP也是无奈之举。当明Servlet规范诞生后不久, Sun发现Servlet并不适合于开发Web程序,因为它并不能象ASP一样将HTML和Java混合在一起(只能用Response.write向客户端输出代码),因此,Sun就想了一个折衷的解决方案,用类似ASP的语法提供一个纯文本的代码页,然后再将其转换成Servlet源代码,最后将其编译成Java二进制代码。从这一点看,JSP就是Sun最初为了迎合Web设计者的需要以及为了和ASP竞争而提供的一个超级补丁,从现在来看,这个补丁已经有点陈旧了。也许Sun应该为Java全新定做一个Web解决方案了。
有很多Java程序员都认为Java是面向对象的最好体现。然而以Java作为主要程序语言的JSP在程序复用性上却和Java大相径庭。在整个J2EE规范中并没有提供一种机制来重用JSP。当然,你也许会说可以使用<jsp:include来实现复用,但用这个标签其他的组件或程序就无法实现对JSP的复用。
MVC模式是现在非常流行的设计模式,然而在JSP中却没有对它直接地支持,在最近发布的JSP2.1规范中也未描述。而要想在JSP中使用MVC模式,就必须要使用第三方的框架,如Struts。在这一点上就不如现在非常流行的Ruby on Rails。RoR的基本原理是约定优于配置。因此,在ROR中使用MVC模式是非常简单的。而在JSP中就需要配置大量的xml文件,并且现在还没有一个非常好的IDE可以支持这些操作。如果你想在自己的Web程序中使用MVC模式,建议可以考虑一下ROR。因为它会使你的工作事半功倍。
现在之所以支持JSP的IDE非常少,除了Java阵营的固有模式,只注重技术本身,而并不注意用户体验外,还有一个重要的原因,就是JSP本身在设计时并未考虑支持IDE。因此,它并不能象ASP.NET一样提供可视化的接口(当然,如果想提供这样的可视接口也不是没办法,只是实现难度要明显大于ASP.NET)。也许这在某种程序上将会影响JSP的发展,毕竟,任何人都希望自己所使用的产品更容易使用。
JSP不仅在服务端的使用不尽如人意,而且对前端技术的支持也不好。如现在非常流行的AJAX技术。要想在JSP中使用这种技术,必须得手工编写大量的代码。这对于规模很大的工程的开发周期会很长。而Sun却一直对这些视而不见。在新推出的JSP规范中迟迟不肯加入对这些新技术的支持。而Rails这一点做的就很好。它不仅全面支持MVC模式,而且提供了很多功能可以直接使用AJAX,而且无需了解任何JavaScript的知识。最近Borland又推出了Delphi for Rails。我想这将大大加速ROR的发展。也许现在很多人更希望Sun也能象这些开源技术学习,更快地在JSP中加入新东西。或者设计出更另人振奋的Web解决方案。但另人遗憾的是Sun只顾按着自己的路线发展,而无视Java社区的呼声。如果Sun仍然这样一意孤行,很可能最后Sun的软件技术只会剩下Java一种了。但愿Sun能趁早醒悟。