前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >android 简单的登录

android 简单的登录

作者头像
全栈程序员站长
发布2022-07-06 10:20:35
6360
发布2022-07-06 10:20:35
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是全栈君。

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

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

server结束:

index.jsp

代码语言:javascript
复制
<%@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

代码语言:javascript
复制
<%@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();
%>

安卓端:

代码语言:javascript
复制
			//登录
			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);						}					});				}			});
代码语言:javascript
复制
			//測试
			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);
						}
					});
				}
			});

现在下班,多写。。。

版权声明:本文博客原创文章,转载请注明原文地址。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117271.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年1月8,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档