标签: httpsession

如何使用Spring将依赖项注入HttpSessionListener?

如何使用Spring和没有调用将依赖项注入HttpSessionListener,如context.getBean("foo-bar")

spring servlets dependency-injection httpsession servlet-listeners

24
推荐指数
2
解决办法
2万
查看次数

Java HttpSession属性存储在哪里?

对象是否已序列化并发送给用户并返回每个连接(存储在cookie中)?

或者它们是否存储在服务器堆中,而cookie只是一个非常小的标识符?

有关此主题的任何信息都会有所帮助.

谢谢

java cookies tomcat servlets httpsession

20
推荐指数
2
解决办法
1万
查看次数

OWIN中间件可以使用http会话吗?

我有一些代码,我正在为ASP.NET和SignalR复制,我决定将其重写为OWIN中间件,以消除这种重复.

一旦我运行它,我注意到它HttpContext.Current.Session是null,我没有在IOwinContext我的中间件上看到任何会话对象.

是否可以从OWIN访问http会话?

c# asp.net session httpsession owin

20
推荐指数
2
解决办法
1万
查看次数

HTTP会话的范围是什么?

HTTP会话的范围究竟是什么?

我一直在谷歌搜索,但似乎无法得到一个直接的答案 - 当用户关闭他们的浏览器时,会话应该被清除",但我不清楚 - 这是否意味着关闭浏览器窗口,或退出浏览器应用程序?同时打开两个浏览器窗口的用户是否维护两个不同的会话?浏览器标签是否始终属于同一个会话?

http httpsession

19
推荐指数
2
解决办法
2万
查看次数

使用有状态会话Bean来跟踪用户的会话

这是我的第一个问题,我希望我做得对.

我需要处理一个Java EE项目,因此,在开始之前,我正在尝试做一些简单的事情,看看我能做到这一点.

我被Stateful Session Beans困住了.

这是一个问题:如何使用SFSB跟踪用户的会话?我看到的所有情况,"把"的最终SFSBHttpSession的属性.但我不明白为什么!我的意思是,如果bean是STATEFUL,为什么我必须使用HttpSession来保存它?

EJB容器的任务不是将正确的SFSB返回给客户端吗?

我试过一个简单的计数器豆.在不使用会话的情况下,两个不同的浏览器具有相同的计数器bean(单击"增量"会更改它们的值).使用会话,我有两个不同的值,每个值对应每个浏览器(点击Firefox上的"增量",只添加一个到Firefox的bean).

但我的老师告诉SFSB保持"与客户的会话状态",那么为什么它不能在不使用HttpSession的情况下工作呢?

如果我理解正确的,不使用HttpSession中SFSB同样用做它的SLSB呢?

我希望我的问题很明确,而且我的英语不是那么差!

编辑:我正在使用登录系统.一切顺利,完成登录后,我会看到一个显示用户数据的个人资料页面.但重新加载页面会使我的数据消失!我尝试在记录时添加HttpSession,但这样做会使数据在注销后保持不变!

session ejb stateful javabeans httpsession

16
推荐指数
1
解决办法
1万
查看次数

Grails在Service类中获得Session和Management

我有Grails Session的问题.我正在考虑为我的会话处理提供服务类.所以我创建了一个名为"SessionService"的类(在grails-app/services/grails /下).

class SessionService {
    static transactional = true
    GrailsWebRequest request = RequestContextHolder.currentRequestAttributes()
    GrailsHttpSession session = request.session

    def setTestvar(String value) {
        if (session != null)
            session.setAttribute("sTeststring", value)
    }

    def getTestvar() {
        if (session != null)
            session.getAttribute("sTeststring")
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,我得到一个Nullpointer-Exception:" 方法抛出了'java.lang.NullPointerException'异常.无法评估org.codehaus.groovy.grails.web.servlet.mvc.GrailsHttpSession.ToString() ".

我的服务类的用法,例如在控制器中:

class SampleController {

    SessionService sessionService

    def selectAnything = {

        sessionService.setTestvar("test-value")
        render(view: "testview")
    }
}
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么?这是正确的方法吗?或者我是否必须在每种方法中设置"session = request.session"?

希望得到你的帮助.

非常感谢你提前.

干杯,

马尔科

service session grails nullpointerexception httpsession

15
推荐指数
3
解决办法
2万
查看次数

为什么getSession()在短时间内远离后续请求中返回相同的会话?

我发送一个$.getJSON(HTTP GET)请求两次(使用不同的数据),一个接一个(假设我们有request1和request2).我可以在FF和Chrome的开发者工具中看到我有相同的cookie:JSESSIONID=FD0D502635EEB67E3D36203E26CBB59A标题字段.

在服务器端,我尝试获取会话:

HttpSession session = request.getSession();
boolean isSessionNew = session.isNew();
String sessionId = session.getId();
String cookieFromRequestHeader = request.getHeader("cookie");
Run Code Online (Sandbox Code Playgroud)

如果我为两个请求打印这些变量,请求1
:

isSessionNew:true
cookieFromRequestHeader:JSESSIONID = FD0D502635EEB67E3D36203E26CBB59A
session.getId():9212B14094AB92D0F7F10EE21F593E52

请求2:

isSessionNew:true
cookieFromRequestHeader:JSESSIONID = FD0D502635EEB67E3D36203E26CBB59A
session.getId():E8734E413FA3D3FEBD4E38A7BF27BA58

如您所见,服务器在a上为request2清楚地创建了一个新会话request.getSession().但为什么会这样呢?它理论上应该是同步的,并为您提供与第一个请求(首先达到此代码)创建的会话相同的会话.现在,为了确保会话创建已同步,我执行了以下操作:

@Autowired
private ServletContext servletContext;
...
synchronized (servletContext) {
    HttpSession session = request.getSession();
    boolean isSessionNew = session.isNew();
    String sessionId = session.getId();
    String cookieFromRequestHeader = request.getHeader("cookie");
}
Run Code Online (Sandbox Code Playgroud)

我得到了同样的结果.

如果我再次发送相同的请求(比如request1'和request2'),我得到,
request1':

isSessionNew:false
cookieFromRequestHeader:JSESSIONID = E8734E413FA3D3FEBD4E38A7BF27BA58 session.getId():E8734E413FA3D3FEBD4E38A7BF27BA58

请求2' :

isSessionNew:false
cookieFromRequestHeader:JSESSIONID = E8734E413FA3D3FEBD4E38A7BF27BA58
session.getId():E8734E413FA3D3FEBD4E38A7BF27BA58 …

java jquery spring http-get httpsession

14
推荐指数
1
解决办法
3万
查看次数

java.lang.IllegalStateException:getAttribute:会话已经失效

在我的代码中使portletRequest会话无效后,我收到以下异常

Aug 27, 2013 7:07:13 AM org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet xyzapplication Servlet threw exception java.lang.IllegalStateException: getAttribute: Session already invalidated
    at org.apache.catalina.session.StandardSession.getAttribute(StandardSession.java:1165)
    at org.apache.catalina.session.StandardSessionFacade.getAttribute(StandardSessionFacade.java:122)
    at com.liferay.portal.servlet.SharedSessionWrapper.getAttribute(SharedSessionWrapper.java:75)
    at com.liferay.portlet.PortletSessionImpl.getAttribute(PortletSessionImpl.java:55)
    at org.springframework.web.portlet.context.PortletRequestAttributes.updateAccessedSessionAttributes(PortletRequestAttributes.java:256)
    at org.springframework.web.context.request.AbstractRequestAttributes.requestCompleted(AbstractRequestAttributes.java:48)
    at org.springframework.web.portlet.FrameworkPortlet.processRequest(FrameworkPortlet.java:552)
    at org.springframework.web.portlet.FrameworkPortlet.processAction(FrameworkPortlet.java:460)
    at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:70)
    at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:48)
    at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:111)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:73)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593)
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530)
    at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:534)
    at com.liferay.portlet.InvokerPortletImpl.invokeAction(InvokerPortletImpl.java:579)
    at com.liferay.portlet.InvokerPortletImpl.processAction(InvokerPortletImpl.java:294)
    at com.liferay.portal.action.LayoutAction.processPortletRequest(LayoutAction.java:944)
    at com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:688)
    at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:249)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    at …
Run Code Online (Sandbox Code Playgroud)

java session spring spring-mvc httpsession

14
推荐指数
1
解决办法
3万
查看次数

如何从JSESSIONID加载Java HttpSession?

我想HttpSession通过JSESSIONID 获取Java .可能吗?如果有,怎么样?

java servlets httpsession

13
推荐指数
1
解决办法
3万
查看次数

Java HttpSession

是否在Java servlet中创建了HttpSession

HttpSession s = request.getSession();
Run Code Online (Sandbox Code Playgroud)

在我的代码中我没有写那个,但是当我使用时if (request.getSession(false) == null) ...,它不起作用.为什么?

java httpsession

13
推荐指数
2
解决办法
3万
查看次数