当前位置: 首页 > 图文教程 > Java技术 > Java Web开发 > JSP动态生成并调用JSP程序

Java Web开发
孙鑫老师原创:XML Schema初窥(二)
Java开源技术:J2EE应用服务器
用java开发Email工具之发送邮件
Java数据库程序中的存储过程设计
JAVA IO 设计模式彻底分析
Java Web开发:Java模式设计之单例模式(一)
Java Web开发:Java模式设计之单例模式(二)
Java Web开发:基于JVM的语言正在开始流行
Java Web开发:Java语言的十大问题,你能解决吗?
Java Web开发:Struts2 中.action和.do的奥秘
Java web:孙鑫老师谈Servlet的线程模型
java Web开发:孙鑫老师谈Session和Cookie的深入研究
Java Web开发:在线人数统计程序
Java Web开发:小编概述JSP技术
Java Web开发:FreeMarker模板使用方法讲解
Java Web开发:Tomcat和IIS的配合
Java Web开发:小编谈JFreeChart统计柱形图表事例
Java Web开发:程序员之家七月份Java Web开发总结
Java Web开发:Tomcat和Apache的配合
Java Web开发:iBATIS延迟加载的那点事

Java Web开发 中的 JSP动态生成并调用JSP程序


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 237 ::
收藏到网摘: n/a

下面这个程序,动态生成可一个
testDynamicInclude.inc.jsp
然后在后面调用它
注意里面的路径。 "."代表你项目的根目录。
如果你的jsp在test子目录下面,别忘了在path里加上这个路径。

 

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>   
<%@page import="java.io.*"%>   
<%   
  // 动态生成jsp文件,然后动态调用   
  String filename = "testDynamicInclude.inc.jsp";   
  String path = application.getRealPath(".");   
  FileWriter fw = new FileWriter(path + "/" + filename);   
  fw.write("<" + "%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%" + ">");   
  fw.write("<" + "%=new java.util.Date()%" + ">");   
  fw.close();   
%>   
<jsp:include page="<%=filename %>" />   
<%   
  // 运行完毕了,可以删除这个文件   
  File f = new File(path+"/"+filename);   
  if (f.exists()) {   
    f.delete();   
  }   
%>  
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.io.*"%>
<%
  // 动态生成jsp文件,然后动态调用
  String filename = "testDynamicInclude.inc.jsp";
  String path = application.getRealPath(".");
  FileWriter fw = new FileWriter(path + "/" + filename);
  fw.write("<" + "%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%" + ">");
  fw.write("<" + "%=new java.util.Date()%" + ">");
  fw.close();
%>
<jsp:include page="<%=filename %>" />
<%
  // 运行完毕了,可以删除这个文件
  File f = new File(path+"/"+filename);
  if (f.exists()) {
    f.delete();
  }
%>

 

警告:正式的应用,一定要根据线程编号生成文件,避免多个线程竞争,比如使用一个递增的序列,或者使用某个不重复的序号发生器
String filename = "testDynamicInclude.inc"+seqNo+".jsp";


生成的文件内容如下
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%=new java.util.Date()%>