Javaweb技术中Java和JSP有什么关系?

作者&投稿:前朗 (若有异议请与网页底部的电邮联系)

JSP是传统JavaWeb开发的核心组成部分,主要的作用是构建呈现端(View)。

传统JavaWeb开发方案中还有Servlet和JavaBean,Servlet充当控制器,而JavaBean则充当模型,也就是经典的Model2解决方案。

JSP能做哪些事呢?JSP能做两件事,一件事是做展现,另一件事是做业务处理,传统的Model1解决方案就是采用JSP+JavaBean的方式来实现(这已经是将近20年前的解决方案了),简单的说JSP既能做html的事情,又能做业务调度的事情(Servlet)。虽然建议JSP只做展示层的事情,但是JSP完全能嵌入可执行的Java代码,也就是可以把展示逻辑和业务逻辑整合在一起。也正是因为如此,目前在大型项目中已经很少能看到JSP的影子了。

传统方案的请求流程是当用户请求发送到服务器以后,由Servlet接收用户的请求(提取数据、验证数据、功能匹配等),然后调用JavaBean的业务方法完成业务处理,最终跳转到JSP页面,由JSP页面把结果呈现出来。

这种方式目前只在一些小型的Web开发中还能看到,在一些大型Web开发方案中,已经很少采用JSP了,原因有以下几点:

第一,JSP本质上是Servlet。JSP是要转换成Servlet执行的,这就要求JSP必须在WebContainer中,而WebContainer往往还要负责业务逻辑的处理,这对性能有较大的影响。

第二,动静资源耦合。这是JSP被诟病的一个主要原因,早期是优点,后期就是一个最大的缺点了。

第三,JSP内容多,加载慢。前端工程师还要了解各种JSP标签的使用,往往很容易出错。

目前大型Web开发方案是前端访问直接到达html页面,html页面由单独的服务器处理(比如Nginx),提高了访问的效率,然后由html页面发起接口调用。这样能够完成动静的分类,提高了开发效率,也提高了服务器的稳定性。

当然,对于初学者来说,学习JSP的使用也是没有坏处的,毕竟现在有大量的项目依然在采用JSP作为呈现端。如果项目的并发请求量不高的情况下,采用JSP还是很方便的。

我使用Java编程多年,目前也在带Java开发团队(移动互联、大数据方向),我会陆续在头条写一些关于Java开发方面的文章,感兴趣的朋友可以



~

java自学要多久
答:java自学最快也要半年左右。ava是一门面向对象的高级编程语言,不仅吸收了C语言的各种优点,还摒弃了C里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有...

java与python对比优势是什么?
答:在项目类型上,Java更适合大型项目,易于管理和维护;Python3更适合写一些小项目,便于更新迭代。在大项目上的应用,除开那种密集计算型的项目,我敢说Java世界上最好的语言!一般用户在百万+千万不到的时候,并发变高、内存不够,但是优化一下好像还可以接着用,此时Java的优势就显现出来了。虽然Python...

JAVA+LAMPO什么时候出的?
答:ava和LAMP不是同一个概念,它们是两个不同的技术栈。Java是由Sun Microsystems(现在是Oracle)开发的一种通用编程语言,最初发布于1995年。它是一种面向对象的编程语言,具有跨平台性和可移植性,被广泛应用于各种软件开发领域。LAMP是一个用于构建动态网站和Web应用的开发平台,它由四个组件组成:Linux...

开发JAVA应用程序有哪些步骤?
答:Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现均支持Java applet。 ava分为三个体系JavaSE(Java2 Platform Standard Editio...

怎么用java获取cookie
答:ookie实际上是一个存在你硬盘里的数据,但是这些数据很特殊,只能由web应用提交给浏览器帮助存储,并且我们还能读取浏览器存在本地的cookie web应用一般只在cookie中存储一些用户信息等少量且暂时的数据,数据量大则不适合存储在cookies ava通过httpServletRequest接口来访问浏览器请求中的cookies数据(这里先了解...

Java语言的特点
答:如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。 所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界中的对象均有属性和行为,映射到...

Java开源框架是什么?
答:在WebWork2.2中添加了对AJAX的支持,这支持是构建在DWR与Dojo这两个框架的基础之上.【EclipseWork:用于WebWork辅助开发的一个Eclipse插件】 Struts 【Java开源 Web框架】 Struts 是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的...

学习Java需要学哪些内容?
答:业务逻辑 (业务需求,语言语法,算法,类库框架,性能优化等)信息交互(展示)(多端,app,小程序,公众号,移动端,pc端,web开发等。。)这三块知识作为学习来说,可以有侧重,但是不能有某一块完全不懂。在这里推荐您了解下我们的免费学习资源“Java300集”,可在B站搜索我们官方账号(尚学堂)...

常见的十五种Java开发工具是什么,有什么特点
答:Sun Java Studio是Sun公司最新发布的商用全功能Java IDE,支持Solaris、Linux和Windows平台,适于创建和部署2层Java Web应用和n层J2EE应用的企业开发人员使用。NetBeans是业界第一款支持创新型Java开发的开放源码IDE。开发人员可以利用业界强大的开发工具来构建桌面、Web或移动应用。同时,通过NetBeans和开放的...

java写web service需要什么基础?
答:html xml css,根本上还是j扎实的ava基础