在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
最近在写小程序,有些问题,搜索不到太有价值的东西,我总结下我遇到各种问题,可能看来会比较可笑,但对新手来说可能会有些帮助,我会尽量去注重具体的实现。 这次我说下小程序和服务器的链接问题,或许有些人会和我一样,不知道怎样让小程序向服务器发送请求,不知道服务器怎样发送消息给客户端,又怎样接收。或者说不知道怎样具体实现它,我尝试着去展示下。 首先先简单介绍下服务器的部署吧,了解的请直接略过。 我用的是Tomcat,后台的代码编辑器用的myeclipse。
然后建立你的项目,包,文件夹等。 首先,你要了解到请求是向servlet发送的,(微信小程序只支持http协议)所以 ,我们先来看看怎样去建servlet。 在编辑器里,file->new->servlet,然后填相关信息。
填写name,创建的方法点选doget 和 doput就好,因为简单的事例,不用太复杂,了解html的知道,这两种方法分别是处理get和put方法请求的。一般我们处理他们的代码都一样,所以,完全可以doput函数里只写this.doGet();。 建好servlet前一定要写好jsp mapping url也就是图中第三行内容,这就是客户端请求是需要的url。 当建好后你可以通过项目里webroot文件夹web—inf里的web.xml查看。 url没问题就可以。打开我们的sevlet,把一些没必要的东西删掉简单些,像这样:
package servlet;
System.out.println("收到!");
大家可以看到这个servlet的功能就是收到请求后,在控制台打出“收到!”
好,接下来我们来部署服务器
1———————————————————————————— 选择好你的项目工程,选择tomcat服务器,点“ok” 2———————————————— 启动tomcat服务器 启动成功后控制台显示信息 ok,到这里服务器就算布置完了。接下来我们来谈一下什么是客户端,又怎样与服务器建立链接。
我们先简单点解释,我觉得,其实我们经常用的浏览器就可以当成客户端。而上面的,我们通常说的网址,就是要发送请求的服务器地址,也就是我们刚刚设置的url 那么,我们的服务请求的处理已经编写完毕,而且url也已经设置好,而我们能够得知,客户端向服务器发送请求,且服务器接收到了的,就是是否服务器会打出那个“收到”。 现在。我们先以浏览器为例,向我们写的服务器发送请求,这时候就要用到我们设置的url了。 图例分别是,端口,项目名称,servlet的url 因为我们的服务器是本地的,所以是localhost 至于8080是tomcat的端口,这里不做过多解释,需要的大家去查一下,可以查到。Amess是项目的名称,text就是我们设置的url还记得吗? ok,当我们敲击回车后,浏览器(客户端)就向我们编写的servlet发送了请求。但是网页却什么也不显示。 这是当然,因为我们对请求的处理就是在服务器输出个“得到”,而如果想在浏览器上显示信息,就是服务器向客户端发送信息了。(不要忘记把浏览器理解成客户端啊) 我们在切换到服务器: 我们可以看到,服务器打出了“收到”,这也就是说明我们客户端和服务器建立起了链接。 那么,服务器怎样向浏览器写东西呢? 我们需要创建一个printwriter 的对象,通过这个对象, 调用他的方法,输出想要的内容,不要忘记close,只有close了,才能将内容输出。现在我们更新网页,看看效果。 ok,没问题。现在,大家对客户端 向服务器发请求,及服务器向客户端写东西,有了大致的理解。 你现在可以去喝杯咖啡,或者喝口水吧。接下来我们就来具体说,小程序(客户端)怎样去与服务器建立连接。(笑) 简单事例,我们只写一个按钮,绑定点击事件,在js里边来处理事件,向服务器发送请求。 我们需要调用微信提供的一个API,request,用它,向服务器发送请求。开发者工具有具体介绍,大家可以去查看,之后就是设置参数,url和浏览器一样,依旧是服务器地址,data内是你要向服务器发送的数据。如图,我们发送了一个数据叫做username,他的值是一个字符串“haha”。success函数就是成功请求服务器后,服务器返回后进行的处理,这里我们让他输出res的data内容,res参数(当然名字你自定义)是服务器返回的的信息,他的data就是发送个数据。这时重新编译后,点击按钮就可以了。注意,小程序编译时会检查,不允许向本地服务器和没证书的服务器发送请求,所以之前要设置下。 在开发者工具中右上角的详情里,选择不校验http
接下来我们来看服务器的编写。 首先我们要获得客户端给我们的username,这时我们要调用request的个体Parameter函数获取,参数就是数据的名字。如图,那么我们的变量name就得到了客户端发来的username的值,也就是“haha”,让我们输出一下,看是否得到了。 之后,我们向客户端返回数据,这时需要用到write,创建一个write类型变量来返回,调用对象的write函数,参数是要发送的内容,记得close。如果你发送的数据过多,可以用flush函数,大家用兴趣自己查询。我们返回了“man”,那么客户端的success函数的res.data就得到了“man”。ok万事俱备,就差一鼠标。点击按钮吧。看看效果。
服务器得到username:“haha”(其他的输出是其他的测试内容,大家自行忽略)
客户端获得服务器data:“man”: 现在我们的小程序和服务器就建起了简单的链接,只用传什么数据,又做什么处理,就是你的问题了。 因为只是个人的闲暇娱乐,从点击量和搜索量上来说,你很难看到这篇文章,如果我有幸让你您看到,那也是中缘分吧。有些基础的东西如在本章中说道,不会做过多原理上的解释,您可以查看这个系列的其他内容,应该可以帮您滤清一些思路思维上的东西。 这就是我的理解,欢迎讨论,纠错。也希望对有些人有帮助。水平一般,能力有限,难免有不对的地方,多包涵。 |
请发表评论