Hybrid--webview session保持--2

本文详细介绍了在Hybrid应用中如何保持WebView的Session。内容包括科普了Session和Cookie的区别,解释了为什么WebView需要Session保持,提供了获取和使用SessionId的代码示例,以及如何在WebView中正确加载页面以保持Session。作者分享了自己在实践中的解决方案和遇到的问题,为读者提供了一种可能的处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hybrid–webview session保持

这篇博客想写好久了,最主要的原因是刚开始接触session保持这一块的时候各种小白,网上爬来的代码大多是废话一堆或者是直接坑人的,各种不爽,昨天刚好解决一个session保持问题,想来这段时间也整理的差不多,写在这里留给自己和需要的人—–熊猫卓 20151119

科普

我们需要了解:
–1.什么是session、什么事cookie?
我的观点,了解即可session是保存在服务器端,cookie保存在客户端,用来标记登录状态的。cookie中有一个值JSESSIONID=FHNHBXJJJXNAKDKCK (这个值我随便写的)与session中的sessionId保持一致服务器就会认为你是已经登录过的,无需再次登录,服务器会根据这个sessionId来找到相应的session,当然web开发中有一些参数会保存在session中比如登录用户信息等,服务器找到session也就找到了登录用户。相反如果找不到这个session或者session中无相关参数,那就认为用户没有登录或者由于超时session失效了,提示用户重新登录。
–2.webview中为什么需要session保持
这个问题就很明显了,如果不做session保持,web端网页访问大多是通过session过滤,没有session那任何页面你都无法访问。当然有的同学 说可以配置部分jsp、action不被过滤,可是你认为这样真的好吗??

代码说话

-1.sessionId的获取
或者应该说cookie的获取,我们需要获取cookie中的JSESSIONID,保存在客户端备用下次访问页面时带上cookie,告诉服务器已经登录过了,可以安全放行了。
作者在自己的项目中的实现思路是这样的:在web项目中写一个servlert或者action,用来实现登录。android通过urlConnection访问登录方法,登陆成功后的sessionId返回到客户端保存
上码

// 根据地址创建URL对象
URL url = new URL(spec);
// 根据URL对象打开链接
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
// 设置请求的方式
urlConnection.setRequestMethod("POST");
// 设置请求的超时时间
urlConnection.setReadTimeout(8000);                           urlConnection.setConnectTimeout(8000);
// 传递的数据
String data = "userName=" + URLEncoder.encode(username, "UTF-8")
                        + "&pwd=" + URLEncoder.encode(pwd, "UTF-8")+ "&device=" + URLEncoder.encode("mobile", "UTF-8");
// 设置请求的头
urlConnection.setRequestProperty("Connection", "keep-alive")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值