android 简单的登录
一直都知道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 简单的登录的更多相关文章
- Xamarin.Android再体验之简单的登录Demo
一.前言 在空闲之余,学学新东西 二.服务端的代码编写与部署 这里采取的方式是MVC+EF返回Json数据,(本来是想用Nancy来实现的,想想电脑太卡就不开多个虚拟机了,用用IIS部署也好) 主要是 ...
- Android破解学习之路(一)——简单的登录破解
最近突然心血如潮开始学了Android破解,初入门,便是将经验记录下来. 准备工作: 1.一个登录简单APP 在我们破解之前,我们需要做一个简单的登录APP,输入相应的账号与密码便是弹出登录成功的对话 ...
- Android UmengShareSDK第三方登录
Android UmengShareSDK 第三方登录- 今天就不废话了,集成平台第三方登录.市面上集成平台有shareSDK 和 Ument两种,shareSDK的ipa和服务好些,如果自己研究会很 ...
- Android 微信第三方登录(个人笔记)
今天在写微信登录,花了半天时间搞定.然后写下自己的笔记,希望帮助更多的人...欢迎各位指教. 微信授权登录,官方说的不是很清楚.所以导致有一部分的坑. 微信注册应用平台的应用签名,下载 微信签名生成工 ...
- 以最简单的登录为例,诠释JS面向对象的简单实例
JavaScript,是前端开发人员必须会的一门技术,从JS演变出来的有很多框架,先说说几个热门的框架吧: JQuery:这个技术必须会,如果不会,那一定要会查api,知道怎么写,要看得懂英文文档,这 ...
- android 注册、登录实现程序
注册页面: user_register.xml: <?xml version="1.0" encoding="utf-8"?> <Linear ...
- Android简单逐帧动画Frame的实现(二)
Android简单逐帧动画Frame的实现 Android简单逐帧动画Frame的实现 1.逐帧动画 即是通过播放预先排序好的图片来实现动态的画面,感觉像是放电影. 2.实现步骤: 1. 在工程里 ...
- Java结合SpringBoot拦截器实现简单的登录认证模块
Java结合SpringBoot拦截器实现简单的登录认证模块 之前在做项目时需要实现一个简单的登录认证的功能,就寻思着使用Spring Boot的拦截器来实现,在此记录一下我的整个实现过程,源码见文章 ...
- 【知了堂学习笔记】java web 简单的登录
最近皮皮潇在学习java web,刚接触了简单的东西,所以今天给大家带来一个简单的登录实现. 页面: 页面代码: <%@ page language="java" conte ...
随机推荐
- CC2530 外部中断 提醒
#include "ioCC2530.h" #define uchar unsigned char #define led1 P1_0 #define led2 P1_ ...
- 第一章_servlet
[Servlet与Jsp学习指南] *学习这servlet前.需要下载servlet-api.jar,MyEclipse给自己带来的需求javaEE3.0的天赋足以使用注解获得的版本号servlet ...
- POJ 1002 487-3279 Trie解读
这个问题的解决方法是多种多样的.如本文所用,Trie为了解决这个问题. 它也可用于hash表.map等解决方案,由于输入是特定7数字,因此,你应该能够解决. 如本文所用,Trie不是非常快.最后,我主 ...
- 将ACCESS数据库迁移到SQLSERVER数据库
原文:将ACCESS数据库迁移到SQLSERVER数据库 将ACCESS数据库迁移到SQLSERVER数据库 ACCESS2000文件 用ACCESS2007打开,并迁移到SQLSERVER2005里 ...
- 8 shell命令之find
find命令,像cd一样经常使用.只是可能大多数时间仅仅要那么一两个參数就足够使用了.或者说,勉强够用了.可是当我们主动的去翻看一下find的手冊,会发现原来更实用的功能都没实用到. 本文结合自己的使 ...
- _00013 一致性哈希算法 Consistent Hashing 新的讨论,并出现相应的解决
笔者博文:妳那伊抹微笑 博客地址:http://blog.csdn.net/u012185296 个性签名:世界上最遥远的距离不是天涯,也不是海角,而是我站在妳的面前.妳却感觉不到我的存在 技术方向: ...
- Centos memcached的php拓展 管理界面
确定已安装apache 一.安装php5 1.安装libxml2 tar zxvf libxml2-.tar.gz cd libxml2- ./configure --prefix=/usr/loca ...
- 使用Intellij Idea生成可执行文件jar,开关exe文件步骤
确保其Java代码是没有问题的,在IDEA常执行的,然后.按以下步骤: 步骤一:打开File -> Project Structure -> Artifacts,例如以下图 步骤二:点击& ...
- win7/win8通过媒体流(DLNA技术)共享音乐照片和视频
http://www.jb51.net/os/windows/79421.html 工具/原料 Windows 7/8/10家庭高级版以上版本 家庭WiFi局域网(无须连接互联网) 支持DLNA的手机 ...
- filestream.read(buffer,offset,count)的正确解释
filestream.read(buffer,offset,count) offset是buffer的偏移量 所以,filestream.read(buffer,1,count)会报下面的错 Syst ...