转载

在JSP中动态生成并调用JSP程序

下面这个JSP程序,动态生成可一个testDynamicInclude.inc.jsp,然后在后面调用它。

在JSP的动态生成中,注意里面的路径。 "."代表你项目的根目录。

如果你的JSP在test子目录下面,别忘了在path里加上这个路径。

  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>     
  2. <%@page import="java.io.*"%>     
  3. <%     
  4.   // 动态生成jsp文件,然后动态调用     
  5.   String filename = "testDynamicInclude.inc.jsp";     
  6.   String path = application.getRealPath(".");     
  7.   FileWriter fw = new FileWriter(path + "/" + filename);     
  8.   fw.write("<" + "%@ page language=/"java/" contentType=/"text/html; charset=UTF-8/" pageEncoding=/"UTF-8/"%" + ">");     
  9.   fw.write("<" + "%=new java.util.Date()%" + ">");     
  10.   fw.close();     
  11. %>     
  12. <jsp:include page="<%=filename %>" />     
  13. <%     
  14.   // 运行完毕了,可以删除这个文件     
  15.   File f = new File(path+"/"+filename);     
  16.   if (f.exists()) {     
  17.     f.delete();     
  18.   }     
  19. %>    
  20. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 
  21. <%@page import="java.io.*"%> 
  22. <%  
  23.   // 动态生成jsp文件,然后动态调用  
  24.   String filename = "testDynamicInclude.inc.jsp";  
  25.   String path = application.getRealPath(".");  
  26.   FileWriter fw = new FileWriter(path + "/" + filename);  
  27.   fw.write("<" + "%@ page language=/"java/" contentType=/"text/html; charset=UTF-8/" pageEncoding=/"UTF-8/"%" + ">");  
  28.   fw.write("<" + "%=new java.util.Date()%" + ">");  
  29.   fw.close();  
  30. %> 
  31. <jsp:include page="<%=filename %>" /> 
  32. <%  
  33.   // 运行完毕了,可以删除这个文件  
  34.   File f = new File(path+"/"+filename);  
  35.   if (f.exists()) {  
  36.     f.delete();  
  37.   }  
  38. %> 
  39.  

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

JSP动态生成的文件内容如下

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%=new java.util.Date()%> 

正文到此结束
Loading...