【问题标题】:wicket page expired检票页面已过期
【发布时间】:2012-11-01 14:43:36
【问题描述】:

我们有一个 java web 应用程序(使用 wicket) 从我的页面到其他 url 有几个 http 请求 有时我们的页面已过期 页面过期出现在 Firefox 中但未出现在 chrome 中 我们认为这是因为 wicket 更改地址可能是出于安全原因 如果这个想法是真的,如何防止检票口地址改变

所以我的问题是:为什么我的页面的 url 经常更改 从“http://IPaddress:8080/myApp/myPage”到“http://IPaddress:8080/myApp/myPage/?x=nLoy8Gx3J9W9GGieNNBndQ”到“http://IPaddress:8080/myApp/?x=a8T- eIw8IixNrgLDxszosg”等等。 请注意,我的页面上有一个简单的提交表单。

我问它是因为我们认为我们的页面过期原因与 url 更改有关。

【问题讨论】:

  • 那么问题是什么?
  • 为什么检票口经常改变我的页面的网址
  • 由于您没有告诉我们实际代码,我只能说这是因为 Wicket 就是这样工作的。你可以阅读更多关于它的信息here。

标签: java jakarta-ee web-applications wicket


【解决方案1】:

页面过期页面在页面存储中找不到当前请求的页面时显示。这可能有不同的原因:

  • http 会话已过期,因此该会话的所有页面都已从页面存储中删除。使用((HttpServletRequest)getRequestCycle().getRequest().getContainerRequest()).getSession().getMaxInactiveInterval() 检查会话到期间隔。
  • 已超出存储大小,并且已擦除存储中的页面。 使用getSession().getApplication().getStoreSettings().getMaxSizePerSession() 检查大小。
  • 将页面保存到页面存储时出现错误,现在无法从页面存储中检索页面。

【讨论】:

  • 在 wicket 1.4 中有类似 getStoreSettings() 的东西吗?
  • 在 Wicket 1.4 SecondLevelCacheSessionStore sessionStore = (SecondLevelCacheSessionStore)getSession().getApplication().getSessionStore() 中应该是这样的DiskPageStore pageStore = (DiskPageStore)sessionStore().getStore(); pageStore.getMaxSizePerSession();
猜你喜欢
  • 1970-01-01
  • 2010-09-28
  • 2020-05-22
  • 2022-06-11
  • 1970-01-01
  • 1970-01-01
  • 2013-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多