gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:55:32 25 4
gpt4 key购买 nike

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

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

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

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

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

如何在 Java 中做同样的事情?我有一个使用 JerseyEJB 的 REST API。如果以下内容很重要,我会坚持使用 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 中您只能从 HttpRequest 获取 session 的 getSession()方法,在php中它总是假设,你的代码是由一些服务器(即apache)运行的,在java中,你将从ServletContainer(即Apache Tomcat)中获取它。

与 php 不同,您不必在 java 中启动 session ,只要您在 servlet 容器中并发出请求,如果没有 session ,此客户端 servlet 容器负责启动

因此对于上述操作:

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

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

这里的requestHttpRequest的对象类

你可以看看这个HttpSession

我强烈推荐你看看java scopes

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

Here是你如何将请求对象放入你的 Jersey Action (方法),即通过注入(inject) @Context HttpServletRequest httpRequest

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

关于相当于 session_start()、session_destroy() 和 $_SESSION ['username' 的 Java ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12826643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com