jsp详细介绍

本文详细介绍了JSP的执行过程,包括预处理、编译和响应阶段,以及首次访问与后续访问的区别。同时,讲解了JSP与servlet的区别,以及容器、jsp容器和jsp引擎的角色。此外,还探讨了JSP中如何引入其他页面,如jstl import、jsp include指令和动作。最后,阐述了JSP的四个作用域(page、request、session、application)和九大内置对象的功能及使用方法。
摘要由CSDN通过智能技术生成

一.jsp的执行过程

用户访问jsp页面时,jsp的处理过程如下图所示:
jsp执行过程

1.预处理阶段

客户第一次请求jsp页面时,jsp引擎会将jsp文件中的脚本代码(HTML)和代码片段(java代码)全部转换为java代码,转换过程非常直观:对于HTML文本只需要用简单的out.println方法包裹,对于java脚本只做保留或简单的处理。

2、编译阶段

预处理阶段把jsp文件解析为java代码,编译阶段jsp引擎把java代码编译成servlet类文件,对于Tomcat,生成的class文件默认情况下存放在<Tomcat>/work目录下。

3、响应阶段

编译后的class对象被加载到容器中,并根据用户的请求生成HTML格式的响应页面返回给客户端。
在执行jsp网页时,通常分为两个时期:转译时期和请求时期。转译时期jsp页面被翻译成Servlet类,然后编译成Class文件;用户请求时期,servlet类被执行,生成HTML响应至客户端。

4、jsp和servlet的区别

jsp的转译和请求都在在第一次访问时进行的,所以用户在第一次访问jsp页面时响应时间会比较长。在之后的请求中,这些工作已经完成,时间延长问题不存在了。在处理后续的访问时jsp和servlet的执行速度是一样的。

5、容器、jsp容器、jsp引擎

jsp要转译为servlet,但是servlet没有main()方法,servlet对象的创建、方法的调用由web容器来实现。以Tomcat为例,先看一下Tomcat的总体结构:
tomcat架构图
从图中可以看出,Tomcat的核心组建是connector和container,container就是容器。容器就是负责管理控制servlet的应用程序。图中的jasper就是解析jsp的jsp引擎。Tomcat既是servlet容器又是web服务器,也是jsp引擎。


二.jsp中如何引入jsp

1.第一种:jstl  import 

 <c:import url="inlayingJsp.jsp"></c:import> 
2. 第二种:jsp include指令(静态引入)

include指令告诉容器:复制被包含文件汇总的所有内容,再把它粘贴到这个文件中。

<%@ include file="inlayingJsp.jsp" %>

3. 第三种:jsp include动作(动态引入)

<jsp:include   page="inlayingJsp.jsp" flush="true"/>

静态导入和动态导入的区别:

静态导入代码:<%@ include file="xxx.jsp"%>

动态导入代码:<jsp:include page="xxx.jsp" />

1.静态导入是将被导入页面的代码完全融入,两个页面融合成一个整体Servlet;而动态导入则在Servlet中使用include方法来引入被导入页面的内容。

2.静态导入时被导入页面的编译指令会起作用;而动态导入时被导入页面的编译指令则失去作用,只是插入被导入页面的body内容。

3.动态包含还可以增加额外的参数。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值