当前位置: 首页 > 编程日记 > 正文

服务器端往手机端推送数据的问题(手机解决方案)

1.方案一:

思路:使用socket连接,在手机端开个socketserver,然后服务器端连接手机端,实现服务器端的不定时发送数据。

MIDlet关闭时, 你可以通过sms激活它.
midlet运行时, 你可以通过socket来解决双向推数据的功能.

个人思考:手机应用需要监控短信,服务器端先发送短信,根据协议好的格式通知手机端某某数据有更新,然后启动手机端应用去取数据。

2.http://www.mozat.com.cn/soluations-morange.asp

Morange企业推送邮件服务器

(1)    支持POP3/IMAP4/Secure POP3/Secure IMAP4电子邮件协议。

(2)    采用Web API支持Yahoo/Hotmail世界最大的两种免费电子邮箱。

(3)    采用Secure POP3协议支持Gmail邮箱。

(4)    对服务器采用轮询机制检测新邮件。

(5)    文件数据在推送前使用改良的GZIP压缩算法对数据进行压缩。

(6)    用户可以选择加密或者不加密进行数据通信,如果采用加密方法则使用AES-128位加密方法和SSL加密通信协议进行通信,确保数据端对端安全。

3.http://android.guao.hk/posts/android-cloud-to-device-messaging.html

Android Cloud to Device Messaging 服务介绍 – 如何从云端推送消息到手机

译者前言:

基于 Android 的手机是面向移动互联网的手机,保持24小时在线才能充分发挥它的全部能量。而 Google 也在不断提供各式各样的网络服务来吸引用户,有的服务是直接面向终端用户,而有的服务是面向开发者,期望开发者可以利用 Google 提供的这些服务来制作新形态的 Apps 和创造新的服务类型,当然 Google 也会从自家的服务被更多用户访问来获得收益。

Google I/O 2010 介绍了 Android 2.2 导入的 Android Cloud to Device Messaging (C2DM) 服务,也演示了在PC端,把浏览器正在浏览的网址或者在 Google Maps 上定位的位置发到 Android 手机上,而手机会直接通过浏览器打开该网址或者通过地图软件定位该位置。

前不久 Chrome to Phone 已经正式发布,可以让 Android 用户在自家的 PC 和 手机上亲自使用该功能。而 Chrome to Phone 的作者 也发表了一篇技术文章,介绍了C2DM 服务的一些细节。

Dave Burke

Dave Burke

翻译正文:

Android Cloud to Device Messaging (C2DM) 作为 Android 2.2 的一部分已经发布了。C2DM 允许第三方开发者开发相关的应用来推送少量数据消息到用户的手机上。C2DM 创造了一个良好的机会,允许我们使用多种 Google 开发工具来创建一种简单但相当实用的应用类型。用户可以使用该类型的应用把各种各样的信息从他们的台机或者笔电直接 push 到自家的手机上。来自 Google 20% 工作时间的一个实验性项目 Chrome to Phone 演示了这种类型的应用。

Chrome to Phone 包括了一个 Chrome Extension,一个 Android Application,和一个 Google AppEngine 服务器。所有的代码都是开源的,可供其它开发者参考如何使用 C2DM。

Chrome to Phone 的消息流是一个很典型的推送服务:

用户使用 Android App 在 C2DM 服务器上注册,获得一个设备注册 ID,这个 ID 跟用户的 Google 帐号绑定在一起,并且由 AppEngine server 来维护。 AppEngine server 在验证用户账号的合法性后记录下用户账号跟用户 C2DM 设备注册 ID 之间的映射关系。

Chrome Extension 获得浏览器当前访问的网址和标题后,把它们发送到 AppEngine server。 AppEngine server 验证当前登录的 Google 用户账号后,通过该账号查找到对应的 C2DM 设备注册 ID。然后通过 HTTP 把 URL 和标题发送到 Google 的C2DM 服务器。用户手机上的Android 系统(2.2 以上版本)会一直监听来自 C2DM 服务器的推送消息,当 C2DM 服务器接收到 AppEngine server 发送过来的消息,并且这个消息是发送到用户手机所绑定的 C2DM 设备注册ID 时,就会发送给用户手机,而手机上 Android 系统收到消息后则会发起一个 Intent broadcast(意图广播),接着跟该 Intent 对应的 Android App 被激活,再把这个 Intent 转换成相应的新 Intent 并路由到其它 Apps 上面去(比如浏览器,拨号软件,地图软件等)。

(路由路径:”Chrome to Phone” Chrome Extension(PC)-> “Chrome to Phone” AppEngine server -> C2DM server -> Android OS(Mobile) -> “Chrome to Phone” Android App -> Android Browser)

"Chrome to Phone" Chrome Extension

"Chrome to Phone" Chrome Extension

这里一个有趣的设计是像 URL 和标题这样轻量级的数据会附随在推送消息上,直接从 C2DM 服务器发送到手机上。URL 会使用hash编码产生一个 collapse_key 来防止重复发送。另外一个可选的方式是(也更适用于数据量较大的情况),服务器只发送简单的推送消息来激活手机上的 App,然后 App 再访问服务器获得额外的数据。

Chrome to Phone 的代码可以在网上找到。 AppEngine 和 Android App 代码都包括了一个可重用的包 com.google.android.c2dm 用于处理底层的 C2DM 交互事务 (例如配置,任务队列管理等)。

Chrome to Phone 提供了有用的功能,不过它最有趣的地方是在于提供了如何使用 Android C2DM 服务的示例。

译后语:
Google 的 Android C2DM 服务能够像 LBS 一样催生出一系列新的应用类型吗?利用从云端的服务器往手机推送消息的功能,让手机跟网络上的其它机器,包括服务器,用户自己的PC等更紧密的联系在一起,的确提供了一个智能设备跟移动互联网之间如何无缝衔接的一个范例。

读者您是怎样看待 Android C2DM 这样的服务呢?欢迎留言。

Via Android Developers

http://code.google.com/p/chrometophone/source/checkout

4. 基于短信网关WAP推送的实现

摘要 wap push既有信息发送主动、及时的特点,又有可随时随地接收信息的优势,因而具有良好的应用前景。该文简单介绍了wap push系统框架、推送协议和推送方式,重点介绍了通过短信网关实现wap推送的实现方法。

1 wap推送技术简介

1.1 什么是wap推送

wap推送(push)技术是一种建立在客户服务器上的机制,就是由服务器主动将信息发往客户端的技术。同传统的拉(pull)技术相比,最主要的区别在于推送(push)技术是由服务器主动向客户机发送信息,而拉(pull)技术则是由客户机主动请求信息。push技术的优势在于信息的主动性和及时性。

push技术在internet中没能取得大的成功,原因是多方面的。主要原因在于固定网中计算机等固定设备为用户提供了足够的资源和能力去查找信息所以用户通常将它作为一个浏览信息的窗口,而不是被动的信息接收者。同时固定网用户对于信息准确性的要求远甚于对其及时性的要求,因此push技术未能得到广泛的应用。

而在移动网中,由于存在着网络带宽、移动终端能力以及自费标准高昂等诸多限制,使得用户查找信息受到了一定的限制,如果将重要的信息主动及时地推送到用户的移动设备上无疑会大大方便用户。移动通信的优点是移动设备能够随时随地接收信息因此push技术在移动网中可以大展拳脚,wap push正是push技术和移动通信两者扬长避短相结合的产物。wap push是在移动网络中应用的push技术,它结合了一般push技术和移动网络的特点。它的系统框架、使用协议和服务方式与固定网上的push技术有很大不同。

1.2 wap push系统框架

wap push框架主要包括推送发起者(pi:push initiator)、推送代理网关(ppg:push proxygateway)和推送客户(pc:push client) 三个功能部分。pi位于internet中,而pc在wap领域,pi和wap客户端所使用的协议是不同的,需要在中间建立一个协议转换网关即ppg。ppg通过推送访问协议(pap:push accessprotocol)与pi通信,通过推送空间传输协议(push ota:push over-the-air)完成向客户推送信息的数据传输任务。

  ppg完成推送体系结构中的大部分工作,包括从internet到移动网的访问接入,以及与其有关的认证、安全、客户端控制等所有工作。ppg所提供的主要服务包括:1)pi的标识、鉴权和访问控制;2)对推送内容进行语法分析,并依据数据类型定义(dtd)检错纠错;3)客户寻址与信息传输;4)pap与push ota间的协议转换;5)为提高无线信道中的传输效率,对信息进行压缩、编译等处理。

  另外,ppg还可以通过别名机制实现组播和广播,即将某些特定的地址别名映射到组播或广播的操作中,具体方案可以由系统实现者决定。不同的客户端,其能力是不同的,ppg还要负责响应pi的客户能力查询请求,以便于pi针对不同的客户端构造合适的内容格式。

1.3 推送协议

pap是pi与ppg间的通信协议,它使用可扩展标记语言(xml)作为消息的描述语言,通过简单的请求响应机制完成数据的传输。pap可以在多种通信协议(包括超文本传输协议(http)、简单邮件传输协议(smtp)等)之上实现。

而push ota是运行于无线会话协议(wsp)之上的一个较为简单的协议层,负责从ppg到客户代理的数据传输。push ota可使用面向连接的会话和无连接会话两种wsp层服务,对于使用连接会话的推送,需要在ppg和客户端间预先有一个激活的会话上下文;对于无连接的推送,则通过预留的端口来完成通信。

1.4 推送服务方式

wap的推送协议中定义了服务指示(si:service indication)和服务加载(sl:service load)两项服务,以给用户和网络运营者更多的选择。服务指示是将新信息的指示和相关的通用资源标识符(uri)推送给用户,由用户选择是立即处理信息还是以后处理。服务加载是将一项服务的uri推送给用户,然后客户端自动地使用pull技术根据该uri启动服务。两种服务的区别在于用户是否介入推送信息的处理过程。sl对推送信息的处理对用户来说是透明的,而si则在指示用户的同时,请用户对随后的处理做出选择。
push可以将某一站点或某一业务的链接通过短信发送到支持wap push功能的手机上,这样用户只需要阅读这条短信,打开短信中的链接,就可以直接访问业务了。因此,wap push实现了短信和wap业务的结合,节省了用户寻找业务的时间,方便用户直接找到并使用自己喜欢的业务。

2 短消息网关简介

短消息网关(ismg)是处于短消息中心(smsc)和业务提供商(sp)之间的设备,它为这两个实体的数据交换提供安全、快捷的通道。网关与短消息中心之间使用smpp协议(short message peer to peer,短消息点对点协议), 与sp之间使用cmpp协议(china mobile peer to peer,中国移动点对点协议),因此短消息网关需要完成协议的转换、计费、路由、安全和网络管理等功能。具体说来, smpp通信代理系统主要实现网关和gsm网中短消息中心(smsc)的连接,确保准确接收和发送数据,实现高效、可靠的数据传输。为了达到规范要求的不超过0.001%的数据丢包率,smpp通信代理需要支持流量控制。cmpp通信代理系统主要是实现和sp服务提供商的连接,与smpp通信代理系统不同的是,由于协议的影响,cmpp通信代理是服务器端,需等待sp的连接,而smpp通信代理是客户端,需要主动连接smsc。短消息网关处理系统是网关中最复杂的处理进程,它完成的任务包括:向gns(汇接网关) 查询路由,维护路由表,进行协议转换和数据分发。防火墙系统主要为网关系统提供安全保障,它包括ip包过滤和身份验证。短信网关计费系统主要形成各种计费话单,为计费提供依据。业务管理系统主要完成对业务进行统计报告,生成报表,为运营者对用户数据的添加、修改、删除以及对网关系统的监控、查询、操作和维护提供接口和界面。

3 基于短信网关发送wap push

wap push的发送有两种途径,一个是通过ppg网关,另外一个是通过smpp协议。其中smpp是一个基本协议,在中国主要有三个由其派生的协议:中国移动的cmpp协议,中国联通的sgip(在cdma上是etip),以及小灵通的smgp。通过中国移动的ppg网关发送wap push有着开发周期长,调测流程较复杂等不足,而使用cmpp协议即基于短信网关来进行wap push发送灵活性比较高,相对比较简单。

  3.1 wap push发送的实现模式

  可通过计算机串口上连接gsm modem,用它向手机发送wap push。这种方法发wap push又分三种模式:block 模式、text 模式和pdu 模式。block 模式现在用的很少了, text 模式则只能发送ascii 码,它不能发送中文的unicode码,而pdu 模式开发起来则较为复杂,它需要编写专门的函数来将文本转换为pdu 格式,但pdu 模式被所有手机支持,可以使用任何字符集,它也是手机默认的编码方式,所以选用pdu模式发送wap push.

3.2 pdu 模式
  用pdu 模式发送 wap push可以使用三种编码: 7-bit 编码、8-bit 编码和ucs2 编码。7-bit 编码用于发送普通的ascii 字符,8-bit 编码通常用于发送数据消息,ucs2 编码用于发送unicode 字符。由于要实现中文wap push的发送,所以选择用ucs2 编码,即中文unicode 码。
⑴ ucs2 编码原理 所谓ucs2 编码,是将单个的字符(1-2 个字节)按iso/iec10646 的规定,转变为16 位 的unicode 宽字符。即将单个的字符转换为由四位的‘0’-‘9’、‘a’-‘f’的数字和字 母组成的字符串。待发送的消息以ucs2 码的形式进行发送。
⑵ 通过ucs2 编码我们得到中文unicode 码,接着就可以进行发送pdu 串的编制了。从表面上看,pdu 串是ascii 码串,同样由‘0’-‘9’、‘a’-‘f’这些数字和字母组成。它们是8 位字节的十六进制数,或者bcd 码十进制数。pdu 串除了包含所发送的消息本身外,还包含很多其它参数信息,如服务中心号码、目标号码和编码方式等

例如

0051000ba13108086406f600f5a7850b05040b8423f_
0000303010129060603ae81ea8dca02056a0045c6080c033231312e_
3133362e3135332e33302f776170707573682f70757368496e6465782e_
6a73703f7075736849643d3035303531313134313630353231000103e8a_
fb7e782b9e587bbe4bba5e4b88be993bee68ea5e88eb7e58f96e5bda9e4bfa1e58685
e5aeb9000101_

为一串可以成功发送的wap push,其中包括了汉字描述和wap页面地址。具体分析如下

00 smsc 地址信息的长度 00表示用手机上设置短信中心号码,pdu 串的“smsc 址格式”段和“smsc 地址”段将省去

51 基本参数(tp-mti/vfp) 不要求发送回复

00 消息基准值(tp-mr)

0b 对方电话的长度

a1 目标地址格式 a1表示为国内格式

3108086406f6 目标地址,补‘f’凑成偶数位后奇偶位互换

00 协议标识(tp-pid) 是普通gsm 类型,点到点方式

f5 用户信息编码方式 (tp-dcs)

a7 有效期(tp-vp)

85 用户信息长度(tp-udl)

0b wap push头部的总长度

05040b8423f0表示接下来是一个wap push

00 表示是concatenated short messages

03 长度

03 reference number

01 表示分成1个短信发送

01 当前包的序号

29060603ae81ea8dca wsp

02 标记位

05 -//wapforum//dtd si 1.0//en

6a utf-8

00 标记开始

45

c6 <indication< p>

08 <action=signal-high>

0c href="http://

03 字符串开始

3231312e3133362e3135332e33302f776170707573682f
70757368496e6465782e6a73703f7075736849643d3035303531313134313630353231 url

00 url 字符串结束

01 >

03 内容描述字符串开始

e8afb7e782b9e587bbe4bba5e4b88be993bee68ea_
  5e88eb7e58f96e5bda9e4bfa1e58685e5aeb9 内容描述字符串

00 内容描述字符串结束

01

01

由以上分析可以看出,wap push可以被当作一种特殊的短信来发送,wap push包发送的内容实际上跟通过ppg网关发送的xml原理相同,但是经过了压缩。压缩之后的格式称为wbxml,这种格式将一些标记用代码来表示。然而wbxml的缩略标记分为两部分,一部分是所有类型的xml都通用的,另一部分是不同类型的xml有着不同的解释。
用户接收到此类信息时,在客户端手机支持wap的情况下,可以直接访问到信息中加载的wap网站地址,这样服务器也达到了推广业务方便用户使用的目的。由于在ucs2 编码方式下,可发送短消息的最大字符数是140字节,即wap push中的推送url与描述文字的总字符数为140,因此描述文字的字数限制与推送的url长度有关。

4 结束语

wap push技术结合了push技术的优势和移动通信服务的特性,具有良好的应用前景。但是wap push技术仍然存在着一些亟待解决的问题,如信息的鉴权与认证、信息的准确性、如何避免垃圾信息等。如何解决好这些问题将是wap push技术成功的关键。另外,随着gprs技术和3g无线通信技术的发展,无线信道的带宽将逐步增大,wap push也将能进一步推送多媒体信息,有着更宽广的应用前景。

5.C#连接手机发送短信
http://www.dnbcw.com/biancheng/shouji/gdtd87519.html

6. Get the ip address of your device

http://www.droidnova.com/get-the-ip-address-of-your-device,304.html

The obvious way to get the IP-Address of your device simply doesn’t work on Android.

The first thing I tried was using the WifiInfo.

1
2
3
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();

But wait: ipAddress is an integer? Of course not. I also did the math but couldn’t find a way to get the IP out of this integer. So thats not the right way.

Another possibility I found was to create a socket connection and use the Socket instance to get the local ip address.

1
2
3
4
5
6
try {Socket socket = new Socket("www.droidnova.com", 80);Log.i("", socket.getLocalAddress().toString());
} catch (Exception e) {Log.i("", e.getMessage());
}

The disadvantages should be clear:

  • You generate traffic – may result in costs for the user
  • Your program depend on the Server you create a socket connection to
  • The same exceptions may be thrown for different reasons – bad if you want to display a message to tell the user what he should do to fix the problem

The right thing is to iterate over all network interfaces and iterate there over all ip addresses.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public String getLocalIpAddress() {try {for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {NetworkInterface intf = en.nextElement();for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {InetAddress inetAddress = enumIpAddr.nextElement();if (!inetAddress.isLoopbackAddress()) {return inetAddress.getHostAddress().toString();}}}} catch (SocketException ex) {Log.e(LOG_TAG, ex.toString());}return null;
}

So if this method returns null, there is no connection available.
If the method returns a string, this string contains the ip address currently used by the device independent of 3G or WiFi.

相关文章:

软件测试实验一

实验报告 a) The brief description that I install junit, hamcrest and eclemma. Junit&#xff0c;hamcrest 上网下载junit,hamrest包&#xff0c;然后在项目中新建文件夹lib,复制包到其中&#xff0c;然后单击项目->build path -> configer build path,然后在把包加入…

【java】兴唐第二十九节课作业

将用户在网页填写的信息输入数据库 数据库&#xff1a; create table user_infer(id int(2) not null auto_increment primary key,user_name varchar(12), password varchar(64) not null,real_name varchar(8) not null,age int(3) ); JAAVEE stuList <% page langu…

【php】【psr】psr2 编码风格规范

为避免浏览多个作者参与编写的项目时&#xff0c;因风格的不同造成不便时&#xff0c;大家可以使用同一套风格规范来统一标准 代码必须遵循PSR1的规范缩进使用4个空格&#xff0c;而不是TAB键缩进每行代码控制在80-120个每个namespace申明语句后&#xff0c;每个use申明语句块后…

代码生成器项目正式启动

SVN地址是&#xff1a; svn://www.oksvn.com/CodeAssistant J2EE的项目开发工作本身充斥着各种重复&#xff0c;各种复制&#xff0c;各种粘贴&#xff0c;所以&#xff0c;才会出现了Spring和Struts2这些优秀的框架。 但是在使用这些框架的时候&#xff0c;有些问题也会不停的…

查询XML节点 value

查询XML节点 value&#xff1a;通过nodes 指定到节点通过Value属性取出值Declare Xml xmlset Xml<Employee><ID>1</ID><ID>2</ID></Employee>SELECT ID.value(.,Nvarchar(500)) as EmployeeID FROM Xml.nodes(Employee/ID) Employee(…

JQUERY动态生成当前年份的前5年以及后 2年

由于工作需要&#xff0c;赶紧记录下来转载于:https://www.cnblogs.com/wjhaaa/p/8652298.html

osgearth+vs2010安装

OSGEARTH VS2010 安装*VS 平台不重要,本教程也适用于VS2008等。假设我的OSG目录为&#xff1a;D&#xff1a;/OSG*本教程参考网上osgearthvs2008安装。 一、准备工作下载: http://osgearth.org/wiki/Downloads 1. CURL (curl-7.21.7.tar.gz): http://curl.haxx.se/downl…

Contos7 克隆实例 以及 配置网络-服务-等相关信息

以下为我自己整理的克隆虚拟机和设置固定IP的方法&#xff0c;记录一下&#xff0c;以防忘记&#xff1a; 桥接模式网络配置 1、配置ip地址等信息在文件里做如下配置&#xff1a; /etc/sysconfig/network-scripts/ifcfg-ens33 命令&#xff1a; vi /etc/sysconfig/network-sc…

【jdbc】兴唐第三十一节课之修改数据和查询数据(使用自己写的DBUtil)

一、修改数据 方法一 代码实现&#xff1a; public static void opDBByNormal() {DruidDataSource dds new DruidDataSource(); dds.setUsername("root");dds.setPassword("root");dds.setUrl("jdbc:mysql://localhost:3306/system");dds.se…

ios4.2文件夹及多任务

ios4.2的文件夹和多任务可谓是主要特性,但是安装完后我却丝毫不知道该怎么做...在网上找了好久总算解决了 多任务:双击home键,在屏幕下方就会显示当前正在执行的任务,如http://tech.sina.com.cn/it/2010-11-22/22334894444.shtml所示. 文件夹操作:见视频http://v.youku.com/v_s…

利用Unity3D制作简易2D计算器

利用Unity3D制作简易2D计算器 标签&#xff08;空格分隔&#xff09;&#xff1a; uiniy3D 1. 操作流程 在unity3DD中创建一个新项目 注意选择是2D的&#xff08;因为默认3D&#xff09; 在Assets框右键新建C#脚本 在新建的C#脚本中写入下列代码 代码下载地址 https://downlo…

将moss 2007的模板文件导入到moss 2010

最近公司HR请请将一个moss2007的调查模板文件导入到我们部门的Moss protal 上面。 我想这是举手之劳&#xff0c;就爽快的答应了。 但是导入时却报如下错误&#xff1a; ErrorMicrosoft SharePoint Foundation version 3 templates are not supported in this version of the p…

C算法--黑盒测试

黑盒测试 系统会判断每组数据的输出结果是否正确。 单点测试只需要按正常的逻辑执行一遍程序即可。 多点测试&#xff1a; while...EOF型 while...&#xff08;T--&#xff09;型 在多点测试中&#xff0c;每次循环都要重置一下变量和数组&#xff0c;否则在下一次数据来临时变…

【java】兴唐第三十一节课之反射

知识点 一、获取类对象、 方法一 代码实现&#xff1a; Class myDriver Class.forName("com.mysql.jdbc.Driver"); 方法二&#xff1a; 代码实现&#xff1a; Class mysqlDriver com.mysql.jdbc.Driver.class; 注&#xff1a;方法二中Driver前面的东西可以…

ADO.NET与ORM的比较(5):MyBatis实现CRUD

说明&#xff1a;这是一个系列文章&#xff0c;在前面的四篇当中周公分别讲述了利用ADO.NET、NHibernate、Linq to SQL及EntityFramework来实现CRUD功能&#xff08;C:Create/R:Read/U:Update/D:Delete&#xff09;&#xff0c;在这里再讲述另一种框架&#xff0c;那就是MyBati…

BZOJ1391: [Ceoi2008]order

【传送门&#xff1a;BZOJ1391】 简要题意&#xff1a; 有n个工作&#xff0c;m种机器&#xff0c;每种机器可以租或买来&#xff0c;给出租和买的费用&#xff0c;每个工作有若干个工序&#xff0c;每个工序需要用某种机器完成&#xff0c;完成工作可以获得利润 求出完成n个工…

MongoDB(3)--有关NoSQL及MongoDB的一些概念

学习任何东西在没有理解的前提下去背熟一些概念是没有用的&#xff0c;就像只背会了几个概念而没有理解的开发人员去面试是经不住面试官的追问的。前面的两篇对MongoDB做了简单的介绍&#xff0c;能够很快上手&#xff0c;对MongoDB有一个感性的认识。本篇大部分内容来自MongoD…

SpringBootMybatis 关于Mybatis-generator-gui的使用|数据库的编码注意点|各项复制模板...

mysql注意点&#xff1a; 1.有关编码 create table user( id int primary key auto_increment, name varchar(255), password varchar(255) )ENGINEInnoDB AUTO_INCREMENT11 DEFAULT CHARSETutf8; 需要加上引擎的注释和默认数据库编码 application.properties的默认写法 #数据源…

【java】兴唐第三十节课之零三知识点总结

1、服务器通过session id来辨别用户 2、绝对路径与相对路径 (1)相对路径 . :当前路径 .. :向上返回一层路径 &#xff08;2&#xff09;绝对路径&#xff1a; 查找所有的文件都是从根目录出发 目录结构如图 代码实现&#xff1a; <div><span><a href …

(续)我对09毕业生说两句

上次写那篇文章已经是09年2月份&#xff0c;转眼2年过去&#xff0c;一直没想好再说些什么。后来想想也不用刻意说些什么&#xff0c;就是闲聊一下我的一些新看法吧。 简 历这个东西很重要&#xff0c;从简历上可以看出很多信息来。有很多人喜欢写自己细致认真。可以从简历上看…

Python Socket请求网站获取数据

Python Socket请求网站获取数据 ---阻塞 I/O ->收快递&#xff0c;快递如果不到&#xff0c;就干不了其他的活 ---非阻塞I/0 ->收快递&#xff0c;不断的去问&#xff0c;有没有送到&#xff0c;有没有送到,...如果送到了就接收 ---I/O多路…

用户控件和服务器控件的数据绑定

一、绑定Repeater控件的数据源 aspx.cs文件中绑定Repeater控件的数据源在BindDataSource()中&#xff1a; protected override void BindDataSource(){ this.rpID.DataSource this.dataList; this.rpID.DataBind();}Repeater控件事件OnItemDataBound&#xff0c;表示在循环…

【jsp】兴唐第三十节课作业

写一个jsp调取数据库的文件显示在主页面&#xff0c;并实现查找、添加、删除和数据更新以及用户登录的功能 stuList.jsp <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%> <% page import "…

Linux命令行好玩的命令

0.cal 2019 #输出日历并显示今天是哪一天 1.命令“date”&#xff0c;显示系统的当前日期和时间&#xff1b; 2.命令“date 040100002016”&#xff0c;屏幕显示新修改的系统时间&#xff1b; #不太明白 3.转载于:https://www.cnblogs.com/Formulate0303/p/11142997.html

Solaris下访问windows共享资源

今在做实验过程中&#xff0c;发现上传软件太费时而且解压起来也繁琐&#xff0c;还要占用很大的空间&#xff0c;就在windows上创建了共享资源&#xff0c;在linux下使用mount挂载上来&#xff0c;直接解压在windows上面&#xff0c;用完了直接将解压的文件删除即可&#xff0…

centOS外部浏览器无法访问tomcat8000端口解决办法

防火墙开放特定端口 &#xff08;iptables&#xff09; 查看状态:iptables -L -n下面添加对特定端口开放的方法&#xff1a;使用iptables开放如下端口/sbin/iptables -I INPUT -p tcp --dport 8000 -j ACCEPT保存/etc/rc.d/init.d/iptables save重启服务service iptables resta…

Linux命令行与shell脚本编程大全:第2版

《Linux命令行与shell脚本编程大全:第2版》基本信息作者&#xff1a; (美)布卢姆(Blum,R.) 布雷斯纳汉(Bresnahan.C.) [作译者介绍]译者&#xff1a; 武海峰丛书名&#xff1a; 图灵程序设计丛书出版社&#xff1a;人民邮电出版社ISBN&#xff1a;9787115288899上架时间&#x…

企业云存储云办公方案

云存储、云计算最近一直被炒得很热&#xff0c;成为了一部分人文档中既神秘又华丽的辞藻&#xff0c;总之来总之去就是"云里来雾里去"&#xff0c;其实"云技术"与历史上的"纳米技术"一词一样忽悠了很多很多的人。云存储是在云计算基础上衍生起来…

【servlete】兴唐第三十二节课知识点汇总

一、 servlet开发&#xff1a; 1、创建java类并继承HttpServlet 2、重写 doGet\doPost方法 3、将Servlet配置到web.xml中&#xff1a; <servlet> <servlet-name>自定义一个唯一的名称</servlet-name> <servlet-class>servlet全类…

悦读上品 得乎益友

悦读上品 得乎益友 ——电子工业出版社2011新年巨献不可复制的《传世经典书从》 孔子云&#xff1a;“取乎其上&#xff0c;得乎其中&#xff1b;取乎其中&#xff0c;得乎其下&#xff1b;取乎其下&#xff0c;则无所得矣。”读书求知&#xff0c;贵在能选择好书中的上品——经…