| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 926 人关注过本帖
标题:今天在网上看到了个问题不解
只看楼主 加入收藏
野蛮女人
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:827
专家分:0
注 册:2007-4-7
结帖率:100%
收藏
 问题点数:0 回复次数:14 
今天在网上看到了个问题不解

望各位大人帮我解惑 小女子感激不尽

JSP中动态INCLUDE与静态INCLUDE的区别?

答:动态INCLUDE用jsp:include动作实现 它总是会检查所含文件中的变化静态INCLUDE用include伪码实现,定不会检查所含文件的变化

甚么叫 检测变化啊

[此贴子已经被作者于2007-5-23 21:41:11编辑过]

搜索更多相关主题的帖子: 检查 检测 include 小女子 网上 
2007-05-23 21:39
野蛮女人
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:827
专家分:0
注 册:2007-4-7
收藏
得分:0 

我自己写了一个测试 发现它都会变化啊
我用Myjsp分别动态调用Myjsp1和静态调用MyJsp2 当我刷新Myjsp的时候时间都会变啊 那还有甚么动态静态之说呢???
想不明白啊
=====MyJsp.jsp======
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>Time change</title>
</head>
<body>
<%@ include file="MyJsp2.jsp" %>
<jsp:include flush="true" page="MyJsp1.jsp"></jsp:include>
</body>
</html>
==============MyJsp1.jsp=====
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<%
long time = System.currentTimeMillis();
%>
<%=time %>
</body>
</html>
=========MyJsp2.jsp======
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<body>
<%
long time = System.currentTimeMillis();
%>
<%=time %>
</body>
</html>


[shadow=255,purple,5]好人不长命,祸害一万年![/shadow]
2007-05-23 22:06
野蛮女人
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:827
专家分:0
注 册:2007-4-7
收藏
得分:0 
检查所含文件中的变化
它这个文件中的变化指的是甚么啊 甚么叫文件中的变化啊

[shadow=255,purple,5]好人不长命,祸害一万年![/shadow]
2007-05-23 22:07
神vLinux飘飄
Rank: 1
等 级:新手上路
威 望:1
帖 子:309
专家分:0
注 册:2007-1-27
收藏
得分:0 

你看看这个就明白了http://blog.sina.com.cn/u/5896bbcd010005qw
解释的很清楚


泛出微微的蓝色的光,像有生命般涌动着,闪烁着,平滑而优美,达到了机械和美学结合的最高境界
2007-05-24 08:58
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
文件中的变化,就是你的文件内容的变化

比如你把JSP2里面的long time = System.currentTimeMillis();改为long time=123456L;

包含 它的MYJSP就不会更新了,依然是执行long time = System.currentTimeMillis();

可惜不是你,陪我到最后
2007-05-24 09:05
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
收藏
得分:0 
简单的说,动态的INCLUDE每次打开页面前都会重新检测被包含页面的内容是否有改动,并重新生成页面.
而静态的INCLUDE除非你清除缓存或重启服务器,否则不会重新生成新页面.

老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2007-05-24 10:00
野蛮女人
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:827
专家分:0
注 册:2007-4-7
收藏
得分:0 
以下是引用千里冰封在2007-5-24 9:05:00的发言:
文件中的变化,就是你的文件内容的变化

比如你把JSP2里面的long time = System.currentTimeMillis();改为long time=123456L;

包含 它的MYJSP就不会更新了,依然是执行long time = System.currentTimeMillis();

我试了会变化啊


[shadow=255,purple,5]好人不长命,祸害一万年![/shadow]
2007-05-24 19:02
野蛮女人
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:827
专家分:0
注 册:2007-4-7
收藏
得分:0 
我把它改成这样它为什么也没问题 我觉得是不是应该报个<%@ page contentType="text/html;charset=UTF-8" %>重复的异常啊!但是运行甚么问题也没有 郁闷啊 搞不明白啊
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
<title>Time change</title>
</head>
<body>
<%@ include file="MyJsp2.jsp" %>
</body>
</html>
======MyJsp2。jsp===
<%@ page contentType="text/html;charset=UTF-8" %>
<%
long time = System.currentTimeMillis();
%>
<%=time %>

[shadow=255,purple,5]好人不长命,祸害一万年![/shadow]
2007-05-24 19:59
野蛮女人
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:827
专家分:0
注 册:2007-4-7
收藏
得分:0 

package org.apache.jsp;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;

public final class MyJsp_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent {

private static java.util.List _jspx_dependants;

static {
_jspx_dependants = new java.util.ArrayList(1);
_jspx_dependants.add("/MyJsp2.jsp");
}

public Object getDependants() {
return _jspx_dependants;
}

public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException {

JspFactory _jspxFactory = null;
PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
JspWriter out = null;
Object page = this;
JspWriter _jspx_out = null;
PageContext _jspx_page_context = null;


try {
_jspxFactory = JspFactory.getDefaultFactory();
response.setContentType("text/html;charset=UTF-8");
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(" <head>\r\n");
out.write(" <title>Time change</title>\r\n");
out.write(" </head>\r\n");
out.write(" <body>\r\n");
out.write(" ");
out.write("\r\n");
out.write(" ");

long time = System.currentTimeMillis();

out.write("\r\n");
out.write(" ");
out.print(time );
out.write("\r\n");
out.write(" ");
out.write("\r\n");
out.write(" ");
out.write("\r\n");
out.write(" </body>\r\n");
out.write("</html>\r\n");
} catch (Throwable t) {
if (!(t instanceof SkipPageException)){
out = _jspx_out;
if (out != null && out.getBufferSize() != 0)
out.clearBuffer();
if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
}
} finally {
if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
}
}
}

所生成的servlet 为什么不是两个response.setContentType("text/html;charset=UTF-8");它不是静态包含吗?


[shadow=255,purple,5]好人不长命,祸害一万年![/shadow]
2007-05-24 20:03
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

JAVA也不至于傻到这种 地步吧


可惜不是你,陪我到最后
2007-05-25 09:49
快速回复:今天在网上看到了个问题不解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033346 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved