我希望我的这个登录页面加载两次,即第一次用户输入username和password,然后从servlet获得响应,然后它将被重定向到带有“messages”的登录jsp页面。
我有两个按钮用于登录和注销。这个脚本可以像我试过的那样通过使用count变量加载两次吗?任何其他方法也将是首选。
附注:我试过使用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
login.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")%>);
另一个问题:只能在登录成功后启动会话,以便在每个页面检查用户是否有效
一旦用户向服务器发出请求,就会创建新的会话(如果上一个会话不存在)。因此无法阻止会话的创建。
此外,如果登录失败,您可以使用会话进行几个googd操作,例如,您可以在会话中存储登录尝试次数,并在检查登录信息之前将其与允许的最大登录尝试次数
进行比较,从而限制用户在几次失败后的最大登录尝试次数。
我正在尝试用JSP和Servlet实现一个简单的登录页面示例。下面是我的servlet代码;
记录器文件中的日志- org.springframework.Security.Access.event.loggerlistener-安全授权失败,原因是:org.springframework.Security.Access.accessdeniedexception:访问被拒绝;通过身份验证的主体:org.springframework.security.authentication.ano
我现在一直在努力使用我的登录页面来让组件呈现Loggedin组件。我的前端是Reactjs,后端是NodeJS。我对nodejs、expression和react都是新手。 在loginform组件上,我使用fetch进行了一次post,它将用户名和密码传递给后端的相应endpoint。没问题。在后端,它读取我存储用户(不使用任何数据库)的jsonfile来查找匹配项,如果用户名和密码都匹配,则它
本文向大家介绍JSP+Servlet+JavaBean实现登录网页实例详解,包括了JSP+Servlet+JavaBean实现登录网页实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JSP+Servlet+JavaBean实现登录网页的方法。分享给大家供大家参考。具体如下: 这里涉及到四个文件: 1. 登录页面:login.html 2. 登录成功欢迎页面:login_succes
我使用的是Spring Security 4.1.1,但我遇到了一个问题:我试图访问URL,应用程序会重定向到登录页面。到现在为止,一直都还不错。 但是,成功登录后,应用程序会再次将我重定向到登录页面,并且不会创建任何会话,因此即使尝试直接访问URL(在URL栏中键入),应用程序也会重定向到登录页面。 有一些URL我必须要求登录才能访问它们。其他的,我可以访问无需身份验证。这些我不需要验证的URL
我想用selenium登录这个网页。我尝试了selenium的find_element_by_,并使用浏览器中的检查元素。但是我无法登录。我在搜索id、名称、类名,这样我就可以用send_keys传递数据,但是没有做到这些。有人能帮助我提供一些代码来将数据推送到所需的字段吗?谢谢。这就是我到目前为止所做的。 在此之后,我试图点击按钮登录使用 但它失败了。它给出了无法找到“登录”的错误。由于默认情况