What is CT Register

1、电信自注册使用的app

MTK平台默认使用的短信自注册是DeviceRegister

数据域自注册是SelfRegister

客户可以在项目查看到这两个app的源码:

/vendor/mediatek/proprietary/packages/apps/DeviceRegister
/vendor/mediatek/proprietary/packages/apps/SelfRegister

2、若要编译DeviceRegister 和SelfRegister两个app,需要打开对应的宏控

alps/device/mediatek/[project name]/ProjectConfig.mk

MTK_DEVREG_APP=yes

MTK_CT4GREG_APP=yes

3、自注册测试步骤/如何抓取自注册mtklog

(1)进入工程模式*#*#3646633#*#*->Log and Debugging ->MTKLogger -> 按下Start 按钮开始录制log

(2)打开数据业务 (测试数据域自注册,此步骤必做)

支持移动数据连接、wifi 数据连接

优先使用wifi 数据连接

(3)切换工模里自注册为开,步骤是:

Engineer Mode->Hardware Testing->Device Register->Send Auto Register Message

(4)关机

插卡/换卡 开机,等待自注册数据发出(2-5分钟)

(5)停止 mtklog

Note:OP09的项目,第(3)步骤默认已打开

注册过程完全在后台进行,即:无论是发送注册信息,还是接收注册成功确认信息,都不给用户提示。是否注册成功需要分析mtklog来确定。

4、简单分析mtklog

(1)分析短信自注册

主要看main_log  (mtklog\mobilelog\APLog_XXX\main_log),搜索关键字DeviceRegister

//检查工模设置的Send Auto Register Message是否enabled。如果为false,请再次进入工模查看,可能测试时忘记这个步骤了

10-28 20:08:44.573  5190  5190 I DeviceRegister/AgentProxy: Get the switch value = 1

10-28 20:08:44.573  5190  5190 I DeviceRegister/AgentProxy: Feature is enabled? True

//发送自注册短信

10-28 20:10:07.569  5969  6002 D DeviceRegister/RegisterMessage: message: <a1><b1>MTK-MT6735C</b1><b2>00000000</b2><b3>460031279496540</b3><b4>MT6735C.P2</b4></a1>

10-28 20:10:07.572  5969  6002 I DeviceRegister/PlatformManager: Send message. length 101 from slot 0

//发送短信成功!

10-28 20:10:09.681  5969  5969 I DeviceRegister/SmsSendReceiver: Send register message success.

//自注册成功,服务器返回success

10-28 20:10:43.754  5969  5969 I DeviceRegister/PlatformManager: Register success!

10-28 20:10:43.754  5969  5969 I DeviceRegister/AgentProxy: setRegisterFlag true

10-28 20:10:43.811  5969  5969 I DeviceRegister/RegisterService: Register success!

(2)分析数据域自注册

主要看main_log  (mtklog\mobilelog\APLog_XXX\main_log),搜索关键字SelfRegister

//检查网络连接

10-28 20:09:03.803  5488  5889 I SelfRegister/RegisterService: [onAvailable] network 100

//组装JSON

10-28 20:09:53.942  5488  6564 D SelfRegister/RegisterMessage: Generate data: {......}

//将打包后的数据通过 HTTP 协议向自注册管理平台发送

10-28 20:09:53.947  5488  6564 D SelfRegister/Utils: Enter httpSend()...

10-28 20:09:54.530  5488  6564 D SelfRegister/Utils: httpSend(), Status code: 200

//收到自注册管理平台的校验结果

10-28 20:09:54.538  5488  5488 I SelfRegister/Utils: Result code 0, desc Success

10-28 20:09:54.576  5488  5488 D AgentProxy: setSelfRegisterFlag true

10-28 20:09:54.538  5488  5488 I SelfRegister/RegisterService: analyseResponse(), resultCode:0 resultDesc:Success

5、客制化

5.1 How to modify the default value of switch in EngineerMode?

alps/device/mediatek/[project name]/custom.conf

  • SmsRegState = [Default value of switch in EngineerMode]
  • “1” represent the switch is open by default;

“0” or non-existent of “dm.SmsRegState” represent not open by default.

5.2 How to modify the Manufacture and Software version?

The Manufacture and Software version need customized by hand in the following path of source code before build.

  • alps/device/mediatek/[project name]/custom.conf
  • Manufacture = [Manufacture name abbr. for example MTK]
  • SoftwareVersion = [Software version name abbr. for example MTxxxx.P1]

Note that Manufacture name letters count<=3, and the SoftwareVersion name letters count <= 60, or else they will be cut.

Get the customized information such as Manufacture name and SoftwareVersion name. The customized information is writtened in the file”alps/device/mediatek/[project name]/custom.conf”, and the framework provided API for getting it.

CustomProperties.getString(String moduleName, String key, String defaultValue);

• CT定制功能,负责自动向电信指定的服务器发送注册消息。包括短信
自注册和数据域自注册
• 短信自注册与数据域自注册的主要区别

注册信息上报的内容不一样

注册方式不一样。短信自注册是通过短信方式(CS)
数据域自注册通过 http Post方式(PS)
• 主要资料
– 中国电信移动终端需求白皮书 -自注册功能分册
– 中国电信六模终端测试方法- 手机终端实验室分册
• 电信只提供要求和测试规范,自注册功能由MTK实现和维护,不建议
客户擅自修改自注册的代码逻辑

短信自注册(DeviceRegister)

Introduction of DeviceRegister
• 以下条件只要有一个 或多个不满足,则向服务器端发送短信自注册
1. 本机注册标志等于1
2. 手机与用户卡中存储的IMSI一致
3. 手机ESN/MEID 与 用户卡中的ESN/MEID 一致
• 短信自注册信息内容包括以下四点
1. Device Model
2. ESN/MEID
3. IMSI
4. Software Version
• 短信自注册整个过程对手机用户是透明的

Introduction of DeviceRegister
• DeviceRegister的路径:
vendor/mediatek/proprietary/packages/apps/DeviceRegister
• DeviceRegister的编译开关:
alps/device/mediatek/[project name]/ProjectConfig.mk
OPTR_SPEC_SEG_DEF=OP09_SPEC0212_SEGDEFAULT OR
MTK_DEVREG_APP=yes
• 编译后,应用图标界面找不到DeviceRegister的图标。
在settings->Apps->All可以找到该应用

How to test DeviceRegister
• 写入MEID
• 进入工程模式*#*#3646633#*#*->Log and Debugging ->MTKLogger -> 按
Start 按钮开始录制log
• 切换工模里短信自注册为开(OP09项目,该项默认打开)

检查结果
– adb shell cat data/nvram/dm/register_flag
(1说明成功)
– main_log -- “DeviceRegister/RegisterService: Register success!”

DeviceRegister Key log

10-28 20:08:44.559 5190 5190 D DeviceRegister/RegisterReceiver: onReceive Intent
{ act=android.intent.action.BOOT_COMPLETED flg=0x8000010
cmp=com.mediatek.deviceregister/.RegisterReceiver (has extras) }
• 10-28 20:08:44.573 5190 5190 I DeviceRegister/AgentProxy: Get the switch value = 1
• 10-28 20:08:44.573 5190 5190 I DeviceRegister/AgentProxy: Feature is enabled? True
• 10-28 20:09:07.458 5969 5995 V DeviceRegister/RegisterService: needRegister
• 10-28 20:10:07.557 5969 6002 D DeviceRegister/RegisterMessage: getRegisterMessage
• 10-28 20:10:07.569 5969 终端型号
           6002 D DeviceRegister/RegisterMessage: message:
          MEID
IMSI
<a1><b1>MTK-MT6735C</b1><b2>00000000</b2><b3>460031279496540</b3>
<b4>MT6735C.P2</b4></a1>

DeviceRegister Key log
mainlog搜索DeviceRegister 检查短信自注册情况
• 10-28 20:10:09.681 5969 5969 I DeviceRegister/SmsSendReceiver: onReceive Intent
{ act=com.mediatek.deviceregister.MESSAGE_SEND flg=0x10 (has extras) }
• 10-28 20:10:09.681 5969 5969 I DeviceRegister/SmsSendReceiver: Send register message
success.
• 10-28 20:10:09.923 5969 6568 I DeviceRegister/PlatformManager: write pESN 8099E473 to
uim.
• 10-28 20:10:43.753 5969 5969 I DeviceRegister/PlatformManager: message originating
address:10659401
• 10-28 20:10:43.754 5969 5969 I DeviceRegister/PlatformManager: message user data:0104
• 10-28 20:10:43.754 5969 5969 I DeviceRegister/PlatformManager: Register success!
• 10-28 20:10:43.754 5969 5969 I DeviceRegister/AgentProxy: setRegisterFlag true
radiolog查看SMS发送的AT命令
• 10-28 20:10:07.790 1235 1245 D C2K_RIL : <fd 25> AT > AT+CMGS="0",
如果发送失败,
"00000210020406020699652840060100086e000320001001670328101ac801e30989f1e311
返回HCMGSF
89f26aa2596a6aa1b1b999aa19e17b1189f1e31191f18181818181818181e17b1191f1e31199f
1a1b18181998991b9c9a1c9b1a9a181

数据域自注册(SelfRegister)

Introduction of SelfRegister
• 终端与用户卡配对关系发生改变时,主动向自注册管理平台上报终端
和用户卡基本信息的过程。移动终端利用分组数据域通道(Http Post
Json方式)向自注册管理平台发送自注册数据包实现自注册功能的需
求。

introduction of SelfRegister
• 何时发起数据域自注册
1. 刷机、升级、恢复出厂设置之后第一次插卡开机自注册
2. 双卡终端换卡后开机自注册可以参考下表

  卡2有变化 卡2无变化
卡1有变化 注册 注册
卡1无变化 注册 不注册

3不插卡或漫游时不发生自注册
4开机自注册失败间隔一小时重试,最多重试10次

• 调试
– 调整手机时间,提前让一小时后的alarm生效
note:卡1和卡2交换卡槽,不发起自注册
数据连接在非CT卡,不发起自注册

Introduction of SelfRegister
• SelfRegister的路径:
vendor/mediatek/proprietary/packages/apps/SelfRegister
• SelfRegister的编译开关:
alps/device/mediatek/[project name]/ProjectConfig.mk
MTK_CT4GREG_APP==yes OR
OPTR_SPEC_SEG_DEF== OP09_SPEC0212_SEGDEFAULT
• 编译后,应用图标界面找不到SelfRegister的图标。
在settings->Apps->All可以找到该应用

How to test SelfRegister
• 写入MEID
• 不插卡开机,进工程模式*#*#3646633#*#*->Log and Debugging
->MTKLogger -> 按下图红色Start 按钮开始录制log
• 切换工模里数据域自注册为开
• 打开数据连接 or WIFI
• 插卡开机,等待短信自注册信息发出
• 检查结果
– adb shell cat data/nvram/dm/self_reg_flag
(1说明成功)
– main_log -- “SelfRegister/RegisterService: analyseResponse(), resultCode:0
resultDesc:Success”

SelfRegister Key log
• 10-28 20:08:53.056 5488 5488 D SelfRegister/RegisterReceiver: Action:
   android.intent.action.BOOT_COMPLETED
• 10-28 20:08:57.347 5488 5488 D SelfRegister/RegisterReceiver: Action:
   android.intent.action.ACTION_SUBINFO_RECORD_UPDATED
• 10-28 20:09:53.778 5488 5488 V SelfRegister/RegisterService: Enter needRegister()...
• 10-28 20:09:53.864 5488 5488 I SelfRegister/RegisterService: [isNetworkTypeValid]
   network valid
• 10-28 20:09:53.942 5488 6564 D SelfRegister/RegisterMessage: Generate data:
   {"REGVER":"1.0","MEID":"A0000100001000","MODELSMS":"MTK-
  MT6735C","SWVER":"MT6735C.P2","UETYPE":1,"MACID":"00:00:00:00:00:00","OSVE
 R":"android5.1","HWVER":"8G","IMEI1":"","IMEI2":"","SIM1CDMAIMSI":"46003127949
6540","SIM1ICCID":"89861114257552219329","SIM1LTEIMSI":"460110418622949","SIM
1TYPE":2,"SID":13844,"NID":2,"BASEID":11281,"SIM2IMSI":"460077120685773"}
• 10-28 20:09:53.947 5488 6564 D SelfRegister/Utils: Enter httpSend()...
• 10-28 20:09:54.538 5488 5488 I SelfRegister/RegisterService: analyseResponse(),
   resultCode:0 resultDesc:Success

Eservice Analysis
• Server问题 : ALPS03221826



03-27 16:55:01.849930 3879 3879 I DeviceRegister_SmsSendReceiver: onReceive Intent
{ act=com.mediatek.deviceregister.MESSAGE_SEND flg=0x10 (has extras) }
03-27 16:55:01.850052 3879 3879 I DeviceRegister_SmsSendReceiver: get result code:-1
03-27 16:55:01.850097 3879 3879 I DeviceRegister_SmsSendReceiver: Send register message
success.
根据规范要求,server接收到自注册信息后,应该立即返回自注册结果。AT命令为 CMTI
但是radiolog并没有发现接收任何信息(搜索CMTI )
而且mainlog也不会打印DeviceRegister-RegisterService: Register success
正常情况下,server收到自注册信息之后,有返回带一个status告知手机自注册是否成功



04-18 11:08:07.298502 4200 4200 I DeviceRegister_PlatformManager: message originating
address:10659401
04-18 11:08:07.299053 4200 4200 I DeviceRegister_PlatformManager: message user
data:0104
04-18 11:08:07.299131 4200 4200 I DeviceRegister_PlatformManager: Register success!
结论:可以判断为电信自注册服务器的问题。请换个时间和地点测试,咨询电信负责人是
否该时段server有问题

Eservice Analysis
• Server问题 : ALPS03221773

03-29 14:41:47.267691 3735 3735 D SelfRegister_RegisterMessage: Generate data:
{“REGVER”:“4.0......
• 03-29 14:41:47.268884 3735 4619 D SelfRegister_Utils: Enter httpSend()...
• 03-29 14:41:47.271589 3735 4619 D SelfRegister_Utils: httpSend(), ===Before execute()
• 03-29 14:41:54.564756 3735 4619 D SelfRegister_Utils: httpSend(), ===After execute()
• 03-29 14:41:54.564805 3735 4619 D SelfRegister_Utils: httpSend(), Status code: 500
• 03-29 14:41:54.565553 3735 3735 E SelfRegister_Utils: checkRegisterResult(), response is
null!
• 03-29 14:41:54.565612 3735 3735 E SelfRegister_RegisterService: Register fail!
以上是测试机的log,服务器偶现返回Status code: 500,正常应该返回200,正常log如下:
• 03-29 14:49:39.787344 4057 4734 D SelfRegister_Utils: httpSend(), Status code: 200
• 03-29 14:49:39.791800 4057 4057 I SelfRegister_Utils: Result code 0, desc Success
• 03-29 14:49:39.791898 4057 4057 I SelfRegister_RegisterService: analyseResponse(),
resultCode:0 resultDesc:Success
结论: 每次手机都有成功发送注册信息给server,但是server有时返回200,有时返回500,
不稳定。偶尔出现的server故障,更换时间点再次测试

Eservice Analysis
• 无效log
– Project错误
– 提交错误的log
– log信息不全,如没有开机log、缺少modem log
• 改进方向
– Log和描述的问题相符,包含开机和发生问题
– 提交完整的mtklog
– 如case描述和操作步骤较复杂,请提供截屏或者操作视频
– 请先自查:mtklog\mobilelog\APLog_201*_****_****\main_log_*,
搜索DeviceRegister 以及 SelfRegister有app运行信息
• 如:开机广播 onReceive Intent { act=android.intent.action.BOOT_COMPLETED

Eservice Analysis
• Log解读: ALPS03167939 查询main log ,发现发起了2次短信自注册


分析mainlog,可以看到发了2次。因为第一次发的短信自注册失败,所以才会发第二次,
这是正常情况
02-20 12:05:12.959339 2010 2010 I DeviceRegister/SmsSendReceiver: get result code:1
02-20 12:05:12.959372 2010 2010 I DeviceRegister/SmsSendReceiver: Send register
message failed.
02-20 12:05:12.959513 2010 2010 I DeviceRegister/RegisterService: Have tried 0 times
02-20 12:06:14.644522 2010 2010 I DeviceRegister/SmsSendReceiver: get result code:-1
02-20 12:06:14.644660 2010 2010 I DeviceRegister/SmsSendReceiver: Send register
message success.
02-20 12:07:09.695185 2010 2010 I DeviceRegister/PlatformManager: Check register result
Intent { act=android.telephony.sms.CDMA_REG_SMS_ACTION flg=0x10
cmp=com.mediatek.deviceregister/.RegisterService (has extras) }
02-20 12:07:09.699665 2010 2010 I DeviceRegister/PlatformManager: message originating
address:1065940102-20 12:07:09.699712 2010 2010 I DeviceRegister/PlatformManager:
message user data:010402-20 12:07:09.699735 2010 2010 I
DeviceRegister/PlatformManager: Register success!
发送失败有三次retry机会,如果retry3次也发送不成功,请提交eservice. 但目前这份log可以
看到发送成功,而且server也返回ok, 贵司判断是正常现象,可不必提交eservice.

Eservice Analysis
Case问题 (5个)
• ALPS03221731 非测试场景:热插拔
• ALPS03265709、ALPS03265831 数据链接在非CT卡上,不需要进行数据
域自注册
• ALPS03239648 短信自注册IMSI, 为CDMA IMSI (46003 **********)
非LTE IMSI (46011**********)
• ALPS03259431 ABA场景
1. A测试机插入电信4G卡》2. 电信4G卡再插入B测试机》3. 电信4G卡
再插入A测试机
步骤3:短信自注册再次注册,数据域自注册不需要
建议:如果有质疑自注册app的逻辑和行为、认为上报的内容不准确的
情况,贵司可以先研读《中国电信移动终端需求白皮书 -自注册功能
分册》和《中国电信六模终端测试方法- 手机终端实验室分册》,若
还有疑问,请提交eservice,并且附上相关文献内容或截图以及mtklog.

Eservice Analysis
Datasharping问题 ALPS03267520

分析mainlog,搜索SelfRegister,找到以下log, 发送自注册消息时报错
04-27 15:17:58.395936 3834 4362 D SelfRegister_Utils: Enter httpSend()...
04-27 15:17:58.400044 3834 4362 D SelfRegister_Utils: httpSend(), ===Before execute()
04-27 15:18:38.474287 3834 4362 E SelfRegister_Utils: IOException in httpSend()!
04-27 15:18:38.474457 3834 4362 W System.err: java.net.UnknownHostException: Unable
to resolve host "zzhc.vnet.cn": No address associated with hostname
04-27 15:18:38.474858 3834 4362 W System.err: at
java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:125)
04-27 15:18:38.474914 3834 4362 W System.err: at
java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:74)
04-27 15:18:38.474978 3834 4362 W System.err: at
java.net.InetAddress.getAllByName(InetAddress.java:757)
04-27 15:18:38.478850 3834 3834 E SelfRegister_Utils: checkRegisterResult(), response is
null!04-27 15:18:38.478934 3834 3834 E SelfRegister_RegisterService: Register fail!
这初步看起来像是server有问题,找不到zzhc.vnet.cn对应的server ip. 但不能急于下结论。还
要分析netlog确认情况。

15:22:00 看到有DNS Query,并且返回了结果42.99.2.15 (这就是数据与自注册的server   ip,与对比机的一致。说明域名以及DNS query结果没有问题)
  再搜索ip.addr==42.99.2.15 没有任何数据交互了

Eservice Analysis
• 注意时间关系。15:17:58 selfregister发出request请求,15:18:38 unknownHostException
实际上在15:22:00 做DNS Query,等有返回的时候,selfregister早就判断该次失败了

从M开始,很多版本开启了Datashaping功能,灭屏后禁止使用数据,以节省功耗。
Mainlog搜索ACTION_SCREEN_OFF 和 DataShapingService 找到以下trace
04-26 21:17:24.253593 1562 1748 D vol.VolumeDialogControl: onReceive
ACTION_SCREEN_OFF //灭屏
04-26 21:17:47.645887 1202 1521 D DataShapingService: [setCurrentState]: set to
STATE_CLOSE
//进入datashaping, 数据暂时关闭。
04-26 21:18:46.059723 1202 1521 D DataShapingService: [setCurrentState]: set to
STATE_OPEN_LOCKED //停止datashaping之后queue的包才会陆续发出去
再搜索ip.addr==42.99.2.15 没有任何数据交互了
• 解决方案:
Step1: 修改DataShapingServiceImpl.java 的openLteDataUpLinkGate 方法
Step2:修改selfregister/RegisterService.java, 调用openLteDataUpLinkGate 方法,让其在数据
域自注册时,不要做datashaping

CR提交规范
• 关于CMCC和CT入库,提交eservice时,请注意
• 1.Title 正确标注
– 正式入库: [CMCC Official 第x轮入库] or[CT Official 第x轮入库]
– 自测试或预测试: [CMCC Pre-test] or [CT Pre-test]
• 2.Title 需正确标记模块信息,如[VoLTE NV-IOT] 、 [TDL外场] 、[TDS RRM
一致性] 等等,若跟仪表相关(Anite/R&S....),请附上仪表信息
• 3.CR描述请写明测试案例对应的编号(例如TC-SIXMLAB-10101)以及关键测
试步骤
• 4.需要附上完整的Log信息,用FEX上传,或是直接附到CQ Web eservcie
的Attach里
• CMCC、CU和CT都有自注册(或DM)功能,还请注意区分project

basic knowledge
– UIM - User Identity Model
• A kind of smart card applied by CDMA phone
– ESN - Electronic Serial Numbers
• Mainly used with CDMA phones, like IMEI for GSM
• 4位,容量有限,2008年耗尽,被MEID取代
– MEID - Mobile Equipment Identifier
• Globally unique number identifying a mobile equipment
• 14位,取代ESN。TIA 分配管理的, 每1M $8000
– pESN - Pseudo ESN
• 4位,伪ESN ,用于后向兼容操作
• 0x80 + last 24 bits SHA-1(MEID)
– IMSI:国际移动用户识别码(IMSI:International Mobile
Subscriber Identification Number)是区别移动用户的标志,储
存在SIM卡中,可用于区别移动用户的有效信息

basic knowledge
– ICCID - Integrate circuit card identity
• 固化在手机SIM卡中,为IC卡的唯一识别号码。20位数字组成
– SID - System ID
• CDMA网络的系统识别码
– NID - Network ID
• CDMA网络的网络识别码
– Base ID - Base station ID
• CDMA基站的ID

FAQ1
Q1:How to modify the default value of switch in EngineerMode?
A1: DeviceRegister 修改
alps/device/mediatek/[project name]/custom.conf
• dm.SmsRegState = [Default value of switch in EngineerMode]
• “1” represent the switch is open by default;
• “0” or non-existent of “dm.SmsRegState” represent not open by default.
SelfRegister 修改
frameworks/base/packages/SettingsProvider/res/values/mtk_defaults.xml
– 修改下图这个值,6是on , 2是off。

FAQ2
Q2: How to Customize Manufacture and Software
A2:The Manufacture and Software version need customized by hand in the
following path of source code before build.
• alps/device/mediatek/[project name]/custom.conf
• dm.Manufacture = [Manufacture name abbr. for example MTK]
• dm.SoftwareVersion = [Software version name abbr. for example
MTxxxx.P1]
• Note that Manufacture name letters count<=3, and the SoftwareVersion
name letters count <= 60, or else they will be cut.
– Get the customized information such as Manufacture name and
SoftwareVersion name. The customized information is writtened in the
file”alps/device/mediatek/[project name]/custom.conf”, and the framework
provided API for get it.
• CustomProperties.getString(String moduleName, String key, String
defaultValue);

自注册DM(六)中国电信自注册 CT Register 介绍和常见问题相关推荐

  1. 《深入理解 Spring Cloud 与微服务构建》第六章 服务注册和发现 Eureka

    <深入理解 Spring Cloud 与微服务构建>第六章 服务注册和发现 Eureka 文章目录 <深入理解 Spring Cloud 与微服务构建>第六章 服务注册和发现 ...

  2. 自注册DM(二)CMCC移动DM FAQ

    适配平台地址:https://test.fxltsbl.com/ Q1w2e3 问题0:总体概述.厂商如何使用SDK.DM的实现原理是什么.找不到DmykAbsTelephonyManager类? 答 ...

  3. 现在如何注册台服服务器,《英雄联盟手游》台服账号注册教程 台服拳头账号注册步骤图解...

    lol手游台服账号怎么注册?台服现在已经公测了,国服的玩家在也不用去其他地区服务器进行体验了,在中文大区内进行对局,体验起来的感觉绝对会比其他地方要好很多,不过目前很多小伙伴还没有账号.下面就为大家带 ...

  4. java用servlet实现登录注册_Servlet-实现用户的注册功能

    1.上一篇已经实现了与数据库的连接测试,这一次就实现对用户基本信息的注册功能,,,,,,本次整体构架如下图所示: 2.第一步,创建一个实体类User.java,实现对用户基本信息的封装,如下图所示: ...

  5. java 判断ocx是否存在_OCX控件的注册卸载,以及判断是否注册

    方法一:在dos或Windows命令行下运行:regsvr32 ocxname.ocx 注册 示例: regsvr32 netshare.ocx     //注册netshare.ocx控件 regs ...

  6. cn域名注册十元_新手注册域名的一般流程是什么?个人申请域名流程要知道哪些?...

    新手注册域名的一般流程是什么?个人申请域名流程要知道哪些?很多人想要注册域名,但碍于域名注册流程不是很懂,从而错失搭建自己网站的机会:很多企业都会有自己的官方网站来展示自己的公司形象,那么建立网站就需 ...

  7. Eclipse自动注册Servlet:web.xml注册和@Servlet注解 实现注册

    在创建Javaweb项目中要会用到大量的Servlet类,若一一手动注册会很繁琐,此时我们就得想办法实现web.xml自动注册了. Servlet自动注册的两种方法: 1.web.xml自动注册 2. ...

  8. 阻止计算机访问注册表,电脑怎么样防止注册表被强行的篡改,保护电脑安全

    电脑最让人非常厌烦.其实这是因为系统中注册表的某些键值被强行的篡改了,为了防止出现这种情况,我们可以直接锁定系统注册表,禁用了注册表的访问后,就可以有效阻止对系统程序的修改,保护我们的电脑. 今天小编 ...

  9. 计算机用户的注册表,计算机上的注册表在哪里

    注册表在哪里: 计算机中的注册表在哪里?疯狂代码?: http://CrazyCoder.cn/DeveloperUtil/Article31113.html"开始"→" ...

最新文章

  1. OC基础第四讲--字符串、数组、字典、集合的常用方法
  2. 【微软亚洲研究院MSRA】招聘多模态方向算法实习生
  3. iptables加载顺序问题及优化方法
  4. 莆田考计算机二级的学校,二级计算机考试——我的经历,我的感受!
  5. 第27章:MongoDB-索引--唯一索引
  6. 3.MNIST数据集分类
  7. android软件音量控制
  8. 2寸的照片长宽各是多少_1寸和2寸的照片的长和宽各是几厘米?
  9. sumif 根据条件求和
  10. SCI论文全攻略之构思与撰文(二)
  11. java 成员变量什么时候初始化_Java中成员变量的初始化过程
  12. RabbitMQ 工作模式二
  13. Springboot 注解最全详解
  14. 如何将revit的内建模型导出使用?项目族管理功能介绍
  15. 【线性代数】正交向量与正交子空间
  16. ZFS文件系统(8) -- SLOG
  17. 十三不香了?iPhone 14配置完全曝光:外观性能全面升级
  18. c语言字母杨辉三角,用C语言编写杨辉三角(示例代码)
  19. 购买老域名,利用桔子seo来查找域名的历史快照信息
  20. 华为FreeBuds 3、3i、FreeLace耳机无法连接配对苹果?

热门文章

  1. 凌科芯安公司LKT全系列嵌入式加密IC
  2. 【初识C++】细说类与对象 (上)
  3. 这可能就是你苦苦寻找开源、高颜值、功能强大的 Markdown 编辑器(共5款)
  4. Android中FTP上传图片
  5. selenium 程序执行完之后,Chrome闪退的解决方法
  6. 离岸开发篇外---从老罗和王自如辩论过程看起--谈谈辩驳的技巧
  7. HTML5期末大作业:节日网站设计——圣诞节(5页面)带背景+音乐+带视频+带登录HTML+CSS+JavaScript...
  8. 有 5nm 制程工艺的 MCU 吗?
  9. 【视频运营小方法】抖音和视频号的推荐机制有什么区别
  10. 深度解读抖音平台规则与机制