gpt4 book ai didi

java - JSP:关于具有登录约束的系统中的 session

转载 作者:行者123 更新时间:2023-12-01 12:46:54 25 4
gpt4 key购买 nike

当我做一个需要登录系统的项目时,我发现jsp会自动创建session,所以我在所有页面中添加<%@ page session="false"%>以禁用它们创建session的能力,因为我只希望一个 servlet 能够创建 session 。

但是,当谈到使用bean时,我发现,由于<%@ page session="false"%>,我无法在 session 范围内使用bean,我想问一下可能的解决方案是什么解决这个僵局。

非常感谢

最佳答案

如果您从 servlet 设置 session 属性(登录后),那么当您从中移动到另一个 JSP 时, session 将保留,您不需要编写

<%@ page session="false" %>

在该 JSP 上。您设置的所有属性都将在 session 中可用。

这是一个测试代码:索引页显示 servlet 中设置的“名称”属性 - 维护 session 当您按“下一个 JSP”按钮时,它会将您带到另一个新的 JSP,该 JSP 再次显示“名称”属性。

所有 JSP 都不需要 <%@ page session="false"%>。

index.jsp

    <body>
<form action="MaintainSession" method="post">
<input type="submit" value="Set Session Attribs"/>
</form>
<h1>Name : ${sessionScope.name}</h1>
<h1>Name : <%=session.getAttribute("name")%></h1>
<form action="Next.jsp" method="post">
<input type="submit" value="Next JSP"/>
</form>
</body>

Next.jsp

    <body>
<h1>Hello World!</h1>
<h1>Name : ${sessionScope.name}</h1>
<h1>Name : <%=session.getAttribute("name")%></h1>
</body>

MaintainSession.java

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession(true);
session.setAttribute("name", "MyName");
request.getRequestDispatcher("index.jsp").forward(request, response);
}

流程:

index.jsp ----Press Set Session Attribs---> MaintainSession servlet ----> index.jsp ---- press Next JSP ----> Next.jsp

关于java - JSP:关于具有登录约束的系统中的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24610548/

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