zoukankan      html  css  js  c++  java
  • 手动搭建HTTP下载站点

    手动搭建HTTP下载站点

    index.jsp

    <%--Listfile.jsp--%>
    <%@ page import="java.io.File,java.text.SimpleDateFormat,java.util.Calendar"%>
    <%@ page contentType="text/html;charset=GB2312" language="java" %>
    <html>
    <head>
    <title>index</title>
    <style type="text/css">
    body {
        font-size: 9pt;
        background-color: #F0F0F0;
    }
    TABLE {
        background-color: #CCCCCC;
        font-size: 9pt;
    }
    TR {
        color: black;
        height: 22px;
        background-color: white
    }
    TR.header {
        color: #996600;
        height: 22px;
        background-color: #EBEBEB;
        cursor: hand
    }
    </style>
    </head>
    <body>
    <%!
        public void travelDirectory(String directory, JspWriter out) {
            try {
                File dir = new File(directory);
                if (dir.isFile()) // 判断是否是文件,如果是文件则返回。
                    return;
                File[] files = dir.listFiles(); // 列出当前目录下的所有文件和目录
                for (int i = 0; i < files.length; i++) {
                    if (files[i].isDirectory()) {
                        continue;
                    } // 如果是目录,则继续遍历该目录
                    // travelDirectory(files[i].getAbsolutePath(),out);
                    if(files[i].getName().equals("index.jsp")){
                        continue;
                    }
                    String fn = files[i].getName();
                    String fs = files[i].length()/(1024 * 1024) + "M";
                    Calendar cal = Calendar.getInstance();
                    long time = files[i].lastModified();
                    SimpleDateFormat formatter = new SimpleDateFormat(
                            "yyyy-MM-dd HH:mm:ss");
                    cal.setTimeInMillis(time);
                    String ft = formatter.format(cal.getTime());
                    String tr = "<tr><td><a href='" + fn + "' target='_blank'>" + fn + "</a></td>";
                    tr += "<td>" + fs + "</td>";
                    tr += "<td>" + ft + "</td></tr>";
                    out.println(tr); // 输出该目录或者文件的名字
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    %>
    <%
        //将当前web程序目录结构输出到控制台
        String path=pageContext.getServletContext().getRealPath(request.getServletPath());
        String dir=new File(path).getParent(); 
        out.println("<div align='center'>软件下载界面,点击文件名称下载</div><table align='center'>");
        out.println("<tr class='header'><td>文件名称</td><td>大小(M)</td><td>修改时间</td></tr>");
        travelDirectory(dir,out);
        out.println("</table>");
    %>
    </body>
    </html>

    web.xml

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
        <display-name>Welcome to download</display-name>
        <description>
            Welcome to download
        </description>
        <mime-mapping>
            <extension>zip</extension>
            <mime-type>application/zip</mime-type>
        </mime-mapping>
        <mime-mapping>
            <extension>rar</extension>
            <mime-type>application/rar</mime-type>
        </mime-mapping>
        <mime-mapping>
            <extension>exe</extension>
            <mime-type>application/octet-stream</mime-type>
        </mime-mapping>
        <mime-mapping>
            <extension>iso</extension>
            <mime-type>application/octet-stream</mime-type>
        </mime-mapping>
        <mime-mapping>
            <extension>docx</extension>
            <mime-type>application/doc</mime-type>
        </mime-mapping>
        <mime-mapping>
            <extension>doc</extension>
            <mime-type>application/doc</mime-type>
        </mime-mapping>
    </web-app>
  • 相关阅读:
    osgi实战学习之路:8. Service-3之ServiceTracker
    使用Jquery+EasyUI 进行框架项目开发案例解说之二---用户管理源代码分享
    QQ音乐产品经理黄楚雄:产品与用户的情感联系
    AsyncTask简单入门
    晨跑感悟:三快三爽三熬
    【cocos2d-x制作别踩白块儿】第九期:游戏计时功能(附源代码)
    cocos2d3.0 Scale9Sprite
    新的历程-近两个月的工作总结
    基因突变的实例:加拿大无毛猫
    ANTS Performance Profiler 破解使用
  • 原文地址:https://www.cnblogs.com/stono/p/8375737.html
Copyright © 2011-2022 走看看