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开发方面的文章,感兴趣的朋友可以