如何在重定向到下一页后显示div?

时间:2017-04-25 00:37:22

标签: javascript java jsp servlets

我正在研究我的第一个webapp,使用jsp,javascript等。初始页面是“login.jsp”。在该页面内,有一个指向注册页面的链接,当用户通过Servlet提交注册表单时,他将被发送回登录页面。但我希望在页面加载的同时在登录页面内显示成功警报。

我不知道使这成为可能的确切方法。我想在servlet中设置一个像“notifier”这样的请求属性,因此登录页面知道用户是否来自注册。但是,我不确定如何“阅读”该属性。我已经尝试过使用javascript,jsp等等。没有什么对我有用。 此外,我不知道我是否应该使用RequestDispatcher.forward()重定向并将通知程序设置为Session属性。 (这里我有另一个问题,登录页面的样式表没有加载。)

这是一些注册页面:

 //servlet
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html");
        if (req.getParameter("signup") != null) {
            User user = new User();
            //user setters and register
            //..
            //Should i use (?):
            //req.setAttribute("SignUp", true);
        } //..
        //rest of the servlet
        resp.sendRedirect("../login.jsp");
    }

一些servlet:

//Rest of Login Page
//Here is something i've tried.
<script type="text/javascript">
    window.onload = function () {
        var b = <%request.getAttribute("SignUp");%>;
        if (b) document.getElementById('success').style.display = 'block';
        else document.getElementById('success').style.display = 'none';
    }
</script>
//Rest of Login Page
<body>
 //..
   <div class="alert alert-success" id="success">
       <strong>Success!</strong> You can now login.
   </div>
//..
</body>
//Rest of Login Page

登录页面的一些内容:

counter
PD:这是我的第一个问题。

1 个答案:

答案 0 :(得分:0)

在第一个webapp上工作很好!

您绝对可以通过请求属性与刚刚注册的天气用户进行通信。问题是,如果页面login.jsp位于WEB-INF内,则您必须使用request.getRequestDispathcer("../login.jsp").forward(request, response)。 如果它在根目录中,您可以使用resp.sendRedirect("../login.jsp");

您设置请求参数SignUp的注释代码看起来很好。

其他的是你不恰当地使用scriptlet。也就是说,当您想要为var b分配值时,您需要使用<%=(与您使用的<%相比较)来返回值。 更好的是,您可以使用表达式语言 - 只需将${SignUp}放在var b =之后(尝试将来以全部小写形式键入属性标签)。

JS的其余部分看起来很好。