下面这个JSP程序,动态生成可一个testDynamicInclude.inc.jsp,然后在后面调用它。
在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";
JSP动态生成的文件内容如下
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%=new java.util.Date()%>