无需转发即可从servlet获取数据到JSP?

时间:2013-01-31 20:46:45

标签: java jsp servlets

我需要从servlet中获取一个double值,以便在JSP中进行标记。我的doGet()正在发送带有ArrayList值的格式化HTML表格,所以在我开始工作后我决定解决这个问题。

Servlet:

//获取我需要的表的代码

    //Send back the result, this all works good
    response.setContentType("text/html");
    response.setCharacterEncoding("UTF-8");
    response.getWriter().write(returnAsHTML.toString());

我添加了尝试获取双倍值

    //Send back the result

    double test = 20;
    request.setAttribute("Test",test);

    response.setContentType("text/html");
    response.setCharacterEncoding("UTF-8");
    response.getWriter().write(returnAsHTML.toString());

    getServletContext().getRequestDispatcher("index.jsp").forward(request,response);

在JSP中:

  <!-- This variable is unresolved -->
  <small>Test : ${Test}</small>

转发似乎使整个聚会崩溃。我是JSP新手,我确信我错过了一些小事。我需要在那里保留response.getWriter()的东西,它获取了我需要的大量信息。现在我只是不知道如何获得我需要的双重值,因为它们将显示在页面的整个不同部分。

2 个答案:

答案 0 :(得分:5)

您不能同时将输出写入servletOutputStream 重定向

您对浏览器的期望是:显示内容还是导航到其他页面?如果是第一个,请不要重定向。如果是第二个,则不显示HTML内容。

答案 1 :(得分:0)

尝试使用httpsession。使用session.setAttribiute()封装您拥有的任何对象。 然后使用sendRedirect()方法转发它。

可能属于这种

HttpSession session=request.getSession();
double test = 20;
session.setAttribute("Test",test);
response.sendRedirect("Index.jsp");

在JSP页面上

String s=(String)session.getAttribite("Test");
double d=Double.parseDouble(s);