Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将数据从servlet获取到JSP而无需转发?_Java_Jsp_Servlets - Fatal编程技术网

Java 将数据从servlet获取到JSP而无需转发?

Java 将数据从servlet获取到JSP而无需转发?,java,jsp,servlets,Java,Jsp,Servlets,我需要一个从servlet到JSP中标记的双值。我的doGet()将从ArrayList发回带有值的格式化HTML表,所以在完成这项工作后,我决定解决这一部分 Servlet: //代码获取我需要的表 //Send back the result, this all works good response.setContentType("text/html"); response.setCharacterEncoding("UTF-8"); response.ge

我需要一个从servlet到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>

测试:${Test}
转发似乎使整个聚会都崩溃了。我是JSP新手,我确信我遗漏了一些小东西。我需要保留response.getWriter()的内容,它可以获得我需要的很多信息。现在我也不知道如何获得所需的双值,因为它们将显示在页面的完全不同的部分。

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

您希望从浏览器中获得什么:显示内容或导航到其他页面?如果是第一个,不要重定向。如果是第二个,则不显示HTML内容。

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


您希望从浏览器中获得什么:显示内容或导航到其他页面?如果是第一个,不要重定向。如果是第二个,请不要显示HTML内容。

尝试使用httpsession。使用session.setAttribute()封装所有对象。 然后使用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);

尝试使用httpsession。使用session.setAttribute()封装所有对象。 然后使用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);

那些行
response.setContentType(“text/html”);响应。setCharacterEncoding(“UTF-8”);response.getWriter().write(returnAsHTML.toString())不属于servlet。它们属于JSP(JSP已经隐式地这样做了,所以您根本不需要写下所有Java代码,只需要写下HTML)。将鼠标放在问题上的
[servlets]
标记上,直到出现一个黑框,然后单击其中的信息链接,查看一些健全的Hello World示例。我是JSP新手,但没有这些行,我就没有返回JSP的结果了?returnAsHTML包含servlet中我需要在页面中显示的所有信息。那么,您是在暗示我需要将这些行从servlet中的doGet()方法移到我的JSP页面上吗?不。只需将HTML放入
index.JSP
并转发到它。另请参见servlets wiki页面的第二个Hello World示例。任何试图以不同方式进行的尝试都毫无意义;响应。setCharacterEncoding(“UTF-8”);response.getWriter().write(returnAsHTML.toString())不属于servlet。它们属于JSP(JSP已经隐式地这样做了,所以您根本不需要写下所有Java代码,只需要写下HTML)。将鼠标放在问题上的
[servlets]
标记上,直到出现一个黑框,然后单击其中的信息链接,查看一些健全的Hello World示例。我是JSP新手,但没有这些行,我就没有返回JSP的结果了?returnAsHTML包含servlet中我需要在页面中显示的所有信息。那么,您是在暗示我需要将这些行从servlet中的doGet()方法移到我的JSP页面上吗?不。只需将HTML放入
index.JSP
并转发到它。另请参见servlets wiki页面的第二个Hello World示例。任何试图用不同的方式去做的尝试都毫无意义。我明白你的意思。我根本不想转发,但从我对这个问题所做的研究来看,每个示例都使用转发将数据传递回JSPI,明白你的意思了。我根本不想转发,但根据我对这个问题所做的研究,每个示例都使用转发将数据传递回JSP