使用嵌入式 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") %>
JSP方面就不用说了request.getSession()
, just session.getAttribute();
在创建 servlet 上下文时,您的 Main.java 中遇到了问题(使用嵌入式 Tomcat 的技巧);您没有通过将 web 应用程序添加到 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) {
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)