Java 相当于 session_start()、session_destroy() 和 $_SESSION['username']

2024-04-06

在 PHP 中,当用户登录她的帐户时,我会执行以下操作,以便在用户浏览网站时记住该用户:

session_start();
...
$_SESSION['username'] = $username;

在可能需要敏感数据的任何其他页面上,我检查$_SESSION['username']已验证。

当用户注销时,我执行以下操作

unset($_SESSION['username']
session_destroy();

我如何在 Java 中做同样的事情?我有一个 REST API,它使用Jersey and EJB。如果以下内容很重要,我会坚持使用 JPA、Hibernate、Glassfish 和 mysql。

更新以供验证:

它是否正确?

@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();
  }
}

Java 与 php 有很大不同,所以在 java 中你只能从中获取会话Http请求 http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html 's 获取会话() http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getSession%28%29方法,在php中,始终假设您的代码由某个服务器(即apache)运行,在java中,您将从ServletContainer(即Apache Tomcat)获取它。

与 php 不同,您不必在 java 中启动会话,只要您位于 servlet 容器中并发出请求,对于该客户端,如果没有会话,则 servlet 容器负责启动

因此对于上述动作:

    reqest.getSession().setAttribute("udername","Elbek");
    //later 
    reqest.getSession().removeAttribute("udername");

   //destroy it
   reqest.getSession().invalidate();

Here request是对象Http请求 http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html class

你可以看看这个Http会话 http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpSession.html

我强烈推荐你看看javascopes http://javapapers.com/jsp/explain-the-scope-of-jsp-objects/

php中没有这种东西,我希望有,BUTNO

Here https://stackoverflow.com/questions/5118752/how-do-i-access-the-http-request是如何将请求对象获取到球衣操作(方法)中的方法,即通过注入@Context HttpServletRequest httpRequest

编辑: 你不创造HttpRequest您自己创建对象,而不是从 servlet 容器中获取它,您的服务器根据客户端请求创建它并为您提供。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 相当于 session_start()、session_destroy() 和 $_SESSION['username'] 的相关文章

随机推荐