include的两种形式与介绍

include的另种形式和区别
先简单的说下include的两种形式:
<% include file="" %>:为静态包含(加载)
<jsp:include page="" flush="true" />:为动态包含(加载)

简单来解释一下静态包含和和动态包含:
静态包含:JSP编译器编译的时候已经包含好相应的文件,生成一个java_servlet,对应的Servlet文件中已经包含了被包含的页面,然后javac编译成一个class文件,在jvm运行的的时候,一个页面不能传参(相当于给自己传参),没有意义.

动态包含:JSP编译器编译的时候,加载页面和被夹在页面会被解析成两个java_servlet文件,javac编译器会编译两次,生成两个class文件然后在jvm运行的过程中,这个时候包含文件才去调用被包含的class文件(注意:JSP标签需要自己关闭,不要忘了关闭的斜线)

下面是一个我自己画的分析图:

在给大家一些实例参照一下:

<!DOCTYPE HTML>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jsp:include</title>
</head>
<body bgcolor="white">
    <font color="red">
    <%@ include file="文件名"%>
    <%= request + "--1--" + "<br>"%>
        <jsp:include page="文件名" flush="true" />
    <%= request + "--1--"+ "<br />"%>
   
    <jsp:include page="文件名?username='123'" flush="true" />

    </font>
</body>
</html>

    上面例子可以看出,因为生成是两个不同的Servlet文件-->不同的class--->所以每个Servlet都有自己的request对象,不是同一个.但是第一个是生成一个Servlet所以是同一个request

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>TestBar.jsp</title>
</head>
<body>
<table width="100%">
    <tr><td><%@ include file="文件名"%></td></tr>
    <%=request.getParameter("username")%>
    <tr><td><% out.println("<p>这是用户显示区</p>");%></td></tr>
</table>
    
</body>
</html>

上面的例子可以看出两个源文件生成后,是同一个页面,然后这个页面中用的是同一个request并且接收的都是同一个request对象.

 

转载于:https://www.cnblogs.com/qq159357/p/4685457.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值