- Java操作MongoDB数据库(连接,增删改查)
Java失业转安卓
数据库javamongodb
连接背景:需使用第三方类库:mongo-java-driver-3.4.2.jar不同的MongoDB需要使用的版本jar不同,根据需要可以自己在官网下载适合自己的版本gson-2.8.8.jar:某些方法需要传入MongoDB所需的Bson对象,可通过Gson,fastjson等方式创建,此处用的Gson1.连接MongoDB数据库:返回值:一个数据库连接对象参数:参数一:String类型的ip
- WEB攻防-Java安全&JNDI&RMI&LDAP&五大不安全组件&RCE执行&不出网
教IT的小强
前端java安全
#知识点:1、Java安全-RCE执行-5大类函数调用2、Java安全-JNDI注入-RMI&LDAP&高版本3、Java安全-不安全组件(框架)-Shiro&FastJson&Jackson&XStream&Log4j一、演示案例-Java安全-RCE执行-5大类函数调用1、GroovyExec.isEmpty()){//检查是否以JSON对象或数组的符号开头if(jsonStr.trim().startsWith("{")||jsonStr.trim().startsWith(
- Java接受参数传递进来的参数名称和自己定义的不一样怎么办?
TTc_
java前端javascript
1.实体类packagecom.wechat.project.reservation.domain.dataset;importcom.alibaba.fastjson.annotation.JSONField;importcom.wechat.project.reservation.domain.Parameters;importlombok.AllArgsConstructor;importl
- SpringBoot-integration 使用MQTT对接大疆机场+无人机 完整示例
若疆赤云online
大疆机场+无人机springboot后端java
参考大疆上云API-大疆上云api是二级路由方案,我这做开发直接使用一级路由满足当前系统要求mqttconfig定义mqtt连接工厂,消息处理通道和路由定义,只监听需要的topicimportcn.hutool.core.util.StrUtil;importcom.alibaba.fastjson.JSONObject;importcom.central.common.utils.CustomT
- Fastjson2 JSONObject 序列化数据不准问题解析
John Song
javapython开发语言
Fastjson2JSONObject序列化数据不准问题解析当使用com.alibaba.fastjson2.JSONObject进行序列化时出现数据不准确的问题,通常是由以下几种情况导致的:常见原因及解决方案1.大整数精度丢失问题表现:longbigNumber=1673723677362319866L;JSONObjectobj=newJSONObject();obj.put("value",
- 你也遇到JSONException:create instance error, null...问题啦?
Angus_bnn
踩坑记postman测试工具json
近期在工作中踩到的坑,返回结果使用Result封装,结果踩了两个FastJson与构造方法的大坑,分享下,注意别踩到相同的坑。1.测试代码创建了Result对象,序列化为JSON字符串将JSON字符串反序列化为Result对象publicstaticvoidmain(String[]args){//创建对象Resultresult=newResult().setRet(-1).setData(nu
- Java8 stream collect用法
java8stream
Java8streamcollect用法importstaticjava.util.stream.Collectors.*;importcom.alibaba.fastjson.JSON;importjava.util.*;importlombok.AllArgsConstructor;importlombok.Builder;importlombok.Data;importlombok.NoAr
- 解析xml转成对象
wahaha..
工具类xmljsonjava
importcom.alibaba.fastjson.JSONObject;importorg.jdom2.Element;importorg.jdom2.JDOMException;importorg.jdom2.input.SAXBuilder;importjava.io.ByteArrayInputStream;importjava.io.IOException;importjava.io.
- Java安全篇-Fastjson漏洞
W3nd4L0v3
JAVA代码安全审计javaweb安全
前言知识:一、json概念:json全称是JavaScriptobjectnotation。即JavaScript对象标记法,使用键值对进行信息的存储。格式:{ "name":"wenda", "age":21,}作用:JSON可以作为一个对象或者字符串存在,前者用于解读JSON中的数据,后者用于通过网络传输JSON数据。这不是一个大事件——JavaScript提供一个
- 漏扫项目篇&Nuclei&Yakit&Goby&Afrog&Xray&Awvs&联动中转被动
我最厉害。,。
安全
市面上有很多漏扫系统工具脚本,课程讲到的基本都是目前主流推荐的优秀项目!Burpsuite,Awvs,Xray,Goby,Afrog,Yakit,Nuclei,Vulmap,Pocassist,Nessus,Pentestkit,Kunyu,Pocsuite3,浏览器各类插件,Burpsuite插件(HaE,ShiroScan,FastJsonScan,Log4j2Scan,Springscan,
- 【HW系列】—Log4j2、Fastjson、Shiro漏洞流量特征
枷锁—sha
蓝队—应急响应网络安全log4jweb安全安全
本文仅用于技术研究,禁止用于非法用途。文章目录Log4j2漏洞的流量特征及检测方法一、基础请求特征二、网络交互特征三、响应与日志特征四、绕过技术特征五、检测与防御建议Fastjson漏洞的流量特征解析一、请求构造特征二、响应行为特征三、攻击载荷特征四、防御与检测建议Shiro漏洞的流量特征及检测方法一、基础请求特征二、响应特征三、工具与绕过特征四、检测与防御建议五、关联漏洞扩展Log4j2漏洞的流
- Fastjson反序列化漏洞原理与防护指南
桑晒.
网络安全web安全json
一、什么是JSON?JSON是一种用来表示数据的文本格式,类似「字典」或「表格」,比如:用途:网络传输数据(比如APP和服务器之间)、存储配置信息等。特点:结构清晰、兼容所有编程语言。二、Fastjson是做什么的?Fastjson是阿里巴巴开发的Java工具库,主要帮我们做两件事:1.序列化:把Java对象(如学生信息)变成JSON字符串。Studentstudent=newStudent("小
- JAVA实现easyExcel模版导出
满天都是银河系
项目技术框架java开发语言excel
easyExcel文档模板注意:用{}来表示你要用的变量,如果本来就有"{“,”}",特殊字符用"{“,”}"代替{}代表普通变量{.}代表是list的变量添加pom依赖com.alibabaeasyexcel2.2.6cn.hutoolhutool-all5.3.1com.alibabafastjson1.2.21第一种:简单模版导出实体类packagecom.example.mybatismy
- 2025年渗透测试面试题总结-匿名[社招]安全工程师(红队方向)2(题目+回答)
独行soc
2025年渗透测试面试指南安全面试职场和发展linux阿里云python渗透测试
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。目录匿名[社招]安全工程师(红队方向)21.简单自我介绍2.做过的项目3.大型内网渗透经验4.BC类渗透经验(合规授权)5.案例细节(Fastjson反序列化)6.注入绕WAF及数据库利用7.MySQL哈希破解替代方案8.XSS绕过HttpOnly策略9.代码开发能力10
- 2025年渗透测试面试题总结-匿名[实习]安全工程师(大厂) (3)(题目+回答)
独行soc
2025年渗透测试面试指南面试职场和发展web安全安全linux渗透测试
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。目录匿名[实习]安全工程师(大厂)(3)一面1.Java内存马原理与利用2.Java内存马查杀3.冰蝎与哥斯拉原理4.实习项目经验5.WAF绕过实战经验6.Webshell免杀原理7.CobaltStrike/MSF免杀8.Fastjson反序列化9.红黑树原理10.Ha
- Java导入包com.alibaba.fastjson2.JSONObject
蔚蓝星辰mic
Javajava开发语言json
com.alibaba.fastjson2.JSONObject是阿里巴巴的fastjson库中的一个类,用于处理JSON数据。这里提供一些常见的使用示例和可能的问题解决方法。解决方案和示例代码:创建JSONObject对象:importcom.alibaba.fastjson2.JSONObject;JSONObjectjsonObject=newJSONObject();jsonObject.
- com.alibaba.fastjson 完整jar包下载
蔡松宽
com.alibaba.fastjson完整jar包下载【下载地址】com.alibaba.fastjson完整jar包下载com.alibaba.fastjson完整jar包下载项目地址:https://gitcode.com/open-source-toolkit/22f5c资源介绍本仓库提供了一个完整的com.alibaba.fastjsonjar包下载,经过亲测,该资源文件完全可用。如果你
- com.alibaba.fastjson2 和com.alibaba.fastjson 区别
Aimyone
Javajava
1,背景最近发生了一件很奇怪的事:我们的服务向第三方发送请求参数时,第三方接收到的字段是首字母大写的AppDtoList,但我们需要的是小写的appDtoList。这套代码是从其他项目A原封不动复制过来的,我们仔细核对了项目A中ApplyReq的字段定义和业务代码,发现两者基本一模一样。然而,项目A传输过去的参数字段首字母是小写的appDtoList,而我们这边传输的却是大写的AppDtoList
- java获取返回的json值_fastjson提取json返回值(java)
斜阳君
java获取返回的json值
接口调用返回的json,要提取后入库到本地。返回json数据:{"data":{"offset":2,"total":2952,"restTotal":2950,"dataList":[{"ISBN":"9787539197456","bookStar":"93.6","tag":"","commentTimes":"1487","price":"58.00","star50Percent":""
- 关于fastjson与fastjson2中toJava操作的区别
Zhangjf_0612
javajson
关于fastjson与fastjson2中toJava操作的区别一、场景二、区别1、前置条件2、对比1.fastjson2.fastjson2三、解决方案一、场景在Java中会有将json转为实体类的需求,其中fastjson是一个常用的选择,今天在升级项目依赖的过程中,将fastjson从1升级到2,出现了转换后缺值的问题,排查到原因后特此记录。二、区别1、前置条件实体类采用驼峰命名法,变量名中
- 关于fastjson与fastjson2中parseObject操作的区别
Zhangjf_0612
javajson
关于fastjson与fastjson2中parseObject操作的区别一、场景二、区别1、前置条件2、对比1.fastjson2.fastjson2三、解决方案一、场景在Java中会有将json转为实体类的需求,其中fastjson是一个常用的选择,今天在升级项目依赖的过程中,将fastjson从1升级到2,出现了转换后值不对的问题,排查到原因后特此记录。二、区别1、前置条件实体类属性是字符串
- 企业微信登录方法
R-sz
企业微信
packagecom.pantech.wecom.controller;importcom.alibaba.fastjson.JSON;importcom.alibaba.nacos.shaded.com.google.gson.Gson;importcom.pantech.base.r.R;importcom.pantech.base.util.StringUtil;importcom.pant
- RestTemplate 发送post请求
agg7911
jsonjava
springboot使用restTemplatepost提交值restTemplatepost值post提交有FormData和Payload两种形式:第一种是formdata形式,在header参数里可以直接看到payload则封装成json格式post过去,获取以后需要再解析成实体。restTemplatepostjson格式使用阿里巴巴的json包com.alibaba.fastjson代码
- 总结下Jackson 中的JsonNode,ObjectNode,ArrayNode的方法
苍煜
jsonjava开发语言
文章目录一、每个类的常用方法提供1.`JsonNode`示例2.`ObjectNode`示例3.`ArrayNode`示例二、完整API方法列表表格(按类分类)第一部分:`JsonNode`的常用方法表格第二部分:`ObjectNode`常用方法表格第三部分:`ArrayNode`常用方法表格系列文章:替换FastJSON:推荐Jackson及详细用法指南(含工具类+替换方案)总结下Jackson
- fastjson详解
吴声子夜歌
第三方工具jsonjavarestfulfastjson
一、fastjson介绍在前后端数据传输交互中,经常会遇到字符串(String)与json,XML等格式相互转换与解析,其中json以跨语言,跨前后端的优点在开发中被频繁使用,基本上可以说是标准的数据交换格式。fastjson是一个java语言编写的高性能且功能完善的JSON库,它采用一种“假定有序快速匹配”的算法,把JSONParse的性能提升到了极致。它的接口简单易用,已经被广泛使用在缓存序列
- 2025年渗透测试面试题总结-某互联网500强甲方红队攻防研究员面试题(题目+回答)
独行soc
2025年渗透测试面试指南职场和发展面试运维linux服务器网络安全渗透测试
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。目录某互联网500强甲方红队攻防研究员面试题1.免杀技术(2025年演进)2.PHP5与PHP7+核心区别与漏洞利用3.Log4j漏洞检测与不出网利用4.Fastjson不出网利用5.Java内存马(2025年隐蔽化)6.APK双向认证绕过7.反序列化漏洞对比8.逻辑漏洞
- 2025年渗透测试面试题总结-某战队红队实习面经(附回答)(题目+回答)
独行soc
2025年渗透测试面试指南学习职场和发展面试运维linux服务器渗透测试
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。目录某战队红队实习面经个人经历与技术能力2.HVV/攻防演练成绩3.上一个工作主要内容4.有意思的逻辑漏洞案例5.自研武器/工具6.CVE/CNVD编号8.钓鱼攻击经历Web安全深度解析1.XSS高级利用4.注入点挖掘技巧7.Fastjson原理10.Shiro550vs
- java 嵌套对象序列化_Java多层对象嵌套的系列化和反系列化
达欣欣
java嵌套对象序列化
Java多层对象嵌套的系列化和反系列化在接口测试的时候,接口参数往往是一个复杂嵌套对象,在数据准备的时候,可以使用序列化方式管理测试数据,参数模板的生成.在直接调用gson,fastjson,jsonlib等等任何一个第三方包,都没有提供这种递归序列化参数的功能,需要我们自己定制实现.OK,donttalktoomuch,justshowuthecode:packagecom.teda.util;
- 继之前的线程循环加到窗口中运行
3213213333332132
javathreadJFrameJPanel
之前写了有关java线程的循环执行和结束,因为想制作成exe文件,想把执行的效果加到窗口上,所以就结合了JFrame和JPanel写了这个程序,这里直接贴出代码,在窗口上运行的效果下面有附图。
package thread;
import java.awt.Graphics;
import java.text.SimpleDateFormat;
import java.util
- linux 常用命令
BlueSkator
linux命令
1.grep
相信这个命令可以说是大家最常用的命令之一了。尤其是查询生产环境的日志,这个命令绝对是必不可少的。
但之前总是习惯于使用 (grep -n 关键字 文件名 )查出关键字以及该关键字所在的行数,然后再用 (sed -n '100,200p' 文件名),去查出该关键字之后的日志内容。
但其实还有更简便的办法,就是用(grep -B n、-A n、-C n 关键
- php heredoc原文档和nowdoc语法
dcj3sjt126com
PHPheredocnowdoc
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Current To-Do List</title>
</head>
<body>
<?
- overflow的属性
周华华
JavaScript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
- 《我所了解的Java》——总体目录
g21121
java
准备用一年左右时间写一个系列的文章《我所了解的Java》,目录及内容会不断完善及调整。
在编写相关内容时难免出现笔误、代码无法执行、名词理解错误等,请大家及时指出,我会第一时间更正。
&n
- [简单]docx4j常用方法小结
53873039oycg
docx
本代码基于docx4j-3.2.0,在office word 2007上测试通过。代码如下:
import java.io.File;
import java.io.FileInputStream;
import ja
- Spring配置学习
云端月影
spring配置
首先来看一个标准的Spring配置文件 applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi=&q
- Java新手入门的30个基本概念三
aijuans
java新手java 入门
17.Java中的每一个类都是从Object类扩展而来的。 18.object类中的equal和toString方法。 equal用于测试一个对象是否同另一个对象相等。 toString返回一个代表该对象的字符串,几乎每一个类都会重载该方法,以便返回当前状态的正确表示.(toString 方法是一个很重要的方法) 19.通用编程:任何类类型的所有值都可以同object类性的变量来代替。
- 《2008 IBM Rational 软件开发高峰论坛会议》小记
antonyup_2006
软件测试敏捷开发项目管理IBM活动
我一直想写些总结,用于交流和备忘,然都没提笔,今以一篇参加活动的感受小记开个头,呵呵!
其实参加《2008 IBM Rational 软件开发高峰论坛会议》是9月4号,那天刚好调休.但接着项目颇为忙,所以今天在中秋佳节的假期里整理了下.
参加这次活动是一个朋友给的一个邀请书,才知道有这样的一个活动,虽然现在项目暂时没用到IBM的解决方案,但觉的参与这样一个活动可以拓宽下视野和相关知识.
- PL/SQL的过程编程,异常,声明变量,PL/SQL块
百合不是茶
PL/SQL的过程编程异常PL/SQL块声明变量
PL/SQL;
过程;
符号;
变量;
PL/SQL块;
输出;
异常;
PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言PL/SQL 是对 SQL 的扩展,sql的执行时每次都要写操作
- Mockito(三)--完整功能介绍
bijian1013
持续集成mockito单元测试
mockito官网:http://code.google.com/p/mockito/,打开documentation可以看到官方最新的文档资料。
一.使用mockito验证行为
//首先要import Mockito
import static org.mockito.Mockito.*;
//mo
- 精通Oracle10编程SQL(8)使用复合数据类型
bijian1013
oracle数据库plsql
/*
*使用复合数据类型
*/
--PL/SQL记录
--定义PL/SQL记录
--自定义PL/SQL记录
DECLARE
TYPE emp_record_type IS RECORD(
name emp.ename%TYPE,
salary emp.sal%TYPE,
dno emp.deptno%TYPE
);
emp_
- 【Linux常用命令一】grep命令
bit1129
Linux常用命令
grep命令格式
grep [option] pattern [file-list]
grep命令用于在指定的文件(一个或者多个,file-list)中查找包含模式串(pattern)的行,[option]用于控制grep命令的查找方式。
pattern可以是普通字符串,也可以是正则表达式,当查找的字符串包含正则表达式字符或者特
- mybatis3入门学习笔记
白糖_
sqlibatisqqjdbc配置管理
MyBatis 的前身就是iBatis,是一个数据持久层(ORM)框架。 MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis对JDBC进行了一次很浅的封装。
以前也学过iBatis,因为MyBatis是iBatis的升级版本,最初以为改动应该不大,实际结果是MyBatis对配置文件进行了一些大的改动,使整个框架更加方便人性化。
- Linux 命令神器:lsof 入门
ronin47
lsof
lsof是系统管理/安全的尤伯工具。我大多数时候用它来从系统获得与网络连接相关的信息,但那只是这个强大而又鲜为人知的应用的第一步。将这个工具称之为lsof真实名副其实,因为它是指“列出打开文件(lists openfiles)”。而有一点要切记,在Unix中一切(包括网络套接口)都是文件。
有趣的是,lsof也是有着最多
- java实现两个大数相加,可能存在溢出。
bylijinnan
java实现
import java.math.BigInteger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class BigIntegerAddition {
/**
* 题目:java实现两个大数相加,可能存在溢出。
* 如123456789 + 987654321
- Kettle学习资料分享,附大神用Kettle的一套流程完成对整个数据库迁移方法
Kai_Ge
Kettle
Kettle学习资料分享
Kettle 3.2 使用说明书
目录
概述..........................................................................................................................................7
1.Kettle 资源库管
- [货币与金融]钢之炼金术士
comsci
金融
自古以来,都有一些人在从事炼金术的工作.........但是很少有成功的
那么随着人类在理论物理和工程物理上面取得的一些突破性进展......
炼金术这个古老
- Toast原来也可以多样化
dai_lm
androidtoast
Style 1: 默认
Toast def = Toast.makeText(this, "default", Toast.LENGTH_SHORT);
def.show();
Style 2: 顶部显示
Toast top = Toast.makeText(this, "top", Toast.LENGTH_SHORT);
t
- java数据计算的几种解决方法3
datamachine
javahadoopibatisr-languer
4、iBatis
简单敏捷因此强大的数据计算层。和Hibernate不同,它鼓励写SQL,所以学习成本最低。同时它用最小的代价实现了计算脚本和JAVA代码的解耦,只用20%的代价就实现了hibernate 80%的功能,没实现的20%是计算脚本和数据库的解耦。
复杂计算环境是它的弱项,比如:分布式计算、复杂计算、非数据
- 向网页中插入透明Flash的方法和技巧
dcj3sjt126com
htmlWebFlash
将
Flash 作品插入网页的时候,我们有时候会需要将它设为透明,有时候我们需要在Flash的背面插入一些漂亮的图片,搭配出漂亮的效果……下面我们介绍一些将Flash插入网页中的一些透明的设置技巧。
一、Swf透明、无坐标控制 首先教大家最简单的插入Flash的代码,透明,无坐标控制: 注意wmode="transparent"是控制Flash是否透明
- ios UICollectionView的使用
dcj3sjt126com
UICollectionView的使用有两种方法,一种是继承UICollectionViewController,这个Controller会自带一个UICollectionView;另外一种是作为一个视图放在普通的UIViewController里面。
个人更喜欢第二种。下面采用第二种方式简单介绍一下UICollectionView的使用。
1.UIViewController实现委托,代码如
- Eos平台java公共逻辑
蕃薯耀
Eos平台java公共逻辑Eos平台java公共逻辑
Eos平台java公共逻辑
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年6月1日 17:20:4
- SpringMVC4零配置--Web上下文配置【MvcConfig】
hanqunfeng
springmvc4
与SpringSecurity的配置类似,spring同样为我们提供了一个实现类WebMvcConfigurationSupport和一个注解@EnableWebMvc以帮助我们减少bean的声明。
applicationContext-MvcConfig.xml
<!-- 启用注解,并定义组件查找规则 ,mvc层只负责扫描@Controller -->
<
- 解决ie和其他浏览器poi下载excel文件名乱码
jackyrong
Excel
使用poi,做传统的excel导出,然后想在浏览器中,让用户选择另存为,保存用户下载的xls文件,这个时候,可能的是在ie下出现乱码(ie,9,10,11),但在firefox,chrome下没乱码,
因此必须综合判断,编写一个工具类:
/**
*
* @Title: pro
- 挥洒泪水的青春
lampcy
编程生活程序员
2015年2月28日,我辞职了,离开了相处一年的触控,转过身--挥洒掉泪水,毅然来到了兄弟连,背负着许多的不解、质疑——”你一个零基础、脑子又不聪明的人,还敢跨行业,选择Unity3D?“,”真是不自量力••••••“,”真是初生牛犊不怕虎•••••“,••••••我只是淡淡一笑,拎着行李----坐上了通向挥洒泪水的青春之地——兄弟连!
这就是我青春的分割线,不后悔,只会去用泪水浇灌——已经来到
- 稳增长之中国股市两点意见-----严控做空,建立涨跌停版停牌重组机制
nannan408
对于股市,我们国家的监管还是有点拼的,但始终拼不过飞流直下的恐慌,为什么呢?
笔者首先支持股市的监管。对于股市越管越荡的现象,笔者认为首先是做空力量超过了股市自身的升力,并且对于跌停停牌重组的快速反应还没建立好,上市公司对于股价下跌没有很好的利好支撑。
我们来看美国和香港是怎么应对股灾的。美国是靠禁止重要股票做空,在
- 动态设置iframe高度(iframe高度自适应)
Rainbow702
JavaScriptiframecontentDocument高度自适应局部刷新
如果需要对画面中的部分区域作局部刷新,大家可能都会想到使用ajax。
但有些情况下,须使用在页面中嵌入一个iframe来作局部刷新。
对于使用iframe的情况,发现有一个问题,就是iframe中的页面的高度可能会很高,但是外面页面并不会被iframe内部页面给撑开,如下面的结构:
<div id="content">
<div id=&quo
- 用Rapael做图表
tntxia
rap
function drawReport(paper,attr,data){
var width = attr.width;
var height = attr.height;
var max = 0;
&nbs
- HTML5 bootstrap2网页兼容(支持IE10以下)
xiaoluode
html5bootstrap
<!DOCTYPE html>
<html>
<head lang="zh-CN">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">