如何访问JSP中的servlet设置的请求属性?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何访问JSP中的servlet设置的请求属性?相关的知识,希望对你有一定的参考价值。

我正在尝试在JSP页面中检索由servlet设置的属性值,但我只是运气${param}的参数。我不确定我能做些什么不同。也许它很简单,但我无法管理它。

public void execute(HttpServletRequest request, HttpServletResponse response) {

    //there's no "setParameter" method for the "request" object
    request.setAttribute("attrib", "attribValue");

    RequestDispatcher rd = request.getRequestDispatcher("/Test.jsp");
    rd.forward(request,response);
}

在JSP中我一直试图检索“attribValue”,但没有成功:

<body>
    <!-- Is there another tag instead of "param"??? -->
    <p>Test attribute value: ${param.attrib}
</body>

如果我通过一个参数传递所有进程(调用页面,servlet和目标页面),它的效果非常好。

答案

它已经在默认的EL范围内可用,所以只是

${attrib}

应该做。

如果您想明确指定范围(EL将按顺序搜索与属性名称匹配的第一个非null属性值的页面,请求,会话和应用程序范围),那么您需要通过范围映射来引用它,这是请求范围的${requestScope}

${requestScope.attrib}

这仅在页面范围中可能具有完全相同名称的属性时才有用,否则该属性将优先(但这种情况通常表示设计不佳)。

See also:

另一答案

也许EL语法和scriptlet语法之间的比较将帮助您理解这个概念。

  • param就像request.getParameter()
  • requestScope就像request.getAttribute()

你需要告诉request attributerequest parameter

另一答案

你试过用吗?

<% request.getAttribute("attrib"); %>
另一答案

如果范围是请求类型,我们在请求中使用request.setAttribute(key,value)设置属性,并使用jsp中的$ {requestScope.key}进行检索。

以上是关于如何访问JSP中的servlet设置的请求属性?的主要内容,如果未能解决你的问题,请参考以下文章

在 JavaScript 中访问 Java / Servlet / JSP / JSTL / EL 变量

在 JavaScript 中访问 Java / Servlet / JSP / JSTL / EL 变量

在 JavaScript 中访问 Java / Servlet / JSP / JSTL / EL 变量

如何将属性从 servlet 转发到请求它的同一 JSP

jsp-servlet 的相关请求路径问题 —url

在jsp文件中如何编写正确的servlet请求路径