在jsp页面上使用java对象直接生成txt文件跟直接使用java生成文件是一样的。其实可以考虑用另外的方式完成这个事情,JS同样也可以直接生成文件,利用active插件可以完成你的要求。下面一段代码用做参考,已经测试,可以直接使用,不过由于安全性,很多浏览器都对active做了限制,所以在打开页面前,要确保以下限制打开:
* 1、设置可信任站点(例如本地的可以为:
http://localhost)
* 2、其次:可信任站点安全级别自定义设置中:设置下面的选项
* "对没有标记为安全的ActiveX控件进行初始化和脚本运行"----"启用"
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'CreateTxt.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<script type="text/javascript">
function browseFolder(path) {
try {
var Message = "\u8bf7\u9009\u62e9\u6587\u4ef6\u5939"; //选择框提示信息
var Shell = new ActiveXObject("Shell.Application");
var Folder = Shell.BrowseForFolder(0, Message, 64, 17); //起始目录为:我的电脑
//var Folder = Shell.BrowseForFolder(0,Message,0); //起始目录为:桌面
if (Folder != null) {
Folder = Folder.items(); // 返回 FolderItems 对象
Folder = Folder.item(); // 返回 Folderitem 对象
Folder = Folder.Path; // 返回路径
if (Folder.charAt(Folder.length - 1) != "") {
Folder = Folder + "";
}
document.getElementById(path).value = Folder;
return Folder;
}
}
catch (e) {
alert(e.message);
}
}
function save(){
var path=document.getElementById("path").value;
var fileName=document.getElementById("fileName").value;
var content=document.getElementById("content").value;
if(path==null ||path==undefined){
alert("请选择文件保存路径");
return;
}
var filePath=path+"\\"+fileName+".txt";
alert(filePath);
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fi=fso.CreateTextFile(filePath,true);
fi.Write(content);
fi.close();
}
</script>
<body>
<div>
<p>
<label>文件名</label>
<input type="text" id="fileName" class="fileName" value="文件">
</p>
<p>
<label>内容</label>
<textarea rows="10" cols="20" id="content" name="content">编辑此处</textarea>
</p>
<p>
<input type="text" name="path" id="path"/>
<input type="button" onclick="browseFolder('path')" value="选择存放路径">
</p>
<p>
<button id="save" onclick="save()">保存</button>
</p>
</div>
</body>
</html>
追问用JAVA方式的时候,好像用相对路径保存是不行的?为什么呢?
追答给你一个参考文章,对于这个解释得很好!
http://hi.baidu.com/mefeng47/item/bc8e59737b698a16d1dcb339