gpt4 book ai didi

java - 如何在JSP登录页面中创建密码过期验证?

转载 作者:行者123 更新时间:2023-12-01 09:29:35 24 4
gpt4 key购买 nike

我需要知道我必须在哪里嵌入以下代码片段才能使应用程序在我的 JSP servlet 项目中工作?..此外我正在使用 MVC 架构..并且需要知道它是否正确,因为我是 jsp 新手。

public class PsswordSerializability {

private java.util.Date lastSignupdate;

public boolean isExpired(String password){

boolean check = false;

//Date lastSignupdate = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(lastSignupdate);
cal.add(Calendar.DATE, 45);

java.util.Date expirationDate = cal.getTime();

if(lastSignupdate < expirationDate){
System.out.println("reset password");
}
else {
System.out.println("success");

}
return check;
}}

上面是我需要执行的逻辑代码(密码应在 45 天后重置并提示对话框)。下面是sql查询部分的jsp代码。

<form>
<p>
<input type="text" name="oldpwd" placeholder="Old Password">
</p>
<p>
<input type="password" name="newpwd" placeholder="New Password">
</p>
<p>
<input type="password" name="cnfrmpwd" placeholder="Confirm Password">
</p>
<br>
<input type="submit" name="submit" value="RESET">

<%
String oldpass = request.getParameter("password");
String newpass = request.getParameter("newpwd");
String conpass = request.getParameter("cnfrmpwd");
String username = request.getParameter("username");
Connection con;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/hospitalmanagementsystemdb");
PreparedStatement ps = con.prepareStatement("SELECT * FROM com.hospitalsystem.dao.UserDAO WHERE Password='" + oldpass + "'");
rs = ps.executeQuery();
while (rs.next()) {
username = rs.getString(1);
newpass = rs.getString(2);
}

if (oldpass!=null&&newpass!=null&&newpass.equals(oldpass)) {
PreparedStatement ps1 = con.prepareStatement("UPDATE com.hospitalsystem.dao.UserDAO SET Password='" + newpass + "' where Username='" + username + "'");


ps1.executeUpdate();
%>



<p>Password has been Reset</p>

<%response.sendRedirect("index.jsp"); %>

<% } else {%>

<p>Password change failed. Try again!</p>

<% }
} catch (Exception e) {
out.println(e);
}
%>



</div>

我不知道应该使用哪些代码作为 servlet 和其他代码。请描述这里必须做什么。

最佳答案

这取决于要求....如果您希望密码过期。无论您的网站是否空闲。

  1. 登录后首先启动计时器。
  2. 使用上下文监听器,它将在每个请求中调用,并检查时间是否超过定义的时间。
  3. 如果时间超过则强制注销。

情况2:

另外,如果您希望密码在登录的用户闲置一段时间后失效,则可以使用 session 。

对于 session ,请遵循以下步骤

在 web.xml 中您需要添加以下代码..

<session-config>
<session-timeout>30</session-timeout>
</session-config>

然后在登录后立即设置 session ....

HttpSession session = request.getSession();
session.setAttribute("userName", "Tom");

您可以随时让 session 过期。如果时间超过30分钟, session 将自动过期。您只需检查一下即可。

if(session.getAttribute("userName")==null)
{
// log out
}

希望你现在能理解。

关于java - 如何在JSP登录页面中创建密码过期验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39556687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com