springmvc 的controller设置@sessionAttribute("userName") jsp页面获取不到值,

springmvc 的controller设置@sessionAttribute("userName") jsp页面获取不到值,,第1张

Map m=new HashMap(); mput("user", username);//modeladdAttribute("user", username);你把屏蔽的这一行,取消屏蔽就可以在页面拿到。

 session因为请求(request对象)而产生,同一个会话中多个request共享了一session对象,可以直接从请求中获取到session对象。

session的创建和使用总在服务端,而浏览器从来都没得到过session对象。但浏览器可以请求Servlet(jsp也是Servlet)来获取session的信息。客户端浏览器真正紧紧拿到的是session ID,而这个对于浏览器 *** 作的人来说,是不可见的。

首先,mvc开发的是web应用,web应用中, 一般使用cookie或者session来进行身份验证。

参考:>

简单的说,Cookie是客户端记录的信息, Session是服务器记录的信息,  而身份验证需要使用的就是Cookie或者Session。

所以,mvc做身份验证(登录),第一步是验证身份,然后颁发给用户cookie或者session,

如:

//控制器代码:

[>}

那么记录了之后, 服务器就知道,这个人是ID = “100"的那个用户了,然后就是验证了。

在MVC中,一般使用FIlter来控制用户的权限,即某个Action需要怎么样的权限、或者指定某个用户才能进行访问,否则返回一个错误。

一般会重写过滤器, 在你的MVC项目中新建一个类:

public class MyAuthorizeAttribute : SystemWebMvcAuthorizeAttribute

//继承mvc自带的AuthorizeAttribute

    {

        protected override bool AuthorizeCore(>    }

这个过滤器很简单, 如果Session["UserId"] =="100"的时候,才会通过(返回true),其他都不允许通过。

最后一步,就是给需要验证身份的控制器加上这个过滤器即可。

[Authorize] 

//这个就是验证身份的, 如果用户没有登录,或者UserId不等于100,

系统会禁止他进入Index的界面

public ActionResult Index()

{

     Return View();

}

Enumeration keys=sessiongetAttributeNames();

获得session中所有attribute的name,但是session里的attribute不全是你自己存的哦,还有很多session自己的值,也不全是String的,你这么取值,本身就是错的,你可以将key放在一个List<String>中,然后放到session,在java端获取这个list,然后用for(String keyItem:list)来循环得到你要的key,还有,这样的一次性数据,不要放在session中,太占内存了,放到request里面传过来就好了

方式一 通过 URL 传参

通过 URL 挂接参数,如 /auth/getUseruserid='6'

服务器端方法可编写为: getUser(String userid) ,也可新增其他参数如>

demo:第一个地方登陆: 1得到请求的SessionId 和 登陆的 用户名 2把SessionId 存到application里,用户名存到当前session里 ActionContext ac = ActionContextgetContext(); MapString, Object applicationMap=acgetApplication(); MapString, Object sesisonMap = acgetSession(); //请求的sessionId String currentSeesionId= getRequest()getSession()getId(); applicationMapput(loanUserEgetUname(), currentSeesionId); sesisonMapput(CommonVarSSO_LOGIN_NAME_KEY,loanUserEgetUname());第二个地方登陆: 1获取浏览器的 SessionId 和取得 登陆的用户名 2在当前的session 里取得 用户名对应的关键字 ,用关键字在application里获取SessionId , 作比较,不相等就跳到登陆。 拦截器: / 初始化参数获得 / ActionContext actionContext = arg0getInvocationContext(); / >

以上就是关于springmvc 的controller设置@sessionAttribute("userName") jsp页面获取不到值,全部的内容,包括:springmvc 的controller设置@sessionAttribute("userName") jsp页面获取不到值,、spring mvc 禁止cookie session,怎么做、c#mvc 怎么验证登录状态等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9578292.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存