我正在使用jsp,javascript等开发我的第一个webapp,初始页面是“login.jsp”。在该页面中,有一个到注册页面的链接,当用户通过Servlet提交注册表单时,他会被发送回登录页面。但我希望在页面加载的同时在登录页面内显示成功警报。如何在重定向到下一页后显示div?
我不知道确切的方法,使这一切成为可能。我想过在servlet中设置一个像“notifier”这样的请求属性,所以登录页面知道用户是否来自注册。但是,我不确定如何“读取”该属性。我已经尝试过使用JavaScript,jsp等等。没有任何工作适合我。 此外,我不知道是否应该使用RequestDispatcher.forward()重定向,并将通知程序设置为会话属性。 (在这里我还有一个问题,在登录页面的样式表没有加载)。
这是一些在注册页面:
//....
<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:这是我的第一个问题。
我用'req.setAttribute( “注册”,真)'然后'req.getRequestDispathcer( “../的login.jsp”)。前(REQ,RESP)',但问题是对的阅读login.jsp中的属性,除了第一次,该属性不存在。 '' – BrunoLedesma
div无论如何正在显示。 – BrunoLedesma
你应该尝试传递一个字符串作为属性'req.setAttribute(“注册”,“真”),然后比较它像'if(su ===“true”)''。 请注意,您也可以将整个对象作为属性发送,然后使用'$ {objectName.fieldName}'访问该对象的字段。 – solstinger