由于当前智能手机的普及,且智能手机中Android用户占的比重也越来越大,这也就意味着有越来越多的人使用Android操作系统的手机。然而越来越多的网站论坛也都随即开发了自己的Android客户端,如网易、新浪新闻Android客户端以及百度贴吧、天涯、豆瓣Android客户端。对这些有人会说我不装客户端,用手机浏览器也可以进这些网站论坛啊,这的确是可以的。我们就用手机浏览器也可以访问这些论坛和网站的。

那随之而来的问题就是:我们为什么要开发一款Android客户端呢?对于这个问题,我想说明一下开发一款Android客户端有以下的几点好处:首先客户端确定性强,也就是我们进哪个网站的客户端,我看到就只是这个网站的信息,而不会看到其他网站的信息;再者,客户端容易定制,不管网站的界面开发的怎么样,在客户端上我们完全可以重新定义数据显示样式和各个界面;还有一点,客户端可以增加我们网站的流量,一个好的客户端相对于浏览器可以吸收更多的用户访问。上面简单说了开发一款客户端的几点好处,那如何为自己的网站开发一款Android客户端呢,接下来我们就来系统的介绍一下如何开发一个网站的Android客户端。

我们接下来的介绍将分节展开,首先我们今天讲到就是关于我们如何通过Android客户端来访问我们的服务器,也就是如何实现Android客户端与服务器的交互。这里说名一下我们使用的服务器端是Tomcat,数据库是使用的MySQL,然后整个网站是基于Java EE开发的,使用的开发模式是Jsp+Servlet。我们的网站是一个基于Java EE开发的一个专卖儿童用品的购物网站。那我们看一下我们的网站的主页效果,如下图所示:

我们这里的数据库包括的表有:记录商品信息的Product(商品)表,还有记录用户信息的User(用户)表,还有用于产品分类的Type(类型)表,以及用于购物车功能的Oder(订单)表。整个网站的基本功能在这里我们就不具体介绍了,我们主要讲解如何开发其Android客户端。

首先我们考虑如何通过Android客户端来实现用户登录的功能。我们要实现登录,那么在数据库这端我们需要查询的表即是User(用户)表,通过对用户登录时输入的用户名的“密码”字段的查询,来判断其输入的密码是否与查询的密码一致,若一致则登录成功,若不一致或查询的密码结果返回为空,则说明输入密码错误或者该用户名未注册,那么登录失败。所以我们可以对请求端返回对应的信息。如下代码我们在服务器端建立一个Servlet用于用户登录的逻辑操作。我们给这个文件命名为:UserServlet.java,然后下面就是我们这个Servlet的具体实现代码:

package com.wust.babyhousing.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import com.wust.babyhousing.dao.UserDao;

import com.wust.babyhousing.daoimpl.UserDaoImpl;

import com.wust.babyhousing.entity.User;

public class UserServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setCharacterEncoding("UTF-8");//设置编码格式

request.setCharacterEncoding("UTF-8");

String uName=request.getParameter("userName");//获取用户名

String uPass=request.getParameter("pwd");//获取密码

String client="pc";//pc为默认客户端类型

//获取客户端类型

if(request.getParameter("client")!=null)client=request.getParameter("client");

String mgs="";

UserDao userDao=new UserDaoImpl();

User user=userDao.findUser(uName);

if(user!=null&&user.getuPass()!=null&&user.getuPass().equals(uPass)){

if(client.equals("android")){//如果为Android客户端,则返回true,表示登录成功

PrintWriter out = response.getWriter();

out.print("true");

}else{//如果不是Android客户端,则跳转到登录成功的页面

HttpSession session=request.getSession();

session.setAttribute("user", user);

mgs="index.jsp";

request.getRequestDispatcher(mgs).forward(request, response);

}

}else{

if(client.equals("android")){//如果为Android客户端,则返回false,表示登录失败

PrintWriter out = response.getWriter();

out.print("false");

}else{//如果不是Android客户端,这显示登录失败的页面

mgs="login.jsp";

request.getRequestDispatcher(mgs).forward(request, response);

}

}

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doGet(request, response);//调用doGet方法

}

}

在这里我们看到这里面传来的参数不只是有两个,还包括一个表示客户端类型的参数。也就是代码中的client这个String变量,它获取的是当前的客户端类型,我们默认的客户端类型为PC端,若是Android客户端登录我们会拿到“android”这个值,所以我们就可以返回不同的数据到对应客户端。若是PC端的客户端,我们就会跳转到对应的界面。而若是Android客户端,我们会返回true和false来判断到底是登录成功了,还是登录失败。其中在这个Servlet中我们使用到了一个我们自定义的类UserDao,对于这个类主要是用于我们的服务器与数据交互,我们通过findUser(uName)这个方法可以获取对于用户名的用户类的实体。这些类的及方法的源码大家完全可以自己实现,所以在这里我们就不在贴出了。那么我们可以看看Android客户端的源码该如何实现,下面是我们用户登录的部分源码:

public String send() {// 连接服务器,验证登录

String result = "";

String target = "http://172.16.9.15:8080/babyhousing/UserServlet";//登录验证地址

HttpClient httpclient = new DefaultHttpClient();

HttpPost httpRequest = new HttpPost(target);

List params = new ArrayList();

params.add(new BasicNameValuePair("userName", strName));//用户名

params.add(new BasicNameValuePair("pwd", strPwd));//密码

params.add(new BasicNameValuePair("client", "android"));//Android客户端标识

try {

httpRequest.setEntity(new UrlEncodedFormEntity(params, "utf-8"));

HttpResponse httpResponse = httpclient.execute(httpRequest);

if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {

result += EntityUtils.toString(httpResponse.getEntity());

} else {

result = "请求失败!";

}

} catch (Exception e1) {

e1.printStackTrace();

}

return result;//返回结果

}

这是我们验证用户登录的一个方法,我们通过调用这个方法来实现登录验证。我们会把调用send()方法的结果放到一个String变量str里面。然后下面就是开始判断登录是否成功的步骤了。其中我们要注意上面服务器的登录验证地址,若是写错容易拿不到结果或者无法登录成功。我们要判断是否登录成功,只要调用一下str.contains("true"),也就是判断contains中是否包含“true”,若包含则显示登录成功,否则登录失败。我们做的是一个购物网站,做的是一个登录付款的功能,如下图我们就是登录付款的页面截图:

 

通过上面的截图以及源码我们可以看到,我们由Android客户端登录服务器,其实不是很复杂,我们主要是实现在Android客户端这边将用户输入的信息进行简单处理,再通过网络传给服务器,服务器接到我们客户端的处理将会进行相应的处理操作。这些操作我们在Servlet里面实现就可以了。

好了,本节介绍到此结束,若还有问题可以留言,对于以上实现有兴趣的同学可以自己动手试试,尝试自己去实现一下。希望你会有收获!那么我们后续问题再讨论,谢谢!

android 开发客户端开发,【Android应用】Android网站客户端的开发介绍(1)相关推荐

  1. asp.net学校门户网站系统VS开发sqlserver数据库web结构c#编程计算机网页项目

    一.源码特点        ASP.NET学校门户网站系统是一套完善的计算机web设计系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发.开发环境为vs2010,数据库为sqlserver ...

  2. java-php-net-python-教学网站设计与开发计算机毕业设计程序

    java-php-net-python-教学网站设计与开发计算机毕业设计程序 java-php-net-python-教学网站设计与开发计算机毕业设计程序 本源码技术栈: 项目架构:B/S架构 开发语 ...

  3. Android网站客户端开发

    注:本文来自友盟-安卓巴士教程大赛第一名获奖作品,作者安卓巴士的ID为liupeinye.推荐给所有刚刚开始接触Android开发的朋友们! 本文面向Android初级开发者,有一定的Java和And ...

  4. Android利用Jsoup解析html 开发网站客户端小记。

    这些天业余时间比较多,闲来无事,想起了以前看过开发任意网站客户端的一篇文章,就是利用jsoup解析网站网页,通过标签获取想要的内容.好了废话不多说,用到的工具为 jsoup-1.7.2.jar包,具体 ...

  5. android仿疯狂猜图源码,Android开发实现高仿优酷的客户端图片左右滑动切换功能实例【附源码下载】...

    本文实例讲述了Android开发实现高仿优酷的客户端图片左右滑动切换功能.分享给大家供大家参考,具体如下: 本例是用ViewPager去做的实现,支持自动滑动和手动滑动,不仅优酷网,实际上有很多商城和 ...

  6. Android开发的参考书籍和参考网站

    在学习Android开发的过程中,参考优秀和相关书籍和网站是十分必要的.在学习的过程中,手边一定要有一本参考书,在可以上网的环境中学习,随时有问题可以利用这些资源找到答案.所有的技术学习都必须与实践相 ...

  7. Android开发— 2016_最流行的Android组件、工具、框架大全(二)

    2019独角兽企业重金招聘Python工程师标准>>> 泡在网上的日子 首页 代码 话题 问答 标签 关于 登录注册 首页 › 安卓开发 › android开发 Android开发- ...

  8. android高级开发面试!五年Android开发者小米、阿里面经,Android篇

    最近我在接受采访时被问到我关于成为一名伟大的程序员见解.这是一个有趣的问题,我认为我们都可以是伟大的程序员,无论我们的天赋如何,如果我们遵循一些规则的话--我相信--这应该是常识.实际上,这些规则并不 ...

  9. 安卓巴士总结了近百个Android优秀开源项目,覆盖Android开发的每个领域_拔剑-浆糊的传说_新浪博客...

    http://www.apkbus.com/android-17627-1-1.html 安卓巴士总结了近百个Android优秀开源项目,覆盖Android开发的每个领域 bayou 发表于 2011 ...

  10. android studio开发app实例_基于Android输入法开发,制作一个微信斗图APP

    刘望舒 读完需要 20分钟 速读仅需12分钟 作者:小学生° 来源:搜狐技术产品 01 导读 微信斗图的应用有很多,但大部分都是通过微信分享来实现的,需下载 APP,下载表情并分享到微信联系人,操作步 ...

最新文章

  1. 推荐算法工程师的成长之道
  2. java中HashMap在多线程环境下引起CPU100%的问题解决
  3. Uploadify导致Chrome频繁崩溃Crash
  4. 中小企业私有云解决方案浅谈
  5. 终端滑模matlab程序,滑模变结构控制 MATLAB程序
  6. python运行是哪个键_python – 如何使用回车键调用按钮命令
  7. PHP7 网络编程(四)signal信号【待】
  8. 《用户网络行为画像》读书笔记(二)
  9. 固高运动控制卡学习3 --前瞻预处理
  10. 某集团大数据平台整体架构及实施方案
  11. JAVA学习(五):Java面向对象编程基础
  12. 云客Drupal源码分析之插件系统(中)
  13. Spring学习的书-夏昕(2)
  14. 五年从程序员到架构师 架构师进阶之路
  15. 如果你对未来还有点迷茫不妨来看一下,必看的软件测试指引!!!
  16. BAT机器学习面试1000道
  17. java批处理框架 pdf_《Spring Batch 批处理框架》PDF 下载
  18. linux复制与粘贴操作的快捷键
  19. webview 清除缓存的方式
  20. 【高精度】高精度加法 C++题解

热门文章

  1. windows server 开机自动启动项
  2. 荣耀电视鸿蒙安装第三方软件,荣耀电视如何安装第三方应用?当贝市场几招搞定!...
  3. java aes cbc iv_关于AES加解密中CBC模式的IV初始化向量的安全性问题
  4. 13家著名IT公司logo变迁史
  5. 支付宝-沙箱环境配置和使用
  6. Javascript中的prototype是什么
  7. 微信的自动回复接入聊天机器人
  8. 《MLB棒球创造营》:走近棒球运动·纽约大都会队
  9. “燕云十六将”之三弟王静
  10. 教师计算机基础培训心得,教师集中培训心得体会