需求
最近在上web课,老师给了一些jsp样例代码,但是jsp文件不像html文件那样可以双击用浏览器运行,jsp文件必须由服务器解析才可以,所以必须把这些样例jsp文件放在tomcat的webapp目录下,但这又有一个问题,就是必须在地址栏手动输入每个文件的名字,例如:
http://localhost:8080/kejian/ch03_14_application.jsp
所以需求产生了,编写一个index.jsp文件,显示同目录下所有jsp文件,并可点击。
解决方案
- 创建 index.jsp,编写如下内容:
<%@ page language="java" import="java.io.*" pageEncoding="UTF-8"%>
<html>
<head>
<meta content="text/html; charset=UTF-8" />
<title>Web课程代码示例</title>
</head>
<body>
<ul style="font-size:16px;">
<%
String path = application.getRealPath("./");
out.println("<p>文件夹绝对路径:" + path + "</p><br/>");
File f = new File(path);
File[] files = f.listFiles();
if(files.length == 0){
out.println("<p>啥也没有</p><br/>");
return;
}
for(int i=0; i<files.length; i++){
if (files[i].isFile()){
String fname = files[i].getName();
int last_index = fname.lastIndexOf(".");
if(last_index == -1){
continue;
}
String suffix = fname.substring(last_index);
if(suffix.equals(".jsp")){
out.print("<li>");
out.print("<a href='./" + fname + "'>");
out.println(fname);
out.print("</a>");
out.print("</li>");
}
}
}
%>
</ul>
</body>
</html>
- 将 index.jsp 和样例jsp放在同一文件夹内,例如 kejian,然后将kejian放在webapp下。