JSP中include指令与inlcude动作的区别

一、JSP工作原理

  • JSP文件是一种Servlet,其工作方式是先部署源代码后编译为.class文件。服务端在客户端第一次请求JSP文件的时候被编译成Servlet,由Servlet处理客户端的请求。具体流程如下:
    JSP原理

  • 简述下在Intellij Idea中Tomcat项目的工作过程,项目名称为Demo2017:

    1. Intellij Idea在第一此发布Tomcat项目的时候,会在.IntelliJIdea2016.3\system\tomcat文件目录中生成一个tomcat工作目录Tomcat_7_0_73_Demo2017。该目录下包含了conf、logs和work三个目录。

    2. 此时客户端第一次访问Tomcat项目中的index.jsp,此时,Tomcat首先会将index.jsp转换成index_jsp.java,并将该文件放入目录:work\Catalina\localhost\
      demo2017\org\apache\jsp(demo2017为自己设置的虚拟目录)

    3. 然后,Tomcat会将index_jsp.java编译生成index_jsp.class,生成Servlet实例。最后返回响应

    4. 需要注意的是,JSP只会在客户端第一次请求的时候被编译,因此第一次请求会比较慢,

二、Include指令

  • 语法:<%@ include file="filepath" %>

  • Include指令可以在JSP程序中插入多个外部文件(如:JSP\HTML\java程序\甚至是文本)。在转换成Servlet实例之前,include指令会将相应的文件包含进include指令所在文件,最后一并转换成.java为文件,编译生成一个.class文件,一起执行。

  • Include指令的实际作用是将file所指的文件的Java代码包含进include指令所在的文件的Java代码当中,因此在使用include指令时要注意文件与被包含文件不能定义相同的变量,避免命名冲突。

  • 假设includeCommand.jsp中使用include指令包含了一个date.jsp文件,在work工作目录下,Tomcat会生成一个includeCommand_jsp.java和一个includeCommand_jsp.class文件

三、Include动作

  • 语法:<jsp:include page="filepath" flush="false"/>

  • Include动作用于客户端请求时引入指定文件。如果引入的文件是JSP文件,则先编译该JSP文件,然后再把编译结果引入Include动作所在文件。

  • 同样的情况,如果在includeAction.jsp中使用include指令包含一个文件date.jsp,在work工作目录下,Tomcat会生成includeAction_jsp.java、includeAction_jsp.class、date_jsp.java、date_jsp.class

  • 在includeAction_jsp.java中使用
    org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, “date.jsp”, out, false)来引入date.jsp文件。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值