JSP 之 动态包含 <jsp:include />

JSP之 动态包含<jsp:include />

 

现在我们来看看JSP 的动态包含指令: <jsp:include />

 

我们新建一个工程TestInclude

然后加入文件:

 

Index.jsp:

 

<%@ page language="java"import="java.util.*" pageEncoding="ISO-8859-1"%>
<html>
  <body>
    <jsp:include page="curDate.jsp?user=ken"/>
    <p>index.jsp'srequest: <%out.println(request);%> </p>
  </body>
</html>


 

curDate.jsp:

<%@ page language="java"import="java.util.*" %>
<p>curDate.jsp: <%=new Date()%></p> <!-- curDate-->
<%= request.getParameter("user") %>
<p>curDate.jsp's request: <%out.println(request);%> </p>


 

查看结果/源代码:

 

 

 

查看Tomcat 工作目录:

 

 

 

查看index_jsp.java文件:

try {
      response.setContentType("text/html;charset=ISO-8859-1");
      pageContext =_jspxFactory.getPageContext(this, request,response,
                null, true, 8192, true);
      _jspx_page_context = pageContext;
      application =pageContext.getServletContext();
      config = pageContext.getServletConfig();
      session = pageContext.getSession();
      out = pageContext.getOut();
      _jspx_out = out;
 
     out.write("\r\n");
      out.write("<html>\r\n");
      out.write(" <body>\r\n");
      out.write("  \t");
      org.apache.jasper.runtime.JspRuntimeLibrary.include(request,response, "curDate.jsp?user=ken", out, false);
      out.write("\r\n");
      out.write(" \t<p>index.jsp's request: ");
out.print(request);
      out.write(" </p>\r\n");
      out.write(" </body>\r\n");
      out.write("</html>\r\n");
    } catch (java.lang.Throwable t) {
 


curDate_jsp.java:

try {
      response.setContentType("text/html");
      pageContext =_jspxFactory.getPageContext(this, request,response,
                null, true, 8192, true);
      _jspx_page_context = pageContext;
      application =pageContext.getServletContext();
      config = pageContext.getServletConfig();
      session = pageContext.getSession();
      out = pageContext.getOut();
      _jspx_out = out;
 
      out.write("\r\n");
      out.write("<p>curDate.jsp: ");
      out.print(new Date());
      out.write("</p> <!-- curDate -->\r\n");
      out.print( request.getParameter("user") );
      out.write("\r\n");
      out.write("<p>curDate.jsp's request: ");
out.print(request);
      out.write(" </p>");
} catch (java.lang.Throwable t) {

 

在index_jsp.java文件中

我们看到的<jsp:include page="curDate.jsp?user=ken"/>实际被编译成以下语句:

 

org.apache.jasper.runtime.JspRuntimeLibrary.include(request,response,"curDate.jsp?user=ken", out, false);

 

这个是动态地将参数 (request, response, "curDate.jsp?user=ken",out, false);传递到curDate_jsp. java里执行,注意这些参数在实际程序中是动态的,所以当执行这个语句时,curDate_jsp.class 返回结果给index_jsp.class,而这个结果是存放在参数中的对象out中的..简单地说就是

curDate.jsp取得参数并计算出结果后,再将结果返回给index.jsp(在运行时动态调用的)

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值