Java Session获取/销毁
程序员文章站
2024-03-20 17:53:46
...
Session会话机制,它是保存在服务器里面的,就是当我们进入一个浏览器,浏览器会
自动给我们创建一个session保存用户的信息,当关闭浏览器的时候,session就销毁
了,Session在web项目中是经常用到的。下面是session的用法。
Session在web项目中的登录是基本都用上的,那么就以账号登录为例:
代码只是展示了最里面判断登录成功并保存数据到session的
//获取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数据
<%
String sessionName=(String)request.getSession().getAttribute("suserName");
Integer sessionUserId=(Integer)request.getSession().getAttribute("suserId");
%>
Js:
var UserID = <%=sessionUserId%>;
//--------- 获取到是否登录成功保存的用户ID --------------
if (UserID==null) {
$("#lal").html("");
$("#lal").append("<a href='#'>免费注册</a><span></span><a href='#'>立即登录</a>")
}else {
$("#lal").html("");
$("#lal").append("欢迎你:<a href='#'><%=sessionName%></a><a href=#'onclick='LoginOut()'>注销</a></label>")
}
有服务端验证登录成功保存到session,客户端获取session数据判断绑定,那么最后就
是要销毁session注销账号登录了,这个销毁跟关闭浏览器的销毁不同的就是,这个是
主动销毁,不同关闭浏览器,直接以代码销毁session达到注销账号的操作。
//============================ 注销 =============================
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();
}
上一篇: 顺序查找和折半查找
推荐阅读
-
Java Session获取/销毁
-
JS页面获取session(通过ajax)
-
Java设置session超时(失效)的时间
-
Java设置session超时(失效)的时间
-
Java通过sessionid获取session
-
钉钉 根据手机号码获取userId OapiUserGetByMobileRequest导包 java
-
Grails通过sessionId获取session对象
-
Java获取apk / ipa应用信息的思考与实践
-
JavaWeb - jsp,el表达式,会话管理,cookie,session技术,session的创建和销毁/清空购物车
-
《Cookie案例3》——————使用Cookie记录登录的用户名,并用Session获取到用户名