如何在JSP中设置请求属性以及如何在servlet中获取它们

时间:2013-09-18 07:10:45

标签: jsp servlets

我在JSP中设置请求属性。但是我没有在servlet中得到null的请求属性。

如果我设置为request.getSession().setAttribute();它工作正常但request.setAttribute()表示它正在null

如何在没有会话的情况下在JSP中设置请求属性?

3 个答案:

答案 0 :(得分:1)

请求设置属性

request.setAttribute("message to be saved",variableName);
RequestDispatcher reqDisp = getServletContext().getRequestDispatcher("servletName");
reqDisp.forward(request, response);

通过这个,您将值转发到下一个servlet

请求获取属性示例

<html>
<body>
<%
  String message = (String) request.getAttribute("message");
  out.println("Servlet communicated message to JSP: "+ message);

  Vector vecObj = (Vector) request.getAttribute("vecBean");
  out.println("Servlet to JSP communication of an object: "+vecObj.get(0));
%>
</body>
</html>

答案 1 :(得分:1)

据我所知,您需要将一些值从jsp传递给servlet。 我建议你使用session.setAttribute()和session .getAttribute();

在jsp中尝试

session.setAttribute("test","test");

在servlet中

session.getAttribute("test");

您将获得test

答案 2 :(得分:0)

您要做的是在 JavaServerPages标准标记库(JSTL)中:

http://docs.oracle.com/javaee/5/tutorial/doc/bnakc.html

您希望使用核心库中的 c:set 元素,并将范围设置为请求。来自文档的示例:

<c:set var="foo" scope="request" value="..."/>

或来自标签正文:

<c:set var="foo">
     ...
</c:set>

不要忘记在JSP的顶部声明标记库:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

希望这有帮助!