在jsp页面中function方法里可以使用request。jsp是一个特殊的servlet,jsp中可以使用九大隐式(内置)对象,分别是request对象、response对象、session对象、out对象、page对象、application对象、exception对象、pagecontext对象、config对象。所以只要是在jsp页面范围内就可以使用request对象
jsp是传统javaweb开发的核心组成部分,主要的作用是构建呈现端(view)。
传统javaweb开发方案中还有servlet和javabean,servlet充当控制器,而javabean则充当模型,也就是经典的model2解决方案。
jsp能做哪些事呢?jsp能做两件事,一件事是做展现,另一件事是做业务处理,传统的model1解决方案就是采用jspjavabean的来实现(这已经是将近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开发方面的问题,也可以咨询我。
谢谢!