【问题标题】:JSP and send objectJSP 和发送对象
【发布时间】:2015-06-10 18:41:23
【问题描述】:

我在将 servlet 发送到 JSP 时遇到问题

我有“web.xml”。

    <servlet>
    <description></description>
    <display-name>optimalizace5</display-name>
    <servlet-name>optimalizace5</servlet-name>
    <servlet-class>
BucketServlet2
 </servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>optimalizace5</servlet-name>
    <url-pattern>/optimalizace5</url-pattern>
  </servlet-mapping>

和 BucketServlet2:

public class BucketServlet2 extends HttpServlet{

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse resp)
        throws ServletException, IOException {

     request.getSession().setAttribute("vysledek_list", "10101101");
     getServletContext().getRequestDispatcher("/optimalizace4.jsp").forward(request, resp); 
     super.doPost(request, resp);
    }
}

和 JSP:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Optimalizační úlohy</title>
</head>
<body>
<FORM action="/Eliminace_kosiku/optimalizace5" method="post">

Data:

<%=request.getParameter("vysledek_list")%>

</form>
</body>
</html>

从 JSP 发送到 servlet 正在工作。但是从 servlet 发送到 JSP 不起作用。不知道怎么回事??

【问题讨论】:

  • 请说明你的问题。 from servlet to JSP not working 不明确。
  • 返回空值。并且返回必须是“10101101”。

标签: java eclipse jsp servlets


【解决方案1】:

您将值放在session 中,而不是在请求对象中。

request.getSession().setAttribute("vysledek_list", "10101101");
//          ^ setting attribute in session object.

所以你需要从jsp中的session对象中取出值。

Session是jsp中的隐式对象,可以直接使用

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

注意:如果您不再需要它,请不要忘记将其从会话中删除。

<%session.removeAttribute("vysledek_list");%>

另一种做法:参考this

您可以在 doPost 方法的代码中更改以下行

request.getSession().setAttribute("vysledek_list", "10101101");

request.setAttribute("vysledek_list", "10101101");

更新: 第二种方法的补充,在jsp中使用getAttribute方法而不是getParameter方法。

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

【讨论】:

  • 我正在尝试,但仍然是变量 null。
  • 两种方法都试过了吗?
【解决方案2】:

getParameter 取 URL 参数值。在Servlet,您在会话中设置值,因此,您应该使用session.getAttribute 而不是getParameter

<%=request.getSesstion().getAttribute("vysledek_list")%>

另外一点,当您在 Servlet 中使用 forward 方法时,request.setAttribute 足以将值传递给 JSP 页面。您不应将临时值(即相同的请求)存储在 session。因此,请将值设置为 request 而不是 session,如下所示。

 request.setAttribute("vysledek_list", "10101101"); 

【讨论】:

  • @user3640712,如果工作你应该accept答案。
  • 我不能。 “投票需要 15 声望”:(
  • @user3640712,向下投票箭头下方有一个复选标记,您可以点击它。
猜你喜欢
  • 2019-03-21
  • 1970-01-01
  • 2014-03-19
  • 1970-01-01
  • 1970-01-01
  • 2017-07-27
  • 1970-01-01
  • 2017-01-20
  • 2016-10-26
相关资源
最近更新 更多