动态生成JSP文件,并调用JSP程序

本文介绍了一个JSP程序如何动态生成另一个JSP文件并立即调用它。通过使用`application.getRealPath`获取项目根目录,并创建一个临时文件进行包含。为避免并发问题,建议采用线程安全的方法来生成文件名。

下面这个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="" />
<%
	// 运行完毕了,可以删除这个文件      
	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()%> 

转载于:https://my.oschina.net/u/3647620/blog/1552454

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值