概要

安卓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传参和取参时的key    public 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 stub        users = 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

更多相关文章

  1. 服务器端向Android客户端的推送解决方案的讨论
  2. 图片、缓存-Android仿人人客户端(v5.7.1)——对从服务器端(网络)获取
  3. Android中Toast的常用使用方式总结
  4. Android(安卓)根证书管理与证书验证
  5. Android(安卓)自定义验证码输入框(支持粘贴连续性)
  6. Android(安卓)应用验证码模糊效果
  7. 申请Mob的SMSSDK的短信验证功能及获取包名和MD5签名
  8. Android逆向之旅---爆破应用签名的一种全新高效方式(Native+服务
  9. Android实现仿360手机卫士悬浮窗效果

随机推荐

  1. Fusion Garage宣布基于Android的Grid OS
  2. Android(安卓)4.0 Launcher2源码分析——
  3. (转)Android学习路线指南
  4. Android(安卓)Retrofit2.0实现文件上传和
  5. Android事件总线框架设计:EventBus3.0源码
  6. 常用控件及其属性(Button)
  7. android性能测试调试工具之dumpsys
  8. Android网络优先级及更改
  9. Android不能进行http请求,https无法抓包的
  10. Android之zip包换肤(极力推荐)