简单电子资源下载网站实现

本文介绍了作者开发的电子资源下载网站的最新进展,包括添加了用户查看资源信息的功能,网站结构、页面设计,以及如何通过支付宝支付获取源码的流程。
摘要由CSDN通过智能技术生成

1、引言

        前段时间做了一个简单的电子资源下载网站,希望能通过这个网站实现电子资源的变现,但是由于时间的缘故,很多功能都没有实现,特别是用户无法直接查看网站所有资源的信息,这就是个致命的弱点,这两天加上了这个功能,目前已经能查看了,虽然依旧比较简陋,但凑合能用,只能在后期慢慢升级,逐渐将其发展成一个成熟的网站,下面就给大家简单介绍一下。

2、网站介绍

        为了节省成本,我没有选择购买新域名,而是在我原有的一个域名之下,分出了一个二级域名,并将网站和他进行绑定,通过这个二级域名就能访问我的网站,网站地址如下:

http://code.drjtrtj.xyz/

2.1、网站构成

        目前网站只有三个页面,一个主页,一个跳转下载地址的页面,最后就是展示所有下载信息的页面。

2.1.1、主页介绍

        下图是主页在pc端访问的效果:

        下图是主页在移动端访问的效果:

        移动端访问和pc端访问效果都差不多,点击上方更多源码那里就能跳转所有源码信息的展示页面,通过下方的微信二维码就能联系到我,我目前主要提供针对网站的数据的定向爬取操作,不对app进行爬取,因为现在只有对网站爬取数据能做到几乎无视所有反爬操作。

2.1.2、页面代码

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>主页</title>
        <style type="text/css">
            body{
                width: 100%;
                border: 0 solid;
                background: #00bfd9;
            }
            .rl{
                position: relative;
                width: 100%;
                border: 0 solid;
                color: white;
            }
            .ll_center{
                position: absolute;
                width: 100%;
                top: 100px;
                text-align: center;
            }
            .div_content{
                font-size: 2ch;
                margin-top: 10px;
            }
            img{
                width: 200px;
                margin-top: 10px;
            }
        </style>
    </head>
    <body>
        <div class="rl">
            <div class="ll_center">
                <div class="div_content">
                    <a href="http://code.drjtrtj.xyz/page/code/code.jsp">更多源码下载请点击我</a>
                </div>
                <div class="div_content">
                    如需定制源码请扫描下方微信二维码联系
                </div>
                <img src="img/wx.png">
            </div>
        </div>
    </body>
</html>

2.2、下载信息展示页面

        pc端访问效果:

        移动端访问效果:

        移动端访问和pc端访问效果都略有差别,移动端要紧凑一些,这个后面再慢慢修改升级,左边是源码类型,中间是源码描述,右边是下载地址,点击就能跳转到源码下载的获取页面,下面是源码信息展示页面的代码:

<%@ page import="com.pay.maven.utils.code.GetCodeList" %>
<%@ page import="com.pay.maven.data.DownCode" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html lang="zh-cn">
    <head>
        <meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>所有源码下载</title>
        <style type="text/css">
            body{
                width: 100%;
                border: 0 solid;
                background: #00bfd9;
                margin: 0 0 30px 0;
                padding: 0;
                color: black;
                text-align: center;
                font-size: 17px;
            }
            div{
                margin: 50px 0 20px 0;
                font-weight: bold;
                font-size: 25px;
            }
            table{
                width: 100%;
                border: 1px solid red;
                text-align: center;
                color: black;
                border-collapse: collapse;//边框线合在一起
            }
            .start{
                font-weight: bold;
            }
            tr td{
                border: 1px solid red;
            }
            a{
                color: white;
                text-decoration: none;//去除下划线
            }
        </style>
    </head>
    <body>
        <div>
            所有源码下载页面
        </div>
        <table>
            <tr>
                <td class="start">源码类型</td>
                <td class="start">源码描述</td>
                <td class="start">下载地址</td>
            </tr>
            <%
                List<DownCode> list = GetCodeList.queryDownMsg();
                String url;
            %>
            <%
                for (int i = 0; i < list.size(); i++) {
                    url="http://code.drjtrtj.xyz/downCode?id="+list.get(i).getCode_id();
            %>
            <tr>
                <td>Android</td>
                <td><%=list.get(i).getCode_msg()%></td>
                <td>
                    <a href="<%=url%>" target="_blank">点击下载</a>
                </td>
            </tr>
            <%
                }
            %>
        </table>
    </body>
</html>

        里面用到了一个数据库操作的工具类,代码如下:

package com.pay.maven.utils.code;

import com.pay.maven.data.DownCode;
import com.pay.maven.utils.JDBCUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;

/**
 * 获取所有源码信息
 */
public class GetCodeList {
    public static List<DownCode> queryDownMsg(){
        List<DownCode> list=null;
        Connection conn=null;
        try {
            QueryRunner runner=new QueryRunner();
            conn = JDBCUtils.getConnection();
            String sql="SELECT * FROM down_code";
            BeanListHandler<DownCode> handler=new BeanListHandler<>(DownCode.class);
            list=runner.query(conn,sql,handler);
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            JDBCUtils.closeResource(conn,null);
        }
        return list;
    }
}

2.3、源码下载地址获取页面

        pc端访问效果:

        移动端访问效果:

        我的资源下载是需要付费的,但是价格都不高,几乎都在5元以内,支付宝扫码支付成功后等待几秒就会自动跳转到下载地址,由于常规的源码都很小,所以我是把数据放在蓝奏云网盘里面的,跳转的下载地址就是蓝奏云下载地址,直接下载即可,蓝奏云无需登录就能下载。

2.3.1、核心源码展示

        鉴于我这里接入了支付宝支付,所以只能展示核心源码,涉及支付宝密匙之类的私密信息不予以展示,不懂得接入支付宝支付的朋友可以联系我,我这里提供个人接入支付宝支付接口的相关服务,通过我的网站上面展示的微信二维码就能联系到我,核心代码如下:

    protected void doPost(HttpServletRequest request,
                          HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        String order = request.getParameter("order");//根据订单查询url下载地址
        response.setContentType("text/plain; charset=utf-8");//文本类型数据
        response.getWriter().write(queryDownStatus(order));
    }
protected void doGet(HttpServletRequest request,
                         HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        String id = request.getParameter("id");
        if (id.equals("")){
            response.sendError(HttpServletResponse.SC_NOT_FOUND);
        }else {
            int intId=Integer.parseInt(id);//根据id查询下载数据
            DownCode downCode = queryDownMsg(id);
            String format = sdf.format(new Date());
            String url=PayCreate(format,downCode.getCode_account());
            if (!url.equals("")){
                insertDownMsg(format,downCode.getCode_url());
                response.setContentType("text/html; charset=utf-8");//html类型数据
                response.getWriter().write("<!DOCTYPE html>\n" +
                        "<html lang=\"zh-cn\">\n" +
                        "    <head>\n" +
                        "        <meta http-equiv=\"Content-Type\" content=\"text/html\" charset=\"UTF-8\">\n" +
                        "        <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n" +
                        "        <title>源码下载</title>\n" +
                        "        <style type=\"text/css\">\n" +
                        "            body{\n" +
                        "                width: 100%;\n" +
                        "                border: 0 solid;\n" +
                        "                background: #00bfd9;\n" +
                        "            }\n" +
                        "            .rl_march{\n" +
                        "                position: relative;\n" +
                        "                width: 100%;\n" +
                        "                border: 0 solid;\n" +
                        "            }\n" +
                        "            .ll_center{\n" +
                        "                position: absolute;\n" +
                        "                width: 100%;\n" +
                        "                top: 100px;\n" +
                        "                color: blue;\n" +
                        "                margin: 0 0 0 0;\n" +
                        "                padding: 0 0 0 0;\n" +
                        "            }\n" +
                        "            #d_title{\n" +
                        "                font-size: 5ch;\n" +
                        "                color: white;\n" +
                        "            }\n" +
                        "            #d_msg{\n" +
                        "                font-size: 2ch;\n" +
                        "                color: white;\n" +
                        "            }\n" +
                        "            #code{\n" +
                        "                margin: 20px 0 20px 0;\n" +
                        "                width: 220px;\n" +
                        "                padding: 0 0 0 0;\n" +
                        "                background-color: white;\n" +
                        "            }\n" +
                        "            canvas{\n" +
                        "                margin: 20px 20px 20px 20px;\n" +
                        "                padding: 0;\n" +
                        "            }\n" +
                        "            #order{\n" +
                        "                color: #00bfd9;\n" +
                        "                display: none;\n" +
                        "            }\n" +
                        "            .div_content{\n" +
                        "                font-size: 2ch;\n" +
                        "                margin-top: 10px;\n" +
                        "            }\n" +
                        "        </style>\n" +
                        "        <script src=\"../js/jquery-2.2.4.min.js\"></script>\n" +
                        "        <script src=\"../js/jquery.qrcode.js\"></script>\n" +
                        "        <script type=\"text/javascript\" charset=\"UTF-8\">\n" +
                        "            function submit() {\n" +
                        "                var order=document.getElementById('order');\n" +
                        "                var data=order.innerText;\n" +
                        "                if (data.length>0){\n" +
                        "                    $.ajax({\n" +
                        "                        url : \"http://code.drjtrtj.xyz/page/downCode\",\n" +
                        "                        data:{order:data},\n" +
                        "                        method : \"POST\",\n" +
                        "                        success : function(response){\n" +
                        "                            var newContent = response;\n" +
                        "                            if (newContent.length>0){\n" +
                        "                                window.location.href=newContent;\n" +
                        "                            }else {\n" +
                        "                                setTimeout(submit,3000);\n" +
                        "                            }\n" +
                        "                        },\n" +
                        "                        error : function(xhr, status, error) {\n" +
                        "                            console.log(\"Error.\");\n" +
                        "                        }\n" +
                        "                    });\n" +
                        "                }\n" +
                        "            }\n" +
                        "            function CreateCode(url) {\n" +
                        "                url=''+url;\n" +
                        "                $(\"#code\").qrcode({\n" +
                        "                    render: \"canvas\",\n" +
                        "                    width: 180,\n" +
                        "                    height:180,\n" +
                        "                    text: url\n" +
                        "                });\n" +
                        "            }\n" +
                        "            $(function () {\n" +
                        "                CreateCode('" +
                        url +
                        "');\n" +
                        "                // setTimeout(submit,6000);\n" +
                        "            });\n" +
                        "        </script>\n" +
                        "    </head>\n" +
                        "    <body>\n" +
                        "        <div class=\"rl_march\">\n" +
                        "            <div class=\"ll_center\" align=\"center\">\n" +
                        "                <div id=\"d_title\">" +
                        downCode.getCode_msg() +
                        "</div>\n" +
                        "                <div id=\"code\"></div>\n" +
                        "                <div id=\"d_msg\">支付宝扫描上方二维码支付&#xa5;" +
                        downCode.getCode_account() +
                        "后自动跳转源码下载地址</div>\n" +
                        "                <div id=\"order\">" +
                        format +
                        "</div>\n" +
                        "                <div class=\"div_content\">\n" +
                        "                    <a href=\"http://code.drjtrtj.xyz/page/code/code.jsp\">更多源码下载请点击我</a>\n" +
                        "                </div>\n" +
                        "            </div>\n" +
                        "        </div>\n" +
                        "    </body>\n" +
                        "</html>");
            }else {
                response.setContentType("text/plain; charset=utf-8");//html类型数据
                response.getWriter().write("网络卡顿,请刷新页面重新尝试!");
            }
        }
    }
  • 47
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值