jsp显示当前文件夹下文件列表

需求:服务器上有一个文件夹用户可以访问,如页面:http://localhost/demo/data/index.jsp,用户可以访问这个页面,用于读取文件列表,但是无法读取当前页面文件夹下其他内容,不知道文件名,文件名是可变的。

代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*, javax.servlet.*"%>
<html>
<head>
<title>遍历文件目录</title>
<style type="text/css">
ul {
	list-style: none;
}

li {
	float: left;
	margin-left: 20px;
	margin-top: 20px;
}

body {
	text-align: center;
	font-size: 15px;
}

a {
	font-size: 22px;
}

a:link, a:visited {
	color: #06C;
	text-decoration: none;
}

a:hover {
	color: #f00;
}
</style>
<script type="text/javascript"
	src="<%=request.getContextPath()%>/js/jquery/jquery.js"></script>
<script type="text/javascript">
	$(function() {
		var name = $("#names").val();
		$("#data").html("");
		$("#data").append(name)
	});
</script>
</head>
<body>

	<%!StringBuffer result = new StringBuffer();%>

	<%
		String url = request.getRequestURL().toString();
		if (url.endsWith("/")) {
			url = url.substring(0, url.length());
		}
		url = url.substring(url.lastIndexOf("/") + 1);

		String path = request.getRealPath(url);
		File dir = new File(path + "/");
		String[] fileNames = null;
		if (dir.exists()) {
			if (dir.isDirectory()) {
				fileNames = dir.list();
			} else {
				fileNames = dir.getParentFile().list();
			}
		}
		result = new StringBuffer();
		for (String str : fileNames) {
			if (str != null)
				result.append("<li><a href='" + str + "'>" + str + "</a></li>");
		}
	%>
	<div id="main">
		<h1>文件列表</h1>
		<input type="hidden" id="names" value="<%=result%>" />
		<ul id="data"></ul>
	</div>
</body>
</html>

阅读更多

没有更多推荐了,返回首页