JSP:登录页面向servlet传递登录页面消息
JSP: Login page to servlet to login page message passing
我希望我的this登录页面加载两次,即第一次用户键入用户名和密码,然后从servlet获得响应,然后它将被重定向到带有"messages"的登录jsp页面。
我有两个用于登录和注销的按钮。这个脚本可以像我尝试过的那样通过使用count变量加载两次吗?任何其他方法也是优选的。
另一个问题:我是否可以在登录成功后才启动会话,这样我就可以在每个页面上检查用户是否有效?
p.S:我试过使用getAttribute
和setAttribute
,但它们不起作用。
if(userExists) {
// check if password matches username or not
if (pwd.equals(rs.getString("password"))) {
System.out.println("Login Successful");
message = "ValidUser";
} else {
message = "Invalid Password";
System.out.println("Invalid Password from userExists");
}
} else {
message = "Invalid Username";
System.out.println("Invalid Username");
}
request.getSession().setAttribute("message", message);
request.getSession().setAttribute("count", count); // count = 1;
response.sendRedirect(dest); // dest ==> same login.jsp page
登录.jsp:-
<script type="text/javascript">
var msg = <%= request.getAttribute("message") %>;
var cnt = <%= request.getAttribute("count") %>;
function log() {
if (cnt != 1) {
// document.userlogin.login.type = "submit";
alert("Form Submitted");
alert("count is " + cnt);
alert("msg = " + msg);
} else {
document.userlogin.login.type = "button";
if (msg == "ValidUser") {
document.userlogin.login.disabled = true;
document.userlogin.logout.disabled = false;
} else if (msg == "Invalid Password") {
alert("Invalid Password");
document.userlogin.userpass.focus();
} else if (msg == "Invalid Username") {
alert("Invalid Username/ Please register and then login");
document.userlogin.username.focus();
} else {
alert("msg = " + msg);
}
}
}
</script>
<form name="userlogin" method="POST" action="../Login" onload="log();" >
我可以看到的一个问题是,在.jsp页面中,您正在request
对象中查找message
和count
属性,这些属性实际上存在于session
中,而不是request
中。因此更改如下:
var msg = '<%= request.getAttribute("message") %>'; // Here session needs to be checked
var cnt = '<%= request.getAttribute("count") %>'; // Here session needs to be checked
从jsp中的隐式会话对象获取属性。
var msg = '<%= session.getAttribute("message")%>';
var cnt = parseInt(<%= session.getAttribute("count")%>);
另一个问题:can i have a session start only after login successfull so that i can check if user is valid or not at each page
一旦用户向服务器发出请求,就会创建一个新会话(如果以前的会话不存在)。因此,无法阻止创建会话。
此外,如果登录失败,您可以将会话用于多个googd操作,例如您可以通过存储会话中的登录尝试次数并在检查登录信息之前将其与maximum login attempts allowed
进行比较,将用户在多次失败后的最大登录尝试次数限制为。
相关文章:
- 登录时显示自定义错误消息
- 在jquery幻灯片登录表单上显示消息
- 如果使用 JavaScript 登录失败,如何在登录页面中显示消息
- CQ使用自己的消息登录
- 使用 JS 错误消息登录 PHP
- 检查数据库后,如何在同一表单上显示登录错误消息
- 如何使用 JavaScript 实现自动化登录到脚本编辑器中的消息窗口
- 如何在登录验证中自定义验证消息位置
- 使用 servlet 在登录页面本身中显示密码错误消息
- 角度 如何在登录页面上显示 http 错误消息
- JSP:登录页面向servlet传递登录页面消息
- 登录弹出窗口发送事件或消息给家长
- 如何在用户注册成功时显示消息框并将其重定向到登录页面?
- 如何即时通知登录用户的短消息
- 如何在用户注册后或他尚未登录时显示消息?
- 在angularjs中显示登录后的消息
- Nodejs只有特定的登录用户才能获得消息
- 触发弹出的href -请登录消息
- php显示登录状态消息不更新
- HTML表单将我重定向到登录,显示错误的登录消息