一、不要把页面要用的js,css等文件给拦截了css
1)ignoreUrls表示这两个Url经过过滤器时放行session
2)ignoreType表示若是请求的文件的文件类型是这几种的某一种时直接放行对象
固然放行的动做是在后台实现的,只是进过滤器的时候会取得param-values的值,在根据这些值作是否放行的动做get
二、在Session中取当前登陆用户名的问题io
我用的Struts2,登陆成功后,将用户名放在Session里面:session.put("loginMgName", vo.getMgName() ),登录
在过滤器写后台
String userName = (String)request.getSession().getAttribute("loginMgName");获得的userName是null,request
换做请求
String userName = (String) ActionContext.getContext().getSession().get("loginMgName");获得也是null,im
而后我在Action里面,当登陆成功后加了下面这句:
HttpSession sess = ServletActionContext.getRequest().getSession();
sess.setAttribute("loginMgName", vo.getMgName());
结果仍是取到null
后来找来找去,也不到什么状况就改为下面这样
HttpSession sess = ServletActionContext.getRequest().getSession();
sess.setAttribute("userName", vo.getMgName());
过滤器写
String userName = (String)request.getSession().getAttribute("userName"); 正确取到当前登陆用户
目前还没搞清楚 Action的Session和HttpSession究竟是什么关系。。。
-----------------------------2016/7/14-----------------------------------------
今天发现关于上面session中取值的问题彻底是胡扯
之因此出现上面说的那种现象是由于我作了一个 退出 按钮,没有取到值是由于我点了退出按钮的时候清掉了session的值
后面换了个key又往session中赋值了用户名,而退出的动做并无清掉新key的value,因此致使从新登陆后请求其余页面通过过滤器的时候出现只能取到某一个key下的用户名,因此最后结论是 Action的Session和HttpSession 实际上是同一个对象的不一样表现形式
神呐,原谅这么愚蠢的我吧!!!