一直都知道WEB通过登录后session拿着回答,如今,安卓不知道怎么弄的。

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

server结束:

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"%>
<%
//測试,仅仅用一个username登录。不设password
String userName = request.getParameter("userName"); PrintWriter pw = response.getWriter();
//仅仅要username符合集可登录
if(userName.equals("miquan")) {
//返回安卓端的json
JsonObject json = new JsonObject();
json.addProperty("success", true);
json.addProperty("sessionId", request.getSession().getId()); //保存在server端的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。连请求一起发送。这里server用的是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 简单的登录的更多相关文章

  1. Xamarin.Android再体验之简单的登录Demo

    一.前言 在空闲之余,学学新东西 二.服务端的代码编写与部署 这里采取的方式是MVC+EF返回Json数据,(本来是想用Nancy来实现的,想想电脑太卡就不开多个虚拟机了,用用IIS部署也好) 主要是 ...

  2. Android破解学习之路(一)——简单的登录破解

    最近突然心血如潮开始学了Android破解,初入门,便是将经验记录下来. 准备工作: 1.一个登录简单APP 在我们破解之前,我们需要做一个简单的登录APP,输入相应的账号与密码便是弹出登录成功的对话 ...

  3. Android UmengShareSDK第三方登录

    Android UmengShareSDK 第三方登录- 今天就不废话了,集成平台第三方登录.市面上集成平台有shareSDK 和 Ument两种,shareSDK的ipa和服务好些,如果自己研究会很 ...

  4. Android 微信第三方登录(个人笔记)

    今天在写微信登录,花了半天时间搞定.然后写下自己的笔记,希望帮助更多的人...欢迎各位指教. 微信授权登录,官方说的不是很清楚.所以导致有一部分的坑. 微信注册应用平台的应用签名,下载 微信签名生成工 ...

  5. 以最简单的登录为例,诠释JS面向对象的简单实例

    JavaScript,是前端开发人员必须会的一门技术,从JS演变出来的有很多框架,先说说几个热门的框架吧: JQuery:这个技术必须会,如果不会,那一定要会查api,知道怎么写,要看得懂英文文档,这 ...

  6. android 注册、登录实现程序

    注册页面: user_register.xml: <?xml version="1.0" encoding="utf-8"?> <Linear ...

  7. Android简单逐帧动画Frame的实现(二)

    Android简单逐帧动画Frame的实现   Android简单逐帧动画Frame的实现 1.逐帧动画 即是通过播放预先排序好的图片来实现动态的画面,感觉像是放电影. 2.实现步骤: 1. 在工程里 ...

  8. Java结合SpringBoot拦截器实现简单的登录认证模块

    Java结合SpringBoot拦截器实现简单的登录认证模块 之前在做项目时需要实现一个简单的登录认证的功能,就寻思着使用Spring Boot的拦截器来实现,在此记录一下我的整个实现过程,源码见文章 ...

  9. 【知了堂学习笔记】java web 简单的登录

    最近皮皮潇在学习java web,刚接触了简单的东西,所以今天给大家带来一个简单的登录实现. 页面: 页面代码: <%@ page language="java" conte ...

随机推荐

  1. POJ 1276  Cash Machine(多重背包)

    Cash Machine Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 24132 Accepted: 8446 Descrip ...

  2. android平台TextView使用ImageSpan画廊GIF图像

    android-gif-drawable(https://github.com/koral--/android-gif-drawable/releases)开源项目---是一个蛮不错的android ...

  3. ZOJ1093 动态规划

    给你n砖,有三个长宽高.每一个无限制的访问.叠加在一个条件的长度和宽度必须严格格长度和宽度大于下面的一个,叠加求最大高度. 思维: 每块砖终于放置在根据本方法可以把六种,然后,对于长度和宽度排序.这是 ...

  4. 垂死或涅槃重生 -- Delphi XE5 我们将宣布感情的回归

    Delphi 在很大程度上是一个被遗忘我的工具. 无论是在使用RapidSql , 我还没有收到Embarcadero 本公司发行参与邀请Delphi XE5该公告将. 可能有人会问,为什么Embar ...

  5. oj 小黑熊偷玉米

    Description 小黑熊的邻居bob 家里种很多玉米,玉米被布置在一条线上 .小黑熊贪心要偷玉米.但bob家是太多了玉米,所以小黑熊决定选择时间间隔[l,r]偷.因为小黑熊的幸运号码是k,的区间 ...

  6. Cocos2d-X在SwitchControl使用

    SwitchControl控制类中的一个开关的发挥了作用似在现实生活中开关 因为控制相对简单,我没有做过多的解释.直接在代码 首先在project文件夹下的Resource文件夹中加入三张图片 在Sw ...

  7. [小结][N种方法]实现WPF不规则窗体

    原文:[小结][N种方法]实现WPF不规则窗体 WPF实现不规则窗体,方法很多很多多.... 本文总结DebugLZQ认为简洁高效的几种方法 实现WPF不规则窗体的几种常用的方法如下: 1.使用Ble ...

  8. [LeetCode66]Plus One

    题目: Given a non-negative number represented as an array of digits, plus one to the number. The digit ...

  9. 正确openvSwitch不同种类port认识

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdm9uemhvdWZ6/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...

  10. PHP訪问MySql数据库 0基础篇

    在站点后台,常常要与数据库打交道.本文介绍怎样使用XAMPP来管理MySql数据库及怎样用PHP来訪问MySql数据库. 一.使用XAMPP来管理MySql数据库 首先使用XAMPP打开MySql的管 ...