Tag: session

如何在spring mvc中处理浏览器后退按钮

当用户登录时会存储会话信息。 并且当用户注销时会删除会话信息。 但是当我点击浏览器的后退按钮时,会显示用户信息。 由于会话已经消失,但我们无法确定是否执行了用户登录操作。 我该如何解决这个问题? —————————-log out ——————————- @RequestMapping(value=”logout.htm”,method = RequestMethod.GET) public void logOut(HttpSession session,HttpServletResponse response,HttpServletRequest request) throws IOException{ final String refererUrl = request.getHeader(“Referer”); response.setHeader(refererUrl, “no-cache”); response.setHeader(“Cache-Control”, “no-cache”); response.setDateHeader(“Expires”, 0); session.removeAttribute(“user”); session.invalidate(); response.sendRedirect(“index.htm”); } ———————————- login ————— @RequestMapping(value=”/userLogin”,method=RequestMethod.POST) public @ResponseBody JsonResponse login(@ModelAttribute(value=”user”) User user, BindingResult result,HttpServletRequest request,HttpSession session,ModelMap model) throws UnsupportedEncodingException{ JsonResponse res = new […]

每个用户JSF一个会话

我刚开始学习JSF,我想知道这个问题。 我有16个复选框。 当我打开页面并且我的兄弟也打开它时,似乎我们有相同的会话。 当我点击其中一个复选框时,我的兄弟浏览器也会检查它。 选中的复选框保存在private ArrayList selectedBoes = new ArrayList(); 我的ManagedBean是SessionScoped。 为什么会发生这种情况以及如何避免它?

Jetty Websocket IdleTimeout

我最近一直在使用Jetty API (9.4.5 release)带注释的websockets,并与之聊天。 但是我遇到了一个问题,5分钟后(我认为是默认计时器),会话关闭(这不是由于错误)。 我发现的唯一解决方案是通知我的socket关闭事件并在新套接字中重新打开连接。 但是我已经阅读了stackOverflow,通过在WebsocketPolicy中设置IdleTimeOut ,我可以避免这个问题: 我试过设置为3600000 ,但行为根本没有改变 我也尝试将其设置为-1但我得到以下错误: IdleTimeout [-1] must be a greater than or equal to 0 private ServletContextHandler setupWebsocketContext() { ServletContextHandler websocketContext = new AmosContextHandler(ServletContextHandler.SESSIONS | ServletContextHandler.SECURITY); WebSocketHandler socketCreator = new WebSocketHandler(){ @Override public void configure(WebSocketServletFactory factory){ factory.getPolicy().setIdleTimeout(-1); factory.getPolicy().setMaxTextMessageBufferSize(MAX_MESSAGE_SIZE); factory.getPolicy().setMaxBinaryMessageBufferSize(MAX_MESSAGE_SIZE); factory.getPolicy().setMaxTextMessageSize(MAX_MESSAGE_SIZE); factory.getPolicy().setMaxBinaryMessageSize(MAX_MESSAGE_SIZE); factory.setCreator(new UpgradedSocketCreator()); } }; ServletHolder sh = […]

在JBoss AS中部署的2个Java EE应用程序之间共享会话

我有2个Java EE应用程序需要共享登录用户的一些常见用户相关数据。 无论如何,我可以从一个应用程序在会话中存储此数据并在第二个应用程序中检索该数据吗? 即类似于.NET中的粘性会话。

如何使用Tiles禁用所有JSP的会话创建?

有没有办法让我的所有JSP在使用Jasper(Tomcat)时不创建会话? 显然Jasper会创建一个会话,除非你指定不: 是否有办法为整个webapp(session =“false”)执行此操作? 它似乎你无法改变: org.apache.jasper.runtime.JspFactoryImpl.getPageContext 这将创建一个会话,除非JSP说session = false。

具有跨域请求的重复Flex会话

当我在本地提出请求时,我没有任何问题维护我的FlexSession; 但是,当我从另一台计算机发出请求时,它会为每个请求创建重复的FlexSession。 我注意到每个请求的JSESSIONID都不同,这可能会导致欺骗性会话。 但我不知道为什么会这样。 我得到的具体错误是: Channel.Ping.Failed error Detected duplicate HTTP-based FlexSessions, generally due to the remote host disabling session cookies. Session cookies must be enabled to manage the client connection correctly. 我的crossdomain.xml如下: 编辑: 我们在后端使用spring-flex集成。 此外,这发生在多个浏览器中; 我们尝试过IE,Firefox和Chrome。 这是Flex代码: var ro : RemoteObject = new RemoteObject(“myDestination”); ro.endpoint = “http://localhost/foo”; ro.source = “com.bar.MyService”; var op : AbstractOperation = […]

如何基于用户数据的一些哈希生成自定义JSESSIONID以便复制会话

是否可以覆盖Tomcat的JSESSIONID嵌入式生成器,以便能够根据用户的登录名创建此cookie的自定义值? 为什么我需要这个:我有一个带有“粘性会话”的负载均衡器,配置为使用相同的JSESSIONID将请求路由到同一个服务器,我想防止情况,当同一个用户可以在不同的服务器上启动两个不同的会话时。 PS:这一切都与Amazon EC2有关

JSP – 如何在session.setAttribute中传递javascript var?

学习JSP的新手,并尝试在两个页面之间传递数据。 我想知道是否可以将javascript变量传递给session.setAttribute() 目前,我可以通过2个jsp文件传递一串文本,如下所示: JSP1: JSP2: var someText = “” 哪个工作正常。 但是,是否可以将var传递给session.setAttribute ? 我将一些数据存储在javascript变量中,并希望将其发送到第二个JSP文件。 例如: var number = 7; 我试过这个,我得到错误“数字无法解析为变量” 谢谢!

如何检查所有用户登录到我的应用程序

我有一个基于Web的应用程序,使用userName和密码登录。 现在我如何检查所有用户在那个时间登录的特定时间。 我正在使用会话管理,在应用程序中没有使用DB,一切都在文件系统上 编辑:1更傻的怀疑..如何用应用范围定义一个变量..这是什么类似的东西? test/MyEnv2 java.lang.Boolean true

用于tomcat的分布式HTTP会话状态服务器

我们的一个Spring MVC Web应用程序部署在多个Web服务器上,tomcat 7和LB在前面平衡并将请求分发到适当的tomcat服务器。 这个web farm的问题是每个tomcat服务器都能够存储和检索自己的HTTP会话,但LB可以向任何一个Web服务器发送请求。 因此,如果用户通过tomcatServer1为登录页面服务,那么它的HTTP会话将在其受尊重的服务器上创建,并且可能发生对于仪表板页面LB的第二次请求将其发送到没有HTTP会话的tomcatServer2,导致用户再次被重定向登录页面。 要克服这一点, 我们在LB上使用“Sticky Session”属性,因此如果用户(HTTP会话+用户的公共IP)首次从tomcatServer1提供,那么它将绑定到该服务器。 设置“Sticky Session”没有用,因为它没有平等地使用所有服务器。 另一种方法是,开发我们自己的会话状态服务器并在服务器上部署,然后所有服务器应该与该服务器通信以存储和检索会话对象/数据。 向Servlet容器提供自定义SessionManager 。 关于#2,如果我们能够开发状态服务器,那么我还必须修改与HttpSession.setAttribute()和HttpSession.getAttribute()相关的代码。 所以问题是,是否有可能为方法setAttribute和getAttribute覆盖HttpSession实现? 关于#3,我不知道这个解决方案是否会提供分布式状态会话服务器?