您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Java >> Struts2结合Dwr 在Action中获取session问题

Struts2结合Dwr 在Action中获取session问题

来源:网络整理     时间:2016/7/30 12:16:35     关键词:

关于网友提出的“ Struts2结合Dwr 在Action中获取session问题”问题疑问,本网通过在网上对“ Struts2结合Dwr 在Action中获取session问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: Struts2结合Dwr 在Action中获取session问题
描述:

要实现注销功能


public boolean loginOut() throws Exception {
try{
Map session = ActionContext.getContext().getSession();//该方式获取session失败,注销失败
session.remove("user");
// WebContext webContext = WebContextFactory.get();//该方式获取session成功,注销成功
// webContext.getSession().removeAttribute("user");
}catch(Exception e){
e.printStackTrace();
}
return true;
}

报错:

java.lang.NullPointerException
at org.action.UserAction.loginOut(UserAction.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:740)
at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:744)
at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:593)
at org.directwebremoting.dwrp.BaseCallHandler.handle(BaseCallHandler.java:90)
at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:120)
at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:141)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:389)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)

1.为什么用Map session = ActionContext.getContext().getSession()获取session失败呢?
2.使用WebContextFactory时,在上面显示一条横线,Myeclipse提示:deprecated,就是弃用,不赞成使用,那现在用什么代替了呢?
解决方案1:

你试试用另外一种方式
  Action implements SessionAware{
       Map session = new HashMap()
       
       //setter;
  }

解决方案2:

1.因为你那个方法只能在action中使用,struts2会负责初始化ActionContext对象,放到普通类中它肯定是空,因为缺少上下文环境。
2.虽然不推荐使用但是也可以用的,还有另一种方式就是给这个函数加个参数:


 public boolean loginOut(javax.servlet.http.HttpSession session) throws Exception {
        try{
            session.getAttrubute("user");  //获得 
            session.removeAttribute("user");//注销
        }catch(Exception e){
            e.printStackTrace();
        }
        return true;
    }

以上介绍了“ Struts2结合Dwr 在Action中获取session问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3024883.html

相关图片

相关文章