- 实现设备认证功能鸿蒙示例代码
介绍本示例使用鸿蒙ohos.distributedDeviceManager模块,实现设备间相互认证的能力。实现设备认证功能源码链接效果预览使用说明进入应用会出现是否允许应用发现和连接附近设备的弹窗,点击允许,会获取当前设备的信息并显示在应用首页。点击“搜索周边设备”按钮,会搜索周边未绑定设备,并显示结果。点击“查看已绑定设备”按钮,会以列表形式显示所有可信设备。实现思路发现和连接附近设备弹窗向用
- 鸿蒙OH源码分析——分布式软总线:trans_service模块(2)/会话管理之新会话
彭家大少
嵌入式硬件openHarmony鸿蒙南向harmonyos分布式OpenHarmony嵌入式开发软总线c语言
往期学习笔录:鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~鸿蒙应用开发与鸿蒙系统开发哪个更有前景?嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?记录一场鸿蒙开发岗位面试经历~持续更新中……一、概述trans_service模块基于系统内核提供的socket通信,向authmanager模块提供设备认证通道管理和设备认证数据的
- Spring Boot中的事务管理
Java墨言
程序员springboot服务器后端
快速入门在SpringBoot中,当我们使用了spring-boot-starter-jdbc或spring-boot-starter-data-jpa依赖的时候,框架会自动默认分别注入DataSourceTransactionManager或JpaTransactionManager。所以我们不需要任何额外配置就可以用@Transactional注解进行事务的使用。我们以之前实现的《用sprin
- ORM框架发展历程和MyBatis的核心应用
10年JAVA大数据技术研究者
MyBatismybatisjava
ORM框架的发展历史与MyBatis的高级应用一、ORM框架的发展历程1.JDBC操作1.1JDBC操作的特点最初的时候我们肯定是直接通过jdbc来直接操作数据库的,本地数据库我们有一张t_user表,那么我们的操作流程是//注册JDBC驱动Class.forName("com.mysql.cj.jdbc.Driver");//打开连接conn=DriverManager.getConnectio
- chromedriver自动下载 —— python
(* ̄︶ ̄)(*^▽^*)
python开发语言
#工作实践webdriver自带的ChromeDriverManager().install()方法,对应的驱动地址自从114版本后没有更新了;隔一段时间就需要手动下载驱动,所以写了一个简单的自动更新方法,还有一些不足,勉强够用吧1、查看源码,大致是保存了一个json文件,每次获取driver最后更新版本,并更新到json文件中;然后下载最新的资源并解压到文件夹2、本来想改源码,但是有修改提示,考
- 第十五章:客户端信道管理模块
转调
仿Rabbit消息队列c++消息队列C++
目录第一节:代码实现1-1.Channel类1-2.ChannelManager下期预告:客户端信道管理模块在mq_client目录下实现。第一节:代码实现创建mq_channel.hpp文件,打开并添加以下内容:#ifndef__M_CHANNEL_H__#define__M_CHANNEL_H__#include"muduo/net/TcpConnection.h"#include"muduo
- 解决Android SDK / Android Studio(IntelliJ IDEA)更新不了(被墙)的问题
coder_jo
脚本linuxandroidsdk
昨天更新androidsdk时,发现developer.android.com被墙了,手上也没有代理,再者androidsdkmanager更新有个不太好的地方是,只有一台机更新还好,但如果有多台机要更新,每台机都要重新下载一遍,那效率.....1)先说AndroidSDK单独更新的问题观察了一下日志发现Fetchinghttp://dl-ssl.google.com/android/reposi
- spring security面试题
「已注销」
springjava后端
1、springsecurity所谓的全局上下文是如何实现的?ThreadLocal2、了解springsecurity哪些核心组件,并介绍?AuthenticationManagerBuilder@Configuration@EnableWebSecuritypublicclassWebSecurityConfigextendsWebSecurityConfigurerAdapter{@Over
- 如何在Spring Boot中监控缓存的命中率?
lozhyf
工作面试学习springboot缓存java
在SpringBoot中监控缓存的命中率对于评估缓存的有效性和性能优化至关重要。下面为你详细介绍不同缓存实现下监控缓存命中率的方法。1.使用SpringCache和SimpleCacheManager1.1配置SimpleCacheManagerSimpleCacheManager是Spring提供的一个简单的缓存管理器,适合开发和测试环境。首先,在配置类中配置SimpleCacheManager
- Java设计模式详解:原理、实现与应用场景
懒羊羊敲代码丫
java设计模式开发语言
设计模式是软件工程中解决常见问题的经典方案结晶。本文将深入讲解6种最常用的Java设计模式,通过代码实例解析其实现原理,并探讨适用场景和实际应用价值。一、单例模式(SingletonPattern)结构特点:私有化构造函数静态私有实例变量静态公有获取方法java复制publicclassConfigManager{privatestaticvolatileConfigManagerinstance
- 鸿蒙ArkTs如何实现pdf预览功能?
前言在开发鸿蒙App时,你是否做过pdf预览功能。是否也和我一样碰壁了,来看看我遇到的问题,以及我是如何实现的吧。PDFKit运行示例代码报错therequestedmodule'@hms:officeservice.PdfView'doesnotprovideanexportname'pdfViewManager'whichimportedby'xxxx'真机运行本来以为用真机就能运行了,没想到
- Rocky Linux9下安装Docker和卸载Docker
Hadoop_Liang
dockerdocker容器运维
前提条件安装好RockyLinux9,可参考Vmware下安装RockyLinux9.4安装Docker精简版命令yuminstall-yyum-utilsyum-config-manager--add-repohttps://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyuminstall-ydocker-cesystemctl
- Flink集群架构
流量留
ApacheFlinkFLINKjava运维数据库
在上一章节我们对flink有了一个基本的了解。从它的应用的场景以及它的一些基本的一些核心的一些概念。从本章节开始,我们对flink从它的一个集群的一个架构以及它的一个部署模式着手,去了解flink如何去部署在不同的这样的一个集群的一些资源管理器上面,以及相应的一些原理的一些解析。本节课开始我们了解一下flink的一个集群的一个基本的架构,了解里面核心的一些组件,比如说dropmanager,tas
- 四、spark集群架构
weixin_34411563
大数据开发工具
spark集群架构官方文档:http://spark.apache.org/docs/latest/cluster-overview.html集群架构我们先看这张图这张图把spark架构拆分成了两块内容:1)spark应用程序:即左边的DriverProgram这块;2)spark集群:即右边的ClusterManager和另外两个WorkerNode;这样的结构,我们大概可以猜测一下spark是
- Spark Standalone集群架构
htfenght
sparkspark
北风网spark学习笔记SparkStandalone集群架构SparkStandalone集群集群管理器,clustermanager:Master进程,工作节点:Worker进程搭建了一套Hadoop集群(HDFS+YARN)HDFS:NameNode、DataNode、SecondaryNameNodeYARN:ResourceManager、NodeManagerSpark集群(Spark
- 使用python接入腾讯云DeepSeek
一个水货程序员
python#fastapi使用笔记python腾讯云fastapi
本文主要从提供SSE方式接入DeepSeek,并通过fastapiwebsocket对外提供接入方法。参考文档:腾讯云大模型:https://cloud.tencent.com/document/product/1759/109380fastAPI官网:https://fastapi.tiangolo.com/WebSocketManager提供WebsocketManager对websocket
- NVM管理多个 Nodejs 版本
牧云流
前端node.jsnvm
在前端开发过程中,常常需要切换不同版本的NodeJS运行环境,NVM(NodeVersionManager)是一个用于管理多个Node.js版本的工具。卸载以前的Nodejs,并删除node的安装目录安装nvm下载地址安装到D:\Programs\nvm,选择node安装路径D:\Programs\nodejsnvm-v安装指定的版本的nodejsnvminstall版本号nvminstall10
- RK3568平台(显示篇)显示系统基本概念
嵌入式_笔记
瑞芯微linux
一.显示系统概述linux内核中包含两类图形显示设备驱动框架:FB设备:Framebuffer图形显示框架;DRM:直接渲染管理器(DirectRenderingManager),是linux目前主流的图形显示框架;在实际场景中,具体选择哪一种图形设备驱动框架取决于我们自己的业务需求。Frambebuffer驱动Frambebuffer驱动具有以下特征:直接控制显卡的帧缓冲区,提供基本的显卡输出功
- 从入门到放弃之生产环境基于Kubernetes V1.21.10搭建高可用集群
收破烂的小白
dockerlinuxkubernetes
1.资源规划名称系统配置IP组件k8s-master01CentOS7.94核8G500G存储172.16.97.27kube-apiserverkube-controller-managerkube-scheduleretcdk8s-master02CentOS7.94核8G500G存储172.16.97.28kube-apiserverkube-controller-managerkube-s
- 专题三:简单网络管理协议SNMP
网工老刘
网络
一、SNMP的基本概念与工作原理SNMP主要由管理站(Manager)、代理(Agent)和管理信息库(MIB)三部分组成。管理站是管理进程所在的系统,代理是被管理设备中执行管理任务的进程,而MIB则是一个虚拟的数据库,用于存储被管理设备的各种信息。工作时,管理站通过SNMP协议向代理发送请求,代理从MIB中获取相应信息返回给管理站。SNMP基于UDP;客户端使用161端口接收和发送请求,服务端1
- 有关 idm 在b站不显示浮动下载条
系着秋天的落叶�
idmwindows电脑
在B站无法显示IDM(InternetDownloadManager)的浮动下载条可能是由以下几个原因导致的。以下是一些可能的解决方案:1.检查IDM的浏览器扩展是否安装并启用确保你的浏览器已经正确安装了IDM的扩展程序:Chrome/Edge:在浏览器地址栏输入chrome://extensions/或edge://extensions/,检查IDM扩展是否启用。Firefox:在about:a
- 【Framework系列之Client】LoadManager、ResourceManager介绍
火一线
Framework游戏unity
今天来详细介绍一下LoadManager、ResourceManager。LoadManager和ResourceManager主要负责框架的资源加载和管理,话不多说直接开始。LoadManagerLoadManager主要的功能有:提供资源加载的接口提供资源卸载的接口持有、管理AsyncOperationHandle句柄对象Loader类的创建于调用LoadManager定义了多种加载方式的接口
- Hadoop常用操作命令
hzw0510
hadoop大数据分布式
在NameNode节点格式化集群初始化集群hdfsnamenode-format启动HDFSsbin/start-dfs.sh启动yarnsbin/start-yarn.sh启动NodeManageryarn-daemon.shstartnodemanager启动DataNodehadoop-daemon.shstartdatanode启动SecondaryNameNodehadoop-daemo
- Unity C#静态类和静态对象
Tatalaluola
c#开发语言unity学习游戏引擎
(以下内容主要来源于ChatGPT,仅记录以供复习)静态类:在Unity中,你可以创建一个静态类来包含一些静态方法和静态属性,这些方法和属性可以在整个项目中直接调用,而无需实例化类对象。静态类的实例在整个应用程序中只有一个,而不是只有一个场景。这意味着在同一应用程序的不同场景中,你可以通过静态类来共享数据和功能。如果你重新加载场景(例如使用SceneManager.LoadScene),则静态类的
- hive运维
花泽啸
Hivehive
hive锁相关showlocks;查看锁unlocktable表名;释放锁发现释放不了锁,执行下面sethive.support.concurrency=false;sethive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DummyTxnManager;然后在unlock还是不行的的话:select*fromHIVE_LOCKS;关闭hivese
- 用文件资源管理器定位操作类 - C#小函数类推荐
lzhdim
c#开发语言
/***用文件资源管理器定位操作类AustinLiu刘恒辉ProjectManagerandSoftwareDesignerE-Mail:
[email protected]:http://lzhdim.cnblogs.comDate:2024-01-1515:18:00使用方法例子:OpenInExplorerUtil.OpenFileInExplorer(Application.Executa
- 重启网卡报错:Job for network.service failed because the control process exited with error code. See “syste
千航@abc
linux运维
原因:1.配置的ip地址已经被占用2.配置文件写错了3.有之前的网络缓存解决:1.更换一个不重复的ip地址2.检查配置文件3.删除之前的缓存[root@xxx]#systemctlstopNetworkManager#停止NetworkManager服务[root@xxx]#rm-rf/var/lib/NetworkManager/*#清除缓存[root@xxx]#systemctlstartNe
- 041集——选取若干点生成三角网(CAD—C#二次开发入门)
山水CAD筑梦人
CADC#二次开发c#数据库java
随机生成2000个三维点并生成三角网,效果如下:随机生成20个点,效果如下:附部分代码如下:publicclassNTS三角网{publicstaticintnumPoints=20;[CommandMethod("xx")]publicvoid在NTSdemo(){//获取当前文档和编辑器Documentdoc=Application.DocumentManager.MdiActiveDocum
- Spark on Yarn 多机集群部署
晓夜残歌
spark大数据分布式
SparkonYarn多机集群部署1.规划机器角色服务器IP地址角色Master192.168.1.100NameNode+ResourceManager+SparkMasterWorker1192.168.1.101DataNode+NodeManager+SparkWorkerWorker2192.168.1.102DataNode+NodeManager+SparkWorker2.配置所有机
- node.js的版本管理
浪九天
node.jsnode.js
nvm(NodeVersionManager)适用系统:macOS、Linux,在Windows上也有移植版本nvm-windows。特点:使用广泛,能方便地安装、切换不同版本的Node.js,并且可以同时管理多个版本。安装nvmmacOS和Linux:打开终端,执行以下命令:curl-o-https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/i
- 继之前的线程循环加到窗口中运行
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">