java 校验安卓登录_android客户端向服务器端验证登陆方法的实现2

一、在上一篇文章中,我只是提到了其中一种方法来实现登陆

大家可以参见:

请问如何写一个java 服务器端的servlet,然后可以当客户端发出http请求的时候,可以接受请求,读取数据库

二、一些代码的讲解:

什么是servlet:一个小的,具有平台无关性,没有图形用户界面的java程序,他可以在很多方面扩充web服务的功能。

HttpServlet 类  :

提供了一个处理 HTTP 协议的框架。

在这个类中的 service 方法支持例如 GET、POST 这样的标准的 HTTP 方法。这一支持

过程是通过分配他们到适当的方法(例如 doGet、doPost)来实现的。

doGet方法:被这个类的service方法调用,用来处理一个HTTP GET操作。这个操作允许客户端简单的从一个HTTP服务器获得资源。对这个方法的重载将自动支持HEAD方法。安全的方法。

doPost方法:被service方法调用,用来处理一个HTTP POST操作。这个操作包含请求的数据体,servlet应该按照此行事。此操作可能是负面的操作。

三、客户端与服务器端的数据传递

相对于客户端的post与get方法,其都有数据传递,都在request于response当中。我们通过ServiceInputStream与ServiceOutputStream类来实现数据的共享。

1、客户端发出http请求,服务器端接受请求,进行响应,然后读取数据库。

2、在客户端:利用内置对象requst获取数据,并传至服务器端。

put 与 getparameter是一对  ; setAtribute与getAttibute是一对。

服务器端:我们除了用response返回数据外,也可以用request返回数据。将封装好的对象放到requets.session中,直接用它们的setAtributer  (“key”,"value");然后,在客户端:我们用request.getAttibute来获取数据。

int i=10;

把数据放到Servlet请求的属性中

request.setAttribute("i",i);

转发到客户端

request.getRequestdispatcher("url").forward(request,response);

在转发到的页面用request.getAttribute(i)取出来..记得类型转换

在服务器端:利用内置对象response获取数据,并传至客户端。与之对应方法中的response。

eg:response.getOutStream();  PrintWrite pw = response.getPrintWrite();

pw.out(“你想要传到客户端的数据”); response这个对象就是用来响应的呀!

response.getOutputSteam().write("写数据");

response.flushBuffer()这样就可以发往数据到客户端了呀!

当然,假如我们只想知道返回的标识,而不想要数据,那么我们通过标识码来判断

服务器端代码:

if (userlist != null) {

resp.setStatus(200);

} else {

resp.sendError(345, "用户名密码不正确!");

写在了resp当中。

在客户端代码: httpClient.post("http://192.168.1.106:8080/login", param,

new BaseJsonHttpResponseHandler() {

@Override

public void onSuccess(int statusCode, Header[] headers,

String rawJsonResponse, Object response) {

Log.d(TAG, rawJsonResponse);

Intent intent = new Intent(LoginActivity.this,

BMapApiDemoMain.class);

LoginActivity.this.startActivity(intent);

finish();

}

根据我们传递过来的标识码的值(statusCode),就知道到底是进入到onSuccess还是onFailure方法中。然后,在这些方法中选择我们所要进行的操作。

四、mybatis当中resultMap等的作用:

resultMap="userResultMap">

select * from userlist

where username = #{username} and passward = #{passward}

映射标签

  id 与下面的select中的resultMap一一对应,type后面是一个类名。通过id找到此类。

下面全是 此类的一些属性名用   最好是一一对应

其中:property为你自己建立的类当中的属性,column是你自己建立的数据库当中的字段名。

paremeterType这个为selectUserlist函数的参数类型,假如只有一个参数,我们可以写string或int等。但假如有多个参数,需要封装在Map里面。

select * from s_navigation

portletid=#{portletid}

and uuid=#{uuid}

and isshow=1

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值