在JSP页面上写代码直接生成一个.txt文件

如题所述

在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

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-12-20
jsp生成txt的方法是通过写java的scriptlet来实现的。
在jsp中写入如下代码:
<%
boolean flag=false;
String fileName = "1.txt";
try{
if(!fileName.exists()){
fileName.createNewFile(); //如果不存在就创建1.txt
}
}catch(Exception e){
e.printStackTrace();
}
%>
第2个回答  2013-12-26

给你一段代码参考下,可以直接用的,我已经测试过了


<%@ page contentType="text/html; charset=GB2312"%>
<%@ page language="java" %>
<%@ page import="java.io.*" %>
<HTML><HEAD><TITLE>读写文件</TITLE></HEAD>
<BODY>
<CENTER>
  <FONT SIZE = 5 COLOR = blue>将数据写入文件</FONT>
</CENTER>
<%
  String path = request.getRealPath("."); //取得目录在服务器端的实际位置
  //out.println(path+"<br>");
  File result =new File("result.txt");
  FileWriter fw = new FileWriter(path + result); //建立FileWrite对象,并设定由fw对象变量引用
  
  out.println(path + result);
  //将字串写入文件
  fw.write("大家好!");
  fw.write("祝大家学习jsp愉快!");
  fw.write("希望大家能够深入了解jsp技术!");
  fw.close(); //关闭文件
  FileReader fr = new FileReader(path + result); //建立FileReader对象,并设定由fr对象变量引用
  BufferedReader br = new BufferedReader(fr); //建立BufferedReader对象,并设定由br对象变量引 
  String Line = br.readLine(); //读取一行数据
  out.println(Line + "<BR>"); //输出读取得的数据
  br.close(); //关闭BufferedReader对象
  fr.close(); //关闭文件
%>

相似回答