作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要知道我必须在哪里嵌入以下代码片段才能使应用程序在我的 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 和其他代码。请描述这里必须做什么。
最佳答案
这取决于要求....如果您希望密码过期。无论您的网站是否空闲。
情况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/
我是一名优秀的程序员,十分优秀!