Servlets servlet重定向后jQuery移动页面未正确加载

Servlets servlet重定向后jQuery移动页面未正确加载,servlets,servlet-filters,Servlets,Servlet Filters,我在我的移动web应用程序中有一些基于jQuery mobile的页面,这些页面需要在无需身份验证的情况下访问,有些页面只有在用户通过身份验证后才能访问。我的解决方案基于本教程: 我已经做了@WebFilter检查用户尝试访问哪个页面,如果他没有经过身份验证(会话没有创建,或者会话中没有属性用户),他将被重定向到login.html页面 这是我的login.html页面中的相关代码: <form action="LoginServlet" method="post"> ... inp

我在我的移动web应用程序中有一些基于jQuery mobile的页面,这些页面需要在无需身份验证的情况下访问,有些页面只有在用户通过身份验证后才能访问。我的解决方案基于本教程:

我已经做了@WebFilter检查用户尝试访问哪个页面,如果他没有经过身份验证(会话没有创建,或者会话中没有属性用户),他将被重定向到login.html页面

这是我的login.html页面中的相关代码:

<form action="LoginServlet" method="post">
...
input elements for username and password
...
</form>
我的项目中的所有页面都是简单的*。html页面带有javascript,我使用jQuery mobile制作了一个移动web应用程序

我的问题是,重定向到所需页面后:

  • 它是地址栏,我看到了我的servlet的名称,LoginServlet,而在Chrome控制台中,我并没有看到我页面的内容,只有我的servlet的名称,LoginServlet,其内容为空。但是在浏览器中,我看到了所有静态内容,它被正确地呈现了
  • 最重要的问题是,我加载的页面中的所有动态内容都无法正常工作。动态内容我指的是一些在页面加载和呈现动态内容时应调用的ajax功能:

    $(document).on('pagebeforeshow',function(){
                initPage();
    });
    
  • 如果我重新加载页面,一切都开始正常工作

    我做错了什么?
    提前谢谢。

    这个问题实际上有两种解决方案。 第一个是在javascript中执行重定向,而不是在servlet中执行重定向,我认为这是更好的解决方案,有关更多详细信息,请参见: 如果在提交
    后需要从servlet执行此操作,则第二个解决方案是将
    数据ajax=“false”
    添加到
    标记中:
    ,此解决方案取自此处:

    到downvoter-至少您可以指定原因,这样我就可以知道我的答案出了什么问题。
    $(document).on('pagebeforeshow',function(){
                initPage();
    });