当前位置: 首页 > 知识库问答 >
问题:

servlet未将会话属性转发给jsp

林波鸿
2023-03-14

使用嵌入式tomcat,这段代码可以工作:

Servlet:

String test = "test";
request.setAttribute("test", test);
request.getRequestDispatcher("/index.jsp").forward(request, response);

JSP:

<%= request.getAttribute("test") %>

它设置属性test,然后在servlet/example的jsp页面example.jsp上打印出来。

然而,如果我试图在会话中设置属性,那么我不会得到相同的结果,相反,当使用此选项时,我会得到一个null

Servlet:

String test = "test";
request.getSession().setAttribute("test", test);
request.getRequestDispatcher("/index.jsp").forward(request, response);

JSP:

<%= session.getAttribute("test") %>

共有2个答案

阎晋
2023-03-14

您可能需要比较servlet和jsp中的会话id。如果它们不同,可以在tomcat中检查会话和cookie配置

酆华皓
2023-03-14

在JSP方面,您不需要说request。getSession(),只是会话。getAttribute()
而您的主服务器出现了问题。创建servlet上下文时使用java(使用嵌入式Tomcat的技巧);您没有通过将webapp添加到tomcat来获得上下文,而是有其他上下文。

//          File base = new File("src/main/webapp");
//          context = tomcat.addContext("", base.getAbsolutePath());
//          tomcat.addWebapp(null, "/", base.getAbsolutePath());

        context = tomcat.addWebapp("/", new File("src/main/webapp").getAbsolutePath());
        context.setSessionTimeout(10080);

我注释掉了你的代码,更改了上下文处理,现在一切正常了。还有一个新的例外。

        } catch (ServletException | InterruptedException | LifecycleException exception) {

 类似资料:
  • 我有一个使用servlet会话属性显示div的问题 我有一个“result.jsp”页面。在jsp中,我有一个“生成URL”链接、一个空的输入文本字段和一个“addThis”div。链接“生成URL”调用jquery ajax方法“utilComp()”,它调用一个设置会话属性“saveLink”、返回一个值并填充空文本字段的servlet。 如果属性会话“saveLink”为空(因为尚未单击生成

  • servlet 可以按名称绑定对象属性到 HttpSession 实现,任何绑定到会话的对象可用于任意其他的 servlet,其属于同一个 ServletContext 且处理属于相同会话中的请求。 一些对象可能需要在它们被放进会话或从会话中移除时得到通知。这些信息可以从 HttpSessionBindingListener 接口实现的对象中获取。这个接口定义了以下方法,用于标识一个对象被绑定到会

  • 问题内容: 我在2个不同的服务器中有2个应用程序-Tomcat(基本上是.WAR文件)和jBoss中的EAR。 EAR是可重用的应用程序,在这里我将对用户进行身份验证并将控件发送回Tomcat上的应用程序。进行身份验证时,我正在jBoss应用程序上创建一个会话对象。 当我将控件发送回Tomcat上的应用程序时,我将询问用户是否要注销身份验证应用程序。如果用户按下“是”按钮,我将不得不从身份验证应用

  • 问题内容: 我正在使用SSH2。当我尝试通过设置属性时,这是正确的。但是,当我尝试使用获得相同的属性时,我什么也没有。 为什么?他们不一样吗? 当我使用时,我得到了这些: 似乎在休眠状态下进行会话。为什么? 问题答案: 是的,它们是不同的,在scriptlet中,您使用http会话隐式对象;在struts标签属性中,您引用通过OGNL检索的struts会话映射对象。您一无所获,只是因为它们与众不同

  • 使用WicketTester时,访问会话的属性会引发NullPointerException错误。 wicket 9之前也有类似的问题:单元测试mockito httpSession 讨论建议使用 测试员。getRequest()。getSession()。setAttribute(“用户名”、“测试用户1”); 而不是 测试员。getHttpSession()。setAttribute(“用户名

  • 我有一个小应用程序(HTML表单、servlet作为控制器和jsp文件),我试图弄清楚为什么我不能将请求从servlet转发到jsp文件。 问题是从html提交后,显示“HTTP状态404” null 谢谢! 项目层次结构:http://s23.postimg.org/kgt7r7lwb/capture.jpg main.html: 更新:问题可能出在Controller.java。当我尝试下面的