Получение объекта пользователя из метода request.getAttribute
Я делаю веб-проект Java, где мне нужно получить объект пользователя, чтобы использовать метод из моего DataMapper.
в моей форме входа у меня есть этот код:
String execute( HttpServletRequest request, HttpServletResponse response ) throws LoginSampleException {
String email = request.getParameter( "email" );
String password = request.getParameter( "password" );
User user = null;
try {
user = LogicFacade.login(email, password);
} catch (NoSuchAlgorithmException | InvalidKeySpecException ex) {
Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex);
}
HttpSession session = request.getSession();
session.setAttribute( "user", user );
session.setAttribute( "role", user.getRole() );
return user.getRole() + "page";
}
}
Теперь мне снова нужен пользовательский объект в другом сервлете.
Могу ли я просто вызвать метод request.getAttribute, чтобы получить тот же объект из Httpsession?
Order order = new Order(length, height, width, shed, false);
User user =(User)request.getAttribute("user");
try {
DataMapper.createOrder(order, user);
//error handling and code continues
1 ответ
Решение
Когда вы устанавливаете пользовательский объект в HttpSession, вы можете получить пользовательский объект, используя следующий код:
request.getSession().getAttribute("user");