一直都知道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. 【Cocos2d-x 粒子系统】火球用手指飞起来

    程序: 创建球 sp1 = CCSprite::create("ball.png"); sp1->setPosition(ccp(10, visibleSize.height ...

  2. Android 解决Gallery下ScrollView滑动事件冲突

    在Gallery下,里面内容过长超出屏幕,这时我们可以用ScrollView来滚动,但是这样做了以后,会发现一个问题,Gallery的滑动事件和ScrollView的滑动事件起冲突,这时我们可以自定义 ...

  3. 鸟书shell 学习笔记(一) shell专注于概念和命令

    变量   variableName=value 等号左右不能有空格 变量内容有空格须要用"或者'括起来,可是 v="hello $name" $保持原有功能,单引號则不行 ...

  4. Codeforces 107B Basketball Team 简单概率

    题目链接:点击打开链接 题意: 给定n m h 表示有m个部门,有个人如今在部门h 以下m个数字表示每一个部门的人数.(包含他自己) 在这些人中随机挑选n个人,问挑出的人中存在和这个人同部门的概率是多 ...

  5. ffplay for mfc 代码备忘录

    在上传一个开源播放器项目ffplay for mfc.它会ffmpeg工程ffplay媒体播放器(ffplay.c)移植到VC环境,而使用MFC做一套接口.它可以完成一个播放器播放的基本流程的视频:解 ...

  6. Razor button

    比起Web Form開發,在後端(.cs)寫法上大同小異,可選擇C#或VB.NET來撰寫:而在前端(.cshtml..vbhtml)則有比較大的差別,自 MVC3版本後,就以Razor為前端檢視引擎, ...

  7. 在 树莓派上使用 c++ libsockets library

    rpi默认安装的编译器是gcc-4.6.2 而现在最新的c++ libsockets library 需要使用支持c++-11特征的编译器,即需要4.8.2才可以.为此,需要先升级编译器才可以支持编译 ...

  8. Java Web整合开发(79) -- Struts 2

    一. Struts 2.x 概述 不继承任何类的Action Struts 2的Action并不一定要实现Action接口或者继承ActionSupport,任何POJO都可以做Action,只要这个 ...

  9. 设计Mysql索引的原则

    1. 搜索的索引列,不一定是所要选择的列.换句话说,最适合索引的列是出如今WHERE 子句中的列,或连接子句中指定的列,而不是出如今SELECT keyword后的选择列表中的列. 2. 使用惟一索引 ...

  10. SessionA和pplication网上聊天室的网络范例

    login.aspx码,如以下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile=" ...