Я пытаюсь показать всю информацию пользователя учетной записи после входа в систему. Это работает нормально, когда я даю идентификатор вручную, но мне нужно получить информацию из учетной записи входа. Форма входа в систему работает, создание учетных записей работает, но я не могу получить идентификатор для текущей пользовательской сессии для отображения информации. У меня есть класс DAO, который выбирает учетные записи из идентификатора, и это работает. Но мне нужно иметь возможность выбрать идентификатор вошедшего в систему пользователя и дать в качестве параметра. Спасибо за помощь.
Вот мой код:
<%
if(session.getAttribute("sessionModel")!= null) {
UserSession model = (UserSession)request.getSession().getAttribute("sessionModel");
account account1 = AccountDAO.getAccountFromID(model.getUserId());
System.out.println(account1);
}
%>
Servlet:
@WebServlet("/UserSession")
public class UserSession extends HttpServlet implements Serializable {
private static final long serialVersionUID = 1L;
private long userId = -1;
public UserSession() {
}
public void login(long userId) {
this.userId = userId;
}
public void logout() {
this.userId = -1;
}
public boolean isLoggedIn() {
return (userId != -1);
}
public long getUserId() {
return userId;
}
}
JAVA code:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
doGet(request, response);
String name = request.getParameter("name");
String pass = request.getParameter("pass");
try {
DB_Connection obj_DB_Connection = new DB_Connection();
Connection connection=obj_DB_Connection.get_Connection();
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("select user_name, password from users where user_name ='"+name+"'and password = '"+pass+"' ");
if(rs.next()) {
HttpSession session = request.getSession();
session.setAttribute("sessionModel", name);
response.sendRedirect("Logged_in.jsp?name="+name+"");
} else {
response.sendRedirect("LogIn.jsp");
}
}
catch (Exception e){System.out.println(e);
}
}