android 实现简单登录

一直知道WEB登录之后是通过session保持回话的,现在安卓却不知道怎么弄了。

研究了一下,记录一下。直接上代码:

服务器端:

index.jsp

<%@page import="java.io.PrintWriter"%>
<%@page import="com.sun.org.apache.xml.internal.serialize.Printer"%>
<%@page import="com.google.gson.JsonObject"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	//测试,只用一个用户名登录,不设密码
	String userName = request.getParameter("userName");

	PrintWriter pw = response.getWriter();
	//只要用户名符合集可登录
	if(userName.equals("miquan")) {
		//返回安卓端的json
		JsonObject json = new JsonObject();
		json.addProperty("success", true);
		json.addProperty("sessionId", request.getSession().getId());

		//保存在服务器端的session
		request.getSession().setAttribute("userName", "I am a test name.");

		pw.write(json.toString());
		pw.flush();
	} else {
		JsonObject obj = new JsonObject();
		obj.addProperty("success", false);
		pw.write(obj.toString());
		pw.flush();
	}
%>

session.jsp

<%@page import="javax.websocket.Session"%>
<%@page import="java.io.PrintWriter"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	PrintWriter pw = response.getWriter();
	//获取到同一个session,而不是从新生成一个session,这样就达到我要的效果了
	pw.write((String)session.getAttribute("userName"));
	pw.flush();
%>

安卓端:

			//登录
			btnLogin.setOnClickListener(new OnClickListener() {
				@Override
				public void onClick(View v) {
					FinalHttp fh = new FinalHttp();
					fh.get("http://172.27.35.1:8080/login/index.jsp?userName=miquan", new AjaxCallBack<Object>() {
						@Override
						public void onSuccess(Object t) {
							//获取返回来的json
							String str = t.toString();
							str = str.trim();
							try {
								JSONObject obj = new JSONObject(str);
								boolean success = obj.getBoolean("success");
								//登录成功
								if(success) {
									//app = (MyApplication) this.getApplication();
									//MyApplication添加了属性sessionId和isLogin
									app.setLogin(true);
									app.setSessionId(obj.getString("sessionId"));
									Toast.makeText(app, "登录成功", Toast.LENGTH_SHORT).show();
								} else {
									Toast.makeText(app, "登录失败", Toast.LENGTH_SHORT).show();
								}
							} catch (JSONException e) {
								e.printStackTrace();
							}
							super.onSuccess(t);
						}
						@Override
						public void onFailure(Throwable t, int errorNo,
								String strMsg) {
							Log.e("miquan", "failure  " + strMsg);
							super.onFailure(t, errorNo, strMsg);
						}
					});
				}
			});
			//测试
			btnSession.setOnClickListener(new OnClickListener() {
				@Override
				public void onClick(View v) {
					FinalHttp fh = new FinalHttp();
					//添加session,连请求一起发送,这里服务器用的是java开发的
					fh.addHeader("Cookie", "JSESSIONID=" + app.getSessionId());
					fh.get("http://172.27.35.1:8080/login/session.jsp", new AjaxCallBack<Object>() {
						@Override
						public void onSuccess(Object t) {
							Log.e("miquan", t.toString());
							super.onSuccess(t);
						}
						@Override
						public void onFailure(Throwable t, int errorNo,
								String strMsg) {
							Log.e("miquan", "failure  " + strMsg);
							super.onFailure(t, errorNo, strMsg);
						}
					});
				}
			});

马上下班了,不多写。。。

android 实现简单登录,布布扣,bubuko.com

时间: 2024-08-26 04:40:41

android 实现简单登录的相关文章

Android简单登录系统

很长时间没有写博客了,最近一直在写android for gis方面的项目.不过这篇博客就不写gis方面的了,今天刚刚做的一个简单的android登录系统.数据库是android自带的sqlite,sqlite的优势就不用我说了哈.下面进入正题. 1.数据库Help类 我们需要编写一个数据库辅助类来访问sqlite数据库.在数据库辅助类中,可以完成数据库的创建,表的增加.删除.修改.查询等操作. 1 public class DBHelper extends SQLiteOpenHelper {

android简单登录注册服务端代码实现

长时间不写,知识都淡忘了!现在实现简单登录注册功能,供以后参考!!!! 项目下载地址: https://github.com/majunm/TestServiceDemo.git 服务器: Tomcat/7.0.40  数据库: mysql5.0 数据库创建: mysql 正确安装 配置完path 后 如下界面: mysql -u root -p    // 连接mysql数据库 create database july;//创建数据库 数据库名 july show databases; //

MingQQ Android版发布了,可以在Android手机上登录你的QQ,收发消息哦...

最近为了学习Android开发,特意将原来写的MingQQ Windows版移植到了Android上面,以此练手.通过这次练习,学习到了不少Android开发的相关知识,特别是界面开发部分. MingQQ的界面模仿了Android QQ的基本功能,虽然体验性完全比不上QQ,但目前技术有限,只能做到现在这水平了,更好的界面用户体验留待以后再提升吧. 下拉刷新目前使用了第三方开源库Android-PullToRefresh,以后再考虑替换成自己写的下拉刷新组件,并增加消息列表的右滑删除功能. 发布的

【转】Android Studio简单设置

原文网址:http://ask.android-studio.org/?/article/14 Android Studio 简单设置 界面设置 默认的 Android Studio 为灰色界面,可以选择使用炫酷的黑色界面.Settings --> Appearance --> Theme ,选择 Darcula 主题即可. 字体设置 系统字体设置 如果你的Android Studio界面中,中文显示有问题,或者选择中文目录显示有问题,或者想修改菜单栏的字体,可以这么设置.Settings -

Android UmengShareSDK第三方登录

Android UmengShareSDK 第三方登录- 今天就不废话了,集成平台第三方登录.市面上集成平台有shareSDK 和 Ument两种,shareSDK的ipa和服务好些,如果自己研究会很方便.其他功能错不多,这骗文章将概述Ument的第三方登录. 首先你得到友盟上去创建帐户和应用这是链接http://www.umeng.com/,获取你应用的Appkey在manifest中配置. 下载Ument集成SDK,复制res和blis到你工程中或者添加依赖库并配置mainfest. 在你的

移动端UI设计越来越流行的高斯模糊(Gaussian blur)和毛玻璃效果(磨砂效果),如何使用Android RenderScript简单实现?

高斯模糊(Gaussian blur)和毛玻璃效果(亦称磨砂效果),近两年在移动端的UI设计上越来越流行,特别是iOS手机上出现的较多,iOS系统也提供了相应的API帮助开发人员分分钟实现这两个效果.而Android系统则经历了一个漫长的探索过程,对图片的处理,从Java算法到NDK方式实现等,各种摸索层出不穷. 值得欣慰的是,Google终于在API 11中引入了 RenderScript ,一个强大的图片处理框架,帮助Android开发人员专注于图片处理算法而不是API的调度工作.使用Ren

SharePanel – Android上简单的一键分享,可分享到微信QQ和新浪微博

SharePanel – Android上简单的一键分享,可分享到微信QQ和新浪微博 SharePanel Android上简单的一键分享可分享到微信QQ和新浪微博 简介 效果图 代码块 简介 最近在写一个小程序长微博工具,效果就是编辑长微博,然后一键分享到微信.QQ和新浪微博. 一开始是想直接用Intent.createChooser(target, title)来做,后来一想,这样做不是很好啊,会有许多乱七八糟的应用弹出来,我想优先分享到微信.QQ和微博,于是找了点资料,将一键分享这个部分做

Android WIFI 简单用法

随着Wifi的普及,在开发App的时候对wifi的考虑越来越多了.例如程序的升级在wifi下可以省很多流量,在通信软件中的视频通话.可以实现高画质的传输等等,Android提供了WifiManager类来帮助开发者们管理Wifi.下面就简单来说一下WifiManager的简单用法把. 权限: 为了使用WfiManager 我们需要在Androidmanifest.xml 加入权限: //本例中使用了前两个.具体请按照需要添加权限. <uses-permission android:name=&quo

【SSH进阶之路】Struts基本原理 + 实现简单登录(二)

上面博文,主要简单的介绍了一下SSH的基本概念,比較宏观.作为刚開始学习的人可以有一个总体上的认识,个人觉得对学习有非常好的辅助功能,它不不过一个"瞭望塔".更是检验是否真正掌握全部内容的一个前提. Struts是基于MVC的框架,它进一步的对MVC进行了封装,它是怎么封装的,我们从先回想一下MVC再到Struts.再用Struts给大家实现一个简单登录的实例.我们開始吧. MVC 概念 MVC全名是Model View Controller,是模型(model)-视图(view)-控