JSP中怎样用session保存并验证用户登录信息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP中怎样用session保存并验证用户登录信息相关的知识,希望对你有一定的参考价值。
用JSP做一个用户登陆页面,成功后显示登陆信息,错误则返回登陆页面,现在就是用session保存并验证用户登录信息不会,登录成功后返回的用户名和密码为空,麻烦把session用法说的详细点,最好配合代码,谢谢了
1、实现session中是键值对的方法代码。
2、实现内置对象的方法代码。
3、实现获取session的方法代码。
4、实现session对象的方法代码。
5、实现在page中import="java.util.*,cn.zt.entity.Teache的方法代码。
6、实现session中是对象数组js的方法代码。
注意事项:
JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。
参考技术A username="zhangsan";password="123";
if(//验证登录成功)
request.getSession().setAttribute("sessionname",username); //用Session保存用户名
request.getSession().setAttribute("sessionpwd",password); //保存密码
response.sendRedirect("main.jsp");
else
response.sendRedirect("login.jsp");
main.jsp文件中
登录成功!用户名为:<%=request.getSession().getAttribute("sessionname")%> 密码为:<%=request.getSession().getAttribute("sessionpwd")%>本回答被提问者采纳 参考技术B 后台:
//声明常量,方便其它地方取用(可建常量工具类)
public final static String SESSION_USER = "user";
public void login()
//验证省略...(根据条件用户名+密码,查询数据库,返回对象则成功)
//保存user对象到session
ActionContext.getContext().getSession().put(SESSION_USER, user);
前台:
<div>
...
用户名:$session.user.name
密码:$session.user.password
</div>
cookie和session实现登录验证
回话技术,比如在做登录功能的时候,需要配合是用存储在客户端的cookie信息,以及存储在服务端的session来实现登录功能。在cookie中保存了用户的信息,特别是一个特殊的令牌信息,当用户拿着这个特殊的令牌来访问网站的时候,网站会从cookie中获取这个特殊令牌去数据库session中去查询是否有这个对应的令牌的信息,如果有则验证成功,就可以把用户的信息返回给客户端了,如果验证失败则提示用户没有登录等等提示信息。
cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生。
cookie的工作原理是:由服务器产生内容,浏览器收到请求后保存在本地;当浏览器再次访问时,浏览器会自动带上cookie,这样服务器就能通过cookie的内容来判断这个是“谁”了。
cookie虽然在一定程度上解决了“保持状态”的需求,但是由于cookie本身最大支持4096字节,以及cookie本身保存在客户端,可能被拦截或窃取,因此就需要有一种新的东西,它能支持更多的字节,并且他保存在服务器,有较高的安全性。这就是session。
问题来了,基于http协议的无状态特征,服务器根本就不知道访问者是“谁”。那么上述的cookie就起到桥接的作用。
我们可以给每个客户端的cookie分配一个唯一的id,这样用户在访问时,通过cookie,服务器就知道来的人是“谁”。然后我们再根据不同的cookie的id,在服务器上保存一段时间的私密资料,如“账号密码”等等。
总结而言:cookie弥补了http无状态的不足,让服务器知道来的人是“谁”;但是cookie以文本的形式保存在本地,自身安全性较差;所以我们就通过cookie识别不同的用户,对应的在session里保存私密的信息以及超过4096字节的文本。
另外,上述所说的cookie和session其实是共通性的东西,不限于语言和框架
####
1. cookie
HTTP 协议是无状态的。因此,若不借助其他手段,远程的服务器就无法知道以前和客户端做了哪些通信。Cookie 就是「其他手段」之一。 Cookie 一个典型的应用场景,就是用于记录用户在网站上的登录状态。
用户登录成功后,服务器下发一个(通常是加密了的)Cookie 文件。客户端(通常是网页浏览器)将收到的 Cookie 文件保存起来。下次客户端与服务器连接时,将 Cookie 文件发送给服务器,由服务器校验其含义,恢复登录状态(从而避免再次登录)。
#####
1.1 描述
浏览器端的回话技术 |
#####
1.2 cookie方法
设置:response.set_cookie(key, value, max_age=None, exprise=None) |
注意:cookie不能跨浏览器
参数定义:
max_age和exprise时间:
max_age : 整数,指定cookie过期时间,以秒为单位 |
设置10天后过期:
exprise=datetime.datetime.now() + timedelta(days=10) 10天后过期 |
永不过期:
exprise设置为None表示为永不过期 |
####
2. session
#####
2.1 描述
服务端会话技术,依赖于cookie |
#####
2.2 开启session设置
1)django中启用SESSION
在settings中修改如下地方
INSTALLED_APPS: |
每个HttpResponse对象都有一个session属性,也是一个类字典对象
#####
2.3 常用操作
request.session[‘user’] = username 设置数据 |
3.使用session+cookie实现登录验证
1.创建登录验证的views方法
def (request): |
2.创建相应的装饰器
def login_required(func): |
3.实现注销
|
以上是关于JSP中怎样用session保存并验证用户登录信息的主要内容,如果未能解决你的问题,请参考以下文章
jsp验证成功在servlet中怎样设置session值返回给页面,页面怎样获得session