前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java Session获取/销毁

Java Session获取/销毁

作者头像
全栈程序员站长
发布2022-09-14 16:07:56
1.5K0
发布2022-09-14 16:07:56
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

Session会话机制,它是保存在服务器里面的,就是当我们进入一个浏览器,浏览器会 自动给我们创建一个session保存用户的信息,当关闭浏览器的时候,session就销毁 了,Session在web项目中是经常用到的。下面是session的用法。 Session在web项目中的登录是基本都用上的,那么就以账号登录为例: 代码只是展示了最里面判断登录成功并保存数据到session的

代码语言:javascript
复制
//获取session里的验证码	
String sessIdentityKey=	session.getAttribute("identityKey").toString();
//判断登录页传递过来的不等空并且等于session里的验证码
if(Tools.isNotNull(identityKey)&&identityKey.equalsIgnoreCase(sessIdentityKey)) 	{
	//根据登录页传过来的用户名跟密码查询到用户信息
	PwUsers users=pwUsersService.login(userName, enterpassword);
	if (users!=null) {
		session.setAttribute("SESSION_USER", users);
		//把用户名存到session
		request.getSession().setAttribute("suserName", users.getUserName());
		//把用户id存到session
		request.getSession().setAttribute("suserId", users.getUserId());	
		   jsonReturn.setState(true);
		jsonReturn.setMsg("登录成功");
		}else {
			jsonReturn.setState(false);
			jsonReturn.setMsg("账号或密码错误");
		}
	}else {
		jsonReturn.setState(false);
		jsonReturn.setMsg("验证码不正确");
}		

登录成功了,并且将用户名跟用户id保存到session了,要现在我需在前台获取到 session的数据,因为session是服务端的变量。jsp页面是客户端,那么怎么在客户 端获取到session呢。 在代码块 ————→ <% Java 代码(变量:_jspService方法的局部变量) %> 获取session数据

代码语言:javascript
复制
<%
 	String sessionName=(String)request.getSession().getAttribute("suserName");
	Integer sessionUserId=(Integer)request.getSession().getAttribute("suserId");
%>

Js:

代码语言:javascript
复制
var UserID = <%=sessionUserId%>;
//--------- 获取到是否登录成功保存的用户ID --------------
if (UserID==null) {
    	$("#lal").html("");
		$("#lal").append("<a href='#'>免费注册</a><span></span><a href='#'>立即登录</a>")    
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
}else {
        $("#lal").html("");
        $("#lal").append("欢迎你:<a href='#'><%=sessionName%></a><a href=#'onclick='LoginOut()'>注销</a></label>")    
}
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

有服务端验证登录成功保存到session,客户端获取session数据判断绑定,那么最后就 是要销毁session注销账号登录了,这个销毁跟关闭浏览器的销毁不同的就是,这个是 主动销毁,不同关闭浏览器,直接以代码销毁session达到注销账号的操作。

代码语言:javascript
复制
//============================ 注销 =============================
    function LoginOut() {
        if (window.confirm("确定要注销吗?")) {
            $.post("${ctx}/servlet/mainServlet?fun=loginOut", function (msg) {
            	 	location.reload();
             });
     	}
}
很简单,直接将整个session销毁掉,invalidate()
private void loginOut(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.getSession().invalidate();
}

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档