java - 使用 sendredirect 在 Java 中保留 session

标签 java jsp jakarta-ee servlets jspinclude

我在 JAVA 中创建一个登录应用程序。我在 JSP 中进行演示,在 Servlet 中进行所有逻辑(数据库连接)[我知道这不是正确的方法]。 我在 Servlet 中检查用户名密码,然后创建一个 session 变量。 并像这样添加 session

sess.setAttribute("username",oName);

然后我将用户重定向到它的主页 student.jsp

response.sendRedirect("student.jsp");

它删除了 session 变量。我需要一种方法来保留 session 变量并移动到 student.jsp。我尝试使用 forwading,但没有成功。

RequestDispatcher dispatcher =
                getServletContext()
                    .getRequestDispatcher("/student.jsp");

            if (dispatcher != null) {
                dispatcher.forward(request, response);
            }

它转发了请求,但页面地址没有更改为 student.jsp,这不好。 在这方面的任何帮助将不胜感激 谢谢

最佳答案

对于返回并附加到同一 session 的重定向请求,它需要一个 session ID,通常在 JSESSIONID(或其他名称)cookie 中或作为参数在 URL 中携带。

此 cookie 或 URL 参数应由 servlet 容器添加,您不必自己添加。

如果您在浏览器中没有看到 cookie,并且您没有将 JSESSIONID 附加到 URL,那么它会为每个请求创建一个新 session ,而不是附加到同一个 session 。

关于java - 使用 sendredirect 在 Java 中保留 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13461838/

相关文章:

java - JSP EL ${stuff} 语法不起作用

java - 如何在 Java EE 中创建 GUID

java - 使用 GAE 任务队列处理持久性操作

java - Java 中的嵌套映射或组合键

java - 如何从 jar 'within' 访问 jar 内的非类文件

java - 如何为线程设置名称?

java - Java/J2EE 和 .NET for Coldfusion 中有哪些库?

java - 正则表达式未按预期工作 - JAVA

java - 数组可以从jsp传递并映射到struts 2中action类中的数组(不是arrayList)吗?

java - 从 servlet 显示 JSP 信息的问题