JSP 폼을 사용하고 Servlet을 통해 HomePage를 표시하는 간단한 로그인 응용 프로그램을 만들었습니다. 서블릿 내에 몇 개의 사용자 이름과 암호를 저장하는 HashMap도 만들었습니다. 사용자가 사용자 이름과 암호를 입력하면 내부에있는 것과 비교됩니다. 지도와 적절한 메시지가 표시됩니다. 그러나 문제는 여기에 HashMap은 사용자가 로그인 버튼을 눌렀을 때 초기화됩니다. 즉, 서블릿 프로그램이 시작될 때입니다. 직접지도를 초기화하고 언제든지 사용자가지도와 비교하여 로그에 기록해야합니다. 대신 로그인을 한 후에지도를 초기화하는 대신 자리를 뜰 수 있습니다. 여기 는 지금까지서버 시작시 해시 맵을 초기화하는 방법은 무엇입니까?
의 login.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login</title>
</head>
<body>
<center>
<b>LOGIN PAGE</b><br>
</center>
<form name="login" method="post" action="UserAuthentication">
<center>
USER NAME: <input type="text" name="username">
<br>
<br>
PASSWORD: <input type="password" name="password">
<br>
<br>
<input type="submit" value="LOGIN">
</center>
</form>
</body>
</html>
이 UserAuthentication.java
public class UserAuthentication extends HttpServlet{
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws IOException{
String username = request.getParameter("username");
String password = request.getParameter("password");
PrintWriter out = response.getWriter();
Map<String,String>users = new HashMap<String,String>();
users.put("Sheetal", "sss");
users.put("Raj","rrr");
users.put("Anjali", "aaa");
users.put("Bhavya","bbb");
if(users.containsKey(username) && users.containsValue(password))
{
if(password.equals(users.get(username)))
{
out.println("<html>"+
"<body>"+
"Login Successful" + "<br>" +
"Welcome " + username + "<br>" +
"</body>" +
"</html>");
}
}
else
{
out.println("<html>"+
"<body>"+
"Login Unsuccessful" + "<br>" +
"Try again" + "<br>" +
"</body>" +
"</html>");
}
}
}
TIA
.. – Prashant