项目目录结构为:

此案例提供源代码链接为:https://download.csdn.net/download/weixin_38948287/11253757

一、Bill对象类

package com.swiftpass.entity;public class Bill {private String date;//交易时间private String appId;//公众账号IDprivate String mch_id;//商户号private String thirdMch_id;// 第三方商户号,如微信商户号private String subMch_id;//子商户号private String device_info;//设备号private String platOrderNo;//平台订单号private String thirdOrderNo;//第三方订单号,如微信订单号private String mchOrderNo;//商户订单号private String userId;//用户标识private String type;//交易类型private String status;//交易状态private String bank;//付款银行private String currency;//货币种类private String amount;//总金额private String envelopeAmount;//企业红包金额 代金券金额private String platRefundOrderNo;//平台退款单号 private String mchRefundOrderNo;//商户退款单号    private String refundAmount;//   退款金额   单位:元private String envelopeRefundAmount; // 企业红包退款金额private String refundType;//退款类型private String refundStatu;//退款状态 private String name;//商品名称private String packet;//商户数据包private String poundage;//手续费private String rate;//费率private String termtyp;//终端类型 POS,ERP,SPAY_AND,SPAY_IOS,SPAY_POS,SPAY_PCprivate String billFlag;//对账标识private String storesNo;//门店编号private String mch_name;//商户名称private String cashier;//收银员private String subMch_sid;//子商户ID    private String coupon;//免充值券金额, 订单享受免充值券优惠的金额private String orderAmount; //订单金额,实收金额,   实收金额=订单金额-免充值券金额private String settleAmount; //结算金额,结算金额=实收金额-手续费private String extend2;//扩展字段2,预留字段private String extend3;//扩展字段3,预留字段private String extend4;//扩展字段4,预留字段public String getDate() {return date;}public void setDate(String date) {this.date = date;}public String getAppId() {return appId;}public void setAppId(String appId) {this.appId = appId;}public String getMch_id() {return mch_id;}public void setMch_id(String mch_id) {this.mch_id = mch_id;}public String getSubMch_id() {return subMch_id;}public void setSubMch_id(String subMch_id) {this.subMch_id = subMch_id;}public String getDevice_info() {return device_info;}public void setDevice_info(String device_info) {this.device_info = device_info;}public String getPlatOrderNo() {return platOrderNo;}public void setPlatOrderNo(String platOrderNo) {this.platOrderNo = platOrderNo;}public String getThirdOrderNo() {return thirdOrderNo;}public void setThirdOrderNo(String thirdOrderNo) {this.thirdOrderNo = thirdOrderNo;}public String getMchOrderNo() {return mchOrderNo;}public void setMchOrderNo(String mchOrderNo) {this.mchOrderNo = mchOrderNo;}public String getUserId() {return userId;}public void setUserId(String userId) {this.userId = userId;}public String getType() {return type;}public void setType(String type) {this.type = type;}public String getStatus() {return status;}public void setStatus(String status) {this.status = status;}public String getBank() {return bank;}public void setBank(String bank) {this.bank = bank;}public String getCurrency() {return currency;}public void setCurrency(String currency) {this.currency = currency;}public String getAmount() {return amount;}public void setAmount(String amount) {this.amount = amount;}public String getEnvelopeAmount() {return envelopeAmount;}public void setEnvelopeAmount(String envelopeAmount) {this.envelopeAmount = envelopeAmount;}public String getRefundType() {return refundType;}public void setRefundType(String refundType) {this.refundType = refundType;}public String getRefundStatu() {return refundStatu;}public void setRefundStatu(String refundStatu) {this.refundStatu = refundStatu;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPacket() {return packet;}public void setPacket(String packet) {this.packet = packet;}public String getPoundage() {return poundage;}public void setPoundage(String poundage) {this.poundage = poundage;}public String getRate() {return rate;}public void setRate(String rate) {this.rate = rate;}public String getTermtyp() {return termtyp;}public void setTermtyp(String termtyp) {this.termtyp = termtyp;}public String getBillFlag() {return billFlag;}public void setBillFlag(String billFlag) {this.billFlag = billFlag;}public String getStoresNo() {return storesNo;}public void setStoresNo(String storesNo) {this.storesNo = storesNo;}public String getMch_name() {return mch_name;}public void setMch_name(String mch_name) {this.mch_name = mch_name;}public String getCashier() {return cashier;}public void setCashier(String cashier) {this.cashier = cashier;}public String getSubMch_sid() {return subMch_sid;}public void setSubMch_sid(String subMch_sid) {this.subMch_sid = subMch_sid;}public String getCoupon() {return coupon;}public void setCoupon(String coupon) {this.coupon = coupon;}public String getOrderAmount() {return orderAmount;}public void setOrderAmount(String orderAmount) {this.orderAmount = orderAmount;}public String getSettleAmount() {return settleAmount;}public void setSettleAmount(String settleAmount) {this.settleAmount = settleAmount;}public String getExtend2() {return extend2;}public void setExtend2(String extend2) {this.extend2 = extend2;}public String getExtend3() {return extend3;}public void setExtend3(String extend3) {this.extend3 = extend3;}public String getExtend4() {return extend4;}public void setExtend4(String extend4) {this.extend4 = extend4;}public String getThirdMch_id() {return thirdMch_id;}public void setThirdMch_id(String thirdMch_id) {this.thirdMch_id = thirdMch_id;}public String getPlatRefundOrderNo() {return platRefundOrderNo;}public void setPlatRefundOrderNo(String platRefundOrderNo) {this.platRefundOrderNo = platRefundOrderNo;}public String getMchRefundOrderNo() {return mchRefundOrderNo;}public void setMchRefundOrderNo(String mchRefundOrderNo) {this.mchRefundOrderNo = mchRefundOrderNo;}public String getRefundAmount() {return refundAmount;}public void setRefundAmount(String refundAmount) {this.refundAmount = refundAmount;}public String getEnvelopeRefundAmount() {return envelopeRefundAmount;}public void setEnvelopeRefundAmount(String envelopeRefundAmount) {this.envelopeRefundAmount = envelopeRefundAmount;}public Bill() {super();}public Bill(String date, String appId, String mch_id, String thirdMch_id,String subMch_id, String device_info, String platOrderNo,String thirdOrderNo, String mchOrderNo, String userId, String type,String status, String bank, String currency, String amount,String envelopeAmount, String platRefundOrderNo,String mchRefundOrderNo, String refundAmount,String envelopeRefundAmount, String refundType, String refundStatu,String name, String packet, String poundage, String rate,String termtyp, String billFlag, String storesNo, String mch_name,String cashier, String subMch_sid, String coupon,String orderAmount, String settleAmount, String extend2,String extend3, String extend4) {super();this.date = date;this.appId = appId;this.mch_id = mch_id;this.thirdMch_id = thirdMch_id;this.subMch_id = subMch_id;this.device_info = device_info;this.platOrderNo = platOrderNo;this.thirdOrderNo = thirdOrderNo;this.mchOrderNo = mchOrderNo;this.userId = userId;this.type = type;this.status = status;this.bank = bank;this.currency = currency;this.amount = amount;this.envelopeAmount = envelopeAmount;this.platRefundOrderNo = platRefundOrderNo;this.mchRefundOrderNo = mchRefundOrderNo;this.refundAmount = refundAmount;this.envelopeRefundAmount = envelopeRefundAmount;this.refundType = refundType;this.refundStatu = refundStatu;this.name = name;this.packet = packet;this.poundage = poundage;this.rate = rate;this.termtyp = termtyp;this.billFlag = billFlag;this.storesNo = storesNo;this.mch_name = mch_name;this.cashier = cashier;this.subMch_sid = subMch_sid;this.coupon = coupon;this.orderAmount = orderAmount;this.settleAmount = settleAmount;this.extend2 = extend2;this.extend3 = extend3;this.extend4 = extend4;}@Overridepublic String toString() {return "Bill [date=" + date + ", appId=" + appId + ", mch_id=" + mch_id+ ", thirdMch_id=" + thirdMch_id + ", subMch_id=" + subMch_id+ ", device_info=" + device_info + ", platOrderNo="+ platOrderNo + ", thirdOrderNo=" + thirdOrderNo+ ", mchOrderNo=" + mchOrderNo + ", userId=" + userId+ ", type=" + type + ", status=" + status + ", bank=" + bank+ ", currency=" + currency + ", amount=" + amount+ ", envelopeAmount=" + envelopeAmount + ", platRefundOrderNo="+ platRefundOrderNo + ", mchRefundOrderNo=" + mchRefundOrderNo+ ", refundAmount=" + refundAmount + ", envelopeRefundAmount="+ envelopeRefundAmount + ", refundType=" + refundType+ ", refundStatu=" + refundStatu + ", name=" + name+ ", packet=" + packet + ", poundage=" + poundage + ", rate="+ rate + ", termtyp=" + termtyp + ", billFlag=" + billFlag+ ", storesNo=" + storesNo + ", mch_name=" + mch_name+ ", cashier=" + cashier + ", subMch_sid=" + subMch_sid+ ", coupon=" + coupon + ", orderAmount=" + orderAmount+ ", settleAmount=" + settleAmount + ", extend2=" + extend2+ ", extend3=" + extend3 + ", extend4=" + extend4 + "]";}
}

二、JSP请求后台主方法

package com.swiftpass.action;import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.SortedMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;import com.alibaba.fastjson.JSON;
import com.swiftpass.config.SwiftpassConfig;
import com.swiftpass.entity.Bill;
import com.swiftpass.util.MD5;
import com.swiftpass.util.SignUtil;
import com.swiftpass.util.SignUtils;
import com.swiftpass.util.XmlUtils;
import com.swiftpass.util.AnalyzeBill;/*** <一句话功能简述>* <功能详细描述>下载对账单* * @author  Administrator* @version  [版本号, 2018-2-01]* @see  [相关类/方法]* @since  [产品/模块版本]*/
public class TestBillDownloadServlet extends HttpServlet {private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");resp.setCharacterEncoding("utf-8");List<Bill> listBill=new ArrayList<Bill>();SortedMap<String,String> map = XmlUtils.getParameterMap(req);map.put("mch_id", SwiftpassConfig.mch_id);map.put("nonce_str", String.valueOf(new Date().getTime()));Map<String,String> params = SignUtils.paraFilter(map);StringBuilder buf = new StringBuilder((params.size() +1) * 10);SignUtils.buildPayParams(buf,params,false);String preStr = buf.toString();       String sign_type ="MD5";// map.get("sign_type");map.put("sign", SignUtil.getSign(sign_type, preStr));String reqUrl = "https://download.swiftpass.cn/gateway";System.out.println("reqParams:" + XmlUtils.parseXML(map));CloseableHttpResponse response = null;CloseableHttpClient client = null;String res = null;try {HttpPost httpPost = new HttpPost(reqUrl);StringEntity entityParams = new StringEntity(XmlUtils.parseXML(map),"utf-8");httpPost.setEntity(entityParams);httpPost.setHeader("Content-Type", "text/xml;charset=utf-8");client = HttpClients.createDefault();response = client.execute(httpPost);if(response != null && response.getEntity() != null){res = new String(EntityUtils.toByteArray(response.getEntity()),"utf-8");listBill=AnalyzeBill.analyze(res,"2017-12-28");}else{res = "操作失败!";}} catch (Exception e) {e.printStackTrace();res = "系统异常";} finally {if(response != null){response.close();}if(client != null){client.close();}}/*resp.setContentType("text/html; charset=UTF-8");resp.getWriter().print(res);*//* resp.setContentType("application/json; charset=utf-8");String userJson = JSON.toJSONString(listBill);OutputStream out = resp.getOutputStream();out.write(userJson.getBytes("UTF-8"));out.flush();*/req.setAttribute("listBill", listBill);RequestDispatcher dispatcher = req.getRequestDispatcher("/index-result.jsp");    // 使用req对象获取RequestDispatcher对象try {dispatcher.forward(req, resp);// 使用RequestDispatcher对象在服务器端向目的路径跳转   } catch (Exception e) {e.printStackTrace();}}
}

、解释config配置文件,获取商户号信息

package com.swiftpass.config;import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;/*** <一句话功能简述>* <功能详细描述>配置信息* * @author  Administrator* @version  [版本号, 2018-2-1]* @see  [相关类/方法]* @since  [产品/模块版本]*/
public class SwiftpassConfig {/*** 交易密钥*/public static String key;public static String mchPrivateKey;public static String platPublicKey;/*** 商户号*/public static String mch_id;/*** 请求url*/public static String req_url;/*** 通知url*/public static String notify_url;static{Properties prop = new Properties();   InputStream in = SwiftpassConfig.class.getResourceAsStream("/config.properties");   try {   prop.load(in);   key = prop.getProperty("key").trim();// mchPrivateKey = prop.getProperty("mchPrivateKey").trim();// platPublicKey = prop.getProperty("platPublicKey").trim();mch_id = prop.getProperty("mch_id").trim();   req_url = prop.getProperty("req_url").trim();   notify_url = prop.getProperty("notify_url").trim();   } catch (IOException e) {   e.printStackTrace();   } }
}

四、解释返回数据为bill对象设值

package com.swiftpass.util;import java.util.ArrayList;
import java.util.List;import com.swiftpass.entity.Bill;public class AnalyzeBill {//date 为账单时间 格式 2018-12-25//result  接口返回数据public static List<Bill> analyze(String result ,String date){List<Bill> bills = new ArrayList<Bill>();String tradeMsg = result.substring(result.indexOf("`")); //去标题String tradeInfo = tradeMsg.substring(0, tradeMsg.indexOf("总")).replaceFirst(date, "").replaceAll("`","");;// 去掉汇总数据String[] tradeArray = tradeInfo.split(date); //通过交易时间分隔   订单数for(String trade : tradeArray){String[] order = trade.split(",");Bill bill = new Bill();bill.setDate(date+order[0]); bill.setAppId(order[1]);bill.setThirdMch_id(order[2]);bill.setMch_id(order[3]);bill.setSubMch_id(order[4]);bill.setDevice_info(order[5]);bill.setPlatOrderNo(order[6]);bill.setThirdOrderNo(order[7]);bill.setMchOrderNo(order[8]);bill.setUserId(order[9]);bill.setType(order[10]);bill.setStatus(order[11]);bill.setBank(order[12]);bill.setCurrency(order[13]);bill.setAmount(order[14]);bill.setEnvelopeAmount(order[15]);bill.setPlatRefundOrderNo(order[16]);bill.setMchRefundOrderNo(order[17]);bill.setRefundAmount(order[18]);bill.setEnvelopeRefundAmount(order[19]);bill.setRefundType(order[20]);bill.setRefundStatu(order[21]);bill.setName(order[22]);bill.setPacket(order[23]);bill.setPoundage(order[24]);bill.setRate(order[25]);bill.setTermtyp(order[26]);bill.setBillFlag(order[27]);bill.setStoresNo(order[28]);bill.setMch_name(order[29]);bill.setCashier(order[30]);bill.setSubMch_sid(order[31]);bill.setCoupon(order[32]);bill.setOrderAmount(order[33]);bill.setSettleAmount(order[34]);bill.setExtend2(order[35]);bill.setExtend3(order[36]);bill.setExtend4(order[37]);bills.add(bill);}return bills;}
}

五、WEB.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"><display-name>js_jsp_utf8</display-name><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><servlet><servlet-name>TestBillDownload</servlet-name><servlet-class>com.swiftpass.action.TestBillDownloadServlet</servlet-class></servlet><servlet-mapping><servlet-name>TestBillDownload</servlet-name><url-pattern>/testBillDownload</url-pattern></servlet-mapping>
</web-app>

六、config配置文件

七:请求页面index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title>支付测试页面</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link href="css/index.css" rel="stylesheet" type="text/css"><script type="text/javascript" src="js/jquery-1.4.2.min.js"></script><script type="text/javascript">     function getCurrentDate(){var date = new Date();return date.getFullYear() + '' + formatString(date.getMonth() + 1) + formatString(date.getDay()) + formatString(date.getHours()) + formatString(date.getMinutes()) + formatString(date.getSeconds()); }function formatString(value){if(parseInt(value) < 10){return  0 + '' + value; }return value;}function doSubmit(){var service = $.trim($('input[name=service]').val());if(service == ''){alert('接口类型不能为空');return false;}var bill_date = $.trim($('input[name=bill_date]').val());if(bill_date == ''){alert('账单日期不能为空');   return false; }var bill_type = $.trim($('input[name=bill_type]').val());if(bill_type == ''){alert('账单类型不能为空');return false;}$('form').submit();}</script>
</head>
<body text=#000000 bgColor="#ffffff" leftMargin=0  topMargin=4><div id="main"><div class="cashier-nav"><ol><li class="current">下载对账单测试 </li> </ol></div><form action="testBillDownload" method="post"  target="_blank" id="form"><div id="body" style="clear:left"><dl class="content"><dt class="hideClass">接口类型:</dt><dd class="hideClass"><input name="service" value="pay.bill.merchant" readonly="readonly" maxlength="32"  placeholder="长度32"/><span class="null-star">(长度32)*</span><span></span></dd><dt>账单日期:</dt><dd><span class="null-star"></span><input name="bill_date" value="20171228" maxlength="32" size="30"  placeholder="长度32"/><span class="null-star">(长度8)*</span><span></span></dd><dt>账单类型:</dt><dd><span class="null-star"></span><input name="bill_type" value="ALL" maxlength="127" size="30"  placeholder="长度127"/><span class="null-star">(长度8)*</span><span></span></dd><dd><span class="new-btn-login-sp"><button class="new-btn-login" type="button" onclick="doSubmit()" style="text-align:center;">确 认</button></span></dd></dl></div></form><div id="foot"><ul class="foot-ul"><li><font class="note-help">如果您点击“确认”按钮,即表示您同意该次的执行操作。 </font></li></ul></div></div>
</body>
</html>

八:请求页面index-result.jsp结果展示页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title>支付测试结果页面</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link href="js/bootstrap-3.3.7/css/bootstrap.min.css" rel="stylesheet" type="text/css"><link href="css/index.css" rel="stylesheet" type="text/css"><script type="text/javascript" src="js/jquery-1.4.2.min.js"></script><script type="text/javascript" src="js/bootstrap-3.3.7/js/bootstrap.min.js"></script><script type="text/javascript">function getCurrentDate(){var date = new Date();return date.getFullYear() + '' + formatString(date.getMonth() + 1) + formatString(date.getDay()) + formatString(date.getHours()) + formatString(date.getMinutes()) + formatString(date.getSeconds()); }function formatString(value){if(parseInt(value) < 10){return  0 + '' + value; }return value;}</script>
</head>
<body text=#000000 bgColor="#ffffff" leftMargin=0  topMargin=4><table class="table table-bordered"><thead><tr><th>平台订单号</th><th>收银员</th><th>总金额</th><th>实收金额</th><th>终端类型</th><th>付款银行</th><th>手续费</th><th>费率</th><th>付款日期</th><th>交易状态</th><th>商品名称</th><th>商户名称</th> </tr></thead><tbody><c:forEach var="bill" items="${listBill}" varStatus="status"><tr><td>${bill.platOrderNo}</td><td>${bill.cashier}</td><td>${bill.amount}</td><td>${bill.settleAmount}</td><td>${bill.termtyp}</td><td>${bill.bank}</td><td>${bill.poundage}</td><td>${bill.rate}</td><td>${bill.date}</td><td>${bill.status}</td><td>${bill.name}</td><td>${bill.mch_name}</td></tr></c:forEach>  </tbody>
</table>
</body>
</html>

威富通对账单下载并且解析为对象列表展示相关推荐

  1. 关于威富通的微信扫码支付处理思路和流程

    关于威富通的微信扫码支付处理思路和流程 有个客户需要使用威富通的微信扫码支付,我来给处理下 首选下载官方的文档 https://open.swiftpass.cn/openapi/doc?index_ ...

  2. 威富通科技软件测试笔试题

    刚从高新园回来,记录一下去威富通面试的过程. 26楼,进门登记后,前台小姐姐(穿着我双十一下单的阿迪达斯!...(⊙o⊙)-)会给一份软件测试笔试题.主要内容有: 一.软件测试理论,像什么软件测试流程 ...

  3. SwiftUI之深入解析如何创建列表展示视图和列表如何导航跳转新页面

    一.前言 地标详情页视图已经创建完成,我们需要提供一种方式让用户可以查看完整的地标列表,并且可以查看每一个地标的详情.地标详情页视图的创建,请参考我的博客:SwiftUI之深入解析如何创建和组合视图. ...

  4. python怎么执行程序_小鹅通视频怎么下载?用python实现小鹅通视频下载(二)

    小鹅通视频怎么下载?用python实现小鹅通视频下载(二) 背景 上次分享<小鹅通视频怎么下载?用python实现小鹅通视频下载(一)[1]>后,引来了很多人咨询小鹅通视频怎么下载的问题. ...

  5. python迅雷_迅雷下载链接解析器。

    1.[代码][Python]代码 Python语言: 迅雷下载链接解析器. #!/usr/bin/env python #coding:utf-8 import os import base64 im ...

  6. 对话富通科技CEO赵伟:企业上云潮下 MSP正步入『黄金时代』...

    诸侯混战,百家争鸣. 这本是形容春秋战国时期特殊历史现象的词汇,在富通科技CEO赵伟看来,形容今天的云计算市场一点也不为过.他认为,现在云市场还远没有达到"互异"."互补 ...

  7. vue 仿日历格式对账单下载功能

    本次主要是使用vue+element UI来完成对账单功能的实现,需求是当前时间及之前一天不可点击,大于当前日期置灰不可点击. 模板简陋敬请谅解 - 先上效果图 vue 页面布局方便数据渲染 < ...

  8. 关于Centos使用wget下载: 无法解析主机地址问题

    关于Centos使用wget下载: 无法解析主机地址问题 产生原因 解决方法 产生原因 dns的问题,需要配置dns服务器. 解决方法 执行echo 'nameserver 8.8.8.8'>& ...

  9. MdEditor富文本编辑器下载

    下载地址 MdEditor富文本编辑器下载,MdEditor是一款漂亮的网页编辑器插件.下载是完整的源码,包含各种各样的示例和编辑器调用方法. dd:

  10. 【Hadoop】HDFS操作、数据上传与下载原理解析、高级特性及底层原理

    HDFS操作.数据上传与下载原理解析.高级特性及底层原理 1 HDFS操作 1.1 Web Console网页工具 1.2 命令行 1.2.1 普通的操作命令 1.2.2 管理员命令 1.3 Java ...

最新文章

  1. 【python教程入门学习】Django应用开发框架的优点和缺点!!
  2. android 退出app代码_uniapp退出APP应用(IOS+安卓)
  3. 机器学习能诊断病情,还能预测患者出院后的情况?
  4. 项目管理理论与实践系列文章索引
  5. OpenCV学习笔记(一):Win10(x64)+Qt5.8(MSVC2013)+OpenCV3.1.0配置过程
  6. sort ascend matlab,MATLAB sort函数用法
  7. 新款iPhone SE预购好于预期,新款iPhone SE Plus可能要因此延迟了
  8. Linux环境SOCKET编程1:套接字
  9. 2012.5.4号--关于125k(简易读卡和低频唤醒)
  10. (day 08 - 先序遍历+判断+递归)剑指 Offer 26. 树的子结构
  11. Atitit 词法分析器的设计最佳实践说明attilax总结
  12. 计算机桌面不能显示桌面,笔记本不显示桌面怎么回事_笔记本电脑开机不显示桌面如何处理-win7之家...
  13. 小米无线路由器服务器用户名和密码忘了,小米路由器管理密码忘记了怎么办?...
  14. 有个人在偷偷的爱着你
  15. android:layout_weight=1,Android:LinearLayout布局中Layout_weight的深刻理解
  16. mysql中日期相减_Excel教程:Excel日期问题的小妙招
  17. ES9023音频解码芯片原理及应用简介
  18. cs231n计算机视觉课程笔记
  19. 【python】flask框架
  20. innerText和innerHTML区别

热门文章

  1. 信号、频谱、能量、功率、噪声
  2. Proxyee-down – 百度网盘全平台满速下载神器,还带有IDM的全网嗅探功能!(替代PanDownload)
  3. 电机控制-H 桥电路 控制方式简单解析
  4. iPhone不配Lightning to 3.5mm转换线:试试这几款蓝牙接收器
  5. 【阅读分享】《暗时间》——放弃学习,寸步难行
  6. 地图导航定位二维码如何制作呢?
  7. 跨平台数据库ODB实战4-Person类的聚合查询
  8. div水平垂直居中方法汇总(共六种)
  9. 计算机科学导论课程考试,计算机科学导论教学革新阐述
  10. Cain嗅探工具的基本使用