如何从Servlet传递变量到JSP页面?

6
我有一个Servlet(前置控制器),它分析请求,准备一些必要的数据(模型),然后应该将其传递给JSP进行渲染。
我该如何从Servlet传递数据到JSP?(我希望在request对象的参数映射中添加新参数是可行的,但该映射是不可修改的。)
我可以向request添加属性,但我不知道如何从JSP中检索它们。
所有数据都应该在请求范围内。正确的方式是什么?

1
这是一个Hello World示例:http://stackoverflow.com/tags/servlets/info 顺便提一下,在右侧的“相关”部分中有很多重复内容,当你输入问题时应该已经看到了。 - BalusC
2个回答

6

我可以在请求中添加属性,但是我不知道如何从jsp中检索它们。
您不需要特别“检索”它们,只需引用它们即可。

request.setAttribute("titleAttribute", "kittens are fuzzy");

然后

Title here: ${titleAttribute}

3
你可以使用请求或会话作用域来实现此功能。除了Nikita Rybak的答案之外,你还可以使用。
request.getSession().setAttribute("key","value");

然后在JSP中使用Scriplet来使用它。

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

请注意,在Nikita给出的示例中,使用了表达式语言(EL)(我不确定是否是JSTL标签)。您需要通过使用isELIgnored属性明确指出不应忽略EL。
<%@ page isELIgnored="false" %>

1
这正是我需要的代码示例,帮助我克服了这个难关 - 谢谢!+1 - Olie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接