用户首次访问我的应用主页
http://[My domain]
会生成表单
的网址http://[My domain]/main/PageHome;jsessionid=v_qqIGVQlKBbkNSOcHkAQw?0
没关系,但我主页上的每个链接都有表格的网址
http://[My domain]/main/..;jsessionid=v_qqIGVQlKBbkNSOcHkAQw?0-1.ILinkListener-lnkAbout
(此处复制的特定“关于我们”链接URL的长度为102个字符)。这些网址无效,因为存在两个点而不是PageHome
来正确完成路径。
有什么方法可以配置GAE / J来抑制这个URL缩写,还是这个操作是Web框架的省?
作为一个(非常糟糕的)解决方法,我已经在我的链接的URL中编写了JSessionIDs的抑制,并且正在编写应用程序以在会话cookie被禁用时发出警告。但我会很感激任何指针。
Ian Marshall
Web应用程序服务器:GAE / J 1.6.1.1(不是dev服务器)(我知道:它不是最新版本)
Web框架:Apache Wicket 1.5.3
产生上述效果的Web浏览器:
·Mozilla Firefox 10.0.1
·Microsoft Internet Explorer 8.0.6001.18702
·在运行Google Android 2.3.5的HTC Wildfire S上找到
答案 0 :(得分:1)
我遇到了同样的问题。通过使用以下方法覆盖我的应用程序类中的newWebRequest来修复它:
protected WebRequest newWebRequest(HttpServletRequest servletRequest,
String filterPath) {
WebRequest webRequest = super.newWebRequest(servletRequest, filterPath);
return new ServletWebRequest(servletRequest, filterPath, webRequest.getUrl().canonical());
}
答案 1 :(得分:0)
Ian,重新创建问题的示例代码会有所帮助..
答案 2 :(得分:0)
我解决了这个问题。
我的所有网页都来自我的PageBase类,而后者又来自Wicket的WebPage。
·我通过停止在我的WebApplication
中覆盖来禁用我自动删除JSessionID public String ServletWebResponse.encodeURL(CharSequence url)
·在我的PageBase构造函数中,我确定是否检测到(会话)cookie存储与否。
·如果没有,那么我举起一个
org.apache.wicket.RestartResponseException(final Class<C> pageClass)
显示我的PageCookiesDisabled。这会从包含“..”字符的无效URL中断“未找到”错误,这是我之前遇到过的。