include的两种形式与介绍

mac2022-06-30  19

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)