在PHP中,當用戶登錄到她的帳戶時,我會執行以下操作以便在瀏覽網站時記住用戶:
session_start();
...
$_SESSION['username'] = $username;
在任何其他可能需要敏感數據的頁面上,我檢查$_SESSION['username']
是否有效。
當使用註銷時,我做了以下
unset($_SESSION['username']
session_destroy();
我如何做同樣的事情在Java中?我有一個使用Jersey
和EJB
的REST API。在以下情況很重要的情況下,我堅持使用JPA,Hibernate,Glassfish和mysql。
更新爲VERIFICATON:
這是正確的嗎?
@Path("login")
public class UserLoginResource {
@EJB
private LoginDao loginDao;
@Context
HttpServletRequest request;
@POST
public Response login(JAXBElement<Login> jaxbLogin){
Login login = jaxbLogin.getValue();
loginDao.authenticateUserLogin(login);
HttpSession session = request.getSession();
session.setAttribute("username", login.getUsername());
return Response.ok().build();
}
}
感謝您的回覆。我仍然試圖讓它工作。在我討論的php版本中,服務器能夠區分1000個用戶,並且明白'$ _SESSION ['username']'對於每個用戶是不同的。 java版本也能做到這一點嗎?我正在閱讀各地,可能會讓我感到困惑。 – kasavbere
當然java是的,不管用什麼語言,http會話的概念都是一樣的。 – Elbek
爲了確保正確無誤,我在原始文章中包含了代碼。它看起來正確嗎?基本上,在其他Web服務中,我將調用'session.getAttribute(「username」)'來檢查匹配的用戶名。謝謝。 – kasavbere