Android 客户端与服务器端进行数据交互(一、登录服务器端)
概要
安卓APP要实现很多功能(比如登录注册、发表评论等)时都必须要使用到网络数据交互。所以在学习了这部分内容后,就将其以最常见的登录过程为例整理出来,也方便跟我一样的新手能迅速学习上手。
预期效果图如下,输入手机号和密码,点击Login按钮,上传数据到服务器端进行验证,再对结果进行反馈。
博客分一二两篇,第一篇是服务器端,第二篇是Android客户端
而服务器端分为User model、UserDAO、LoginServlet三个部分,只写了用户登录验证流程中最简单的实现逻辑,仅供参考。
User model
用户model最主要的属性,就是账户(现在多为手机号)和账户密码,同时定义了Key,用于在URL中传参和取参。
public class User implements Serializable{private int id;private String phoneNumber;private String password;private String userName;private String emailAddress;private Date registerTime;//用于URL传参和取参时的keypublic static String PHONENUMBER = "phoneNumber";public static String PASSWORD = "passWord";public static String USERNAME = "userName";//构造函数public User(String phoneNumber,String password,String userName){this.phoneNumber = phoneNumber;this.password = password;this.userName = userName;registerTime = new Date();}//属性的get与set方法不再贴出
}
UserDAO
这里没有去涉及数据库的复杂操作和查询比对,就用了一个简单的ArrayList数组作为数据源,通过isLoginCheck方法对数组进行遍历取值,从而对登录验证是否成功进行判断。
public class UserDAO {public static void main(String[] args) {//本地验证Main函数UserDAO userDAO = new UserDAO();System.out.println(userDAO.isLoginOK("123456", "abc123456"));}//假设的数据源public ArrayList<User> users;public UserDAO() {// TODO Auto-generated constructor stubusers = new ArrayList<User>();users.add(new User("123456","abc123456","codingma"));users.add(new User("654321","abcdf123","codemayq"));}//验证函数public boolean isLoginOK(String phoneNumber,String password) {for (User user : users) {if (user.getPhoneNumber().equals(phoneNumber)) {if (user.getPassword().equals(password)) {return true;}}}return false;}
}
LoginServlet
LoginServlet只是一个普通的Servlet,在doPost方法中,对URL中的参数进行了提取,然后调用UserDAO中的isLoginOK方法进行验证,返回OK或者Wrong的结果值
public class LoginServlet extends HttpServlet {public LoginServlet() {super();}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("GET");out.flush();out.close();}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();//取出URL中的账号密码参数String phoneNumber = request.getParameter(User.PHONENUMBER);String passWord = request.getParameter(User.PASSWORD);UserDAO userDAO = new UserDAO();//验证过程if (userDAO.isLoginOK(phoneNumber, passWord)) {out.println("OK");}else {out.println("Wrong");}out.flush();out.close();}}
总结
服务器端的部分就分为三部分,User类,用于数据验证的UserDAO类,用于接收处理请求并返回结果的LoginServlet,调用关系比较清晰,不算特别复杂。
Android客户端的代码请见下一章
转载请注明出处http://blog.csdn.net/u012145166/article/details/51335187
Android 客户端与服务器端进行数据交互(一、登录服务器端)相关推荐
- Android 架构之路 (1)-- Android 客户端与服务器的数据交互总结
前言: 本文总结了 Android 客户端与服务器进行交互时,采用RESTful API +Json的交互方式,针对不同的数据形式以及不同的解析方法,如有不足之处,欢迎指正. 文章目录 1. Andr ...
- Android 低功耗蓝牙开发(数据交互)
Android 低功耗蓝牙开发(数据交互) 前言 正文 一.BluetoothGattCallback 1. onPhyUpdate 2. onPhyRead 3. onServicesDiscove ...
- 通过axios实现vuecli与服务器端的数据交互
Vue在升级到2.x版本后就停用了原来官方推荐的vue-resource,而是推荐使用axios来进行和服务器的数据交互. 1.axios的安装与引用 通过vue ui在运行依赖处可以找到axios的 ...
- Android实战简易教程-第六十六枪(服务器端搭建和服务器端Json数据交互)
学习Android有一段时间了,对服务器端有很深的好奇,决定对服务器端的实现进行一些研究,这里实现了一个简单的小例子,用于获取服务器端的json数据,例子很简单,适合初学者学习使用. 服务器端 首先我 ...
- android webview 监听js,Android webview与js的数据交互
项目要用到Webview和js交互,查了查以前的项目感觉还是有必要整理下的. 简单描述下项目中用到的地方,比如说在web页需要用到登录的地方点击登录跳转到APP原生登录界面去登录,点击web页的拨打电 ...
- js获取android数据,Android webview与js的数据交互
项目要用到Webview和js交互,查了查以前的项目感觉还是有必要整理下的. 简单描述下项目中用到的地方,比如说在web页需要用到登录的地方点击登录跳转到APP原生登录界面去登录,点击web页的拨打电 ...
- 客户端与服务器的数据交互
毕设需要接粗到一些关于app和前端后端的东西,学习记录一下. 首先不要管安卓端还是苹果端,现在一般都是响应式的app,放到安卓或者苹果或者pc或者平板都是没有问题的.一般采用的是http接口通讯,或者 ...
- android网络请求线程池,利用线程池实现Android客户端的http网络数据请求工具类
该工具类值只实现了HTTP的get方法,参考get方法可轻松实现post.put.delete等方法,下面是get方法的实现 public class SimpleHttpClient { priva ...
- Appcan与后台数据交互,登录例子
1.appcan界面(login.html) 假定后台路径为:http://localhost:8080/LabManageSystem/appcan/login/loginHandle.jsp,其中 ...
最新文章
- 用c语言写一个两线程程序,如何用C语言实现多线程
- jwplayer使用
- jQuery判断获得的对象是否存在的方法
- EE4J项目情况汇总,微软加入Jakarta EE工作组
- html的区域大小,JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性...
- net4.0 兼容2.0的方法
- MacOS使用brew无法安装Python_无法安装gdbm_无法安装autojump
- 《深入理解计算机系统》(2) 信息的表示和处理
- 20191003每日一句
- Timeline使用手册
- ssh远程连接网络构建
- 一分钟搞定网页监控,实现网站链接百度自动推送
- 某电商销售数据分析 SQL 面试题解析
- LSI Logic 1068 SAS 磁盘阵列卡配置教程
- 【长篇博文】Docker学习笔记与深度学习环境的搭建和部署(一)
- java 日志门面_slf4j-日志门面担当
- 第八章 linux系统引导过程及引导修复
- SSH登录及失败解决
- Hbuilder内更改SVN地址(svn服务器IP变更)
- 使用思科模拟器 Cisco Packet Tracer 模拟交换机基本配置