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

标签 javascript java jsp servlets

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

我不知道实现这一点的确切方法。我考虑过在servlet中设置一个像“notifier”这样的请求属性,这样登录页面就知道用户是否来自注册。但是,我不确定如何“读取”该属性。我已经尝试过使用 javascript、jsp 等,但没有任何效果。 此外,我不知道是否应该使用 RequestDispatcher.forward() 进行重定向并将通知程序设置为 session 属性。 (这里我有另一个问题,登录页面的样式表无法加载。)

这是一些注册页面:

//....
<form action="/servlet/UpdateUser" method="POST" accept-charset="utf-8" class="form" role="form">
//....        
   <button class="btn btn-lg btn-block signup-btn" type="submit" name="signup">Create my account</button>
</form>
//....

一些servlet:

 //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");
    }

部分登录页面:

//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

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

最佳答案

在您的第一个网络应用程序上干得好!

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

设置请求参数 SignUp 的注释代码看起来不错。

另一件事是您对 scriptlet 的不当使用。也就是说,当你想给 var b 赋值时,您需要使用<%= (与您使用的 <% 相比)返回一个值。 更好的是,您可以使用表达式语言 - 只需输入 ${SignUp}之后var b = (以后尝试以全小写形式键入属性标签)。

JS 的其余部分看起来不错。

关于javascript - 如何在重定向到下一页后显示 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43599720/

相关文章:

javascript - 如何处理 Firefox 在标签之间插入文本元素

java - Android 设备监视器无法在 Ubuntu 中启动

java - JAX-WS Soap 将 String... 转换为 List<String>

java - 如何在多个上下文之间共享我的 JSP .tag 文件?

java - 在 eclipse 中运行 servlet 导致服务器启动失败

javascript - JS 如何检查对象是否具有接口(interface)中未包含的属性?

javascript - 如何使用 jquery 比较两个文本框的值?

javascript - 如何使其成为提交按钮?

java - AsyncTask 中的 NullPointerException

两秒后 Java GUI 变得马虎