如何在serlvet中获取java类中生成的动态字符串值。。。?

如何在serlvet中获取java类中生成的动态字符串值。。。?,java,servlets,dynamic-values,Java,Servlets,Dynamic Values,我正在开发一个简单的web应用程序。这个应用程序有一个“ping”功能,我们通常在命令提示符下执行此功能。因此,在我的jsp页面中,我会给出一个类似于“www.google.com”的地址,然后单击提交将该地址发送到名为“PingServlet”的servlet。我的servlet接收地址并发送到一个java类,该类将处理该地址的ping。 ip=“www.google.com”//从servlet获取 字符串pingCmd=“ping”+ip; //ArrayList pingRsult=新



我正在开发一个简单的web应用程序。这个应用程序有一个“ping”功能,我们通常在命令提示符下执行此功能。

因此,在我的jsp页面中,我会给出一个类似于“www.google.com”的地址,然后单击提交将该地址发送到名为“PingServlet”的servlet。我的servlet接收地址并发送到一个java类,该类将处理该地址的ping。

ip=“www.google.com”//从servlet获取
字符串pingCmd=“ping”+ip;
//ArrayList pingRsult=新建ArrayList();
//pingRsult.add(“ping数据”);
试一试{
Runtime r=Runtime.getRuntime();
进程p=r.exec(pingCmd);
BufferedReader in=新的BufferedReader(新的InputStreamReader(p
.getInputStream());
字符串输入线;
而((inputLine=in.readLine())!=null){
System.out.println(inputLine);//我想把这个字符串发送到servlet
}
in.close();
}//试一试
捕获(IOE异常){
系统输出打印ln(e);
}

在处理地址时,在while循环中,它将生成一些字符串值,我希望在生成每个字符串值时将其发送到servlet。我在谷歌上搜索了很多。但我没有发现任何想法。。。。


请帮帮我

您可以将一个ArrayList放入结果中;作为会话变量

然后您只需要从jsp页面中读取

    protected void doPost(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {

            ArrayList<String> pingResult=new ArrayList<>();
            HttpSession s = request.getSession();

            //Add your values
            s.setAttribute("Values", values);
            //Redirect to jsp where you show the strings
            response.sendRedirect("exemple.jsp");
}

这样,servlet读取的每一行都会打印到servlet页面上。

使用请求范围或会话范围存储值,并在servlet中使用相同的值。

谢谢Manuel Pires。。我想你没有完全理解我的问题。在我给出的代码中,while循环每次都会生成字符串,对吗。。?每次生成字符串后,我都需要将其发送到servlet。您想再次访问此servlet并继续吗?我认为唯一的方法是使用线程,我认为这在J2EE标准中是禁止的。。。您想处理这些值还是只在servlet中打印它们?我想在jsp页面中打印这些值我相信只有在上面的第一个示例中才可能。。。创建一个包含完整结果的会话/请求属性,然后将其发送到jsp页面。。。
    protected void doPost(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {

            ArrayList<String> pingResult=new ArrayList<>();
            HttpSession s = request.getSession();

            //Add your values
            s.setAttribute("Values", values);
            //Redirect to jsp where you show the strings
            response.sendRedirect("exemple.jsp");
}
protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {

    PrintWriter out = response.getWriter();

    out.println("<HTML>");
    out.println("<HEAD><TITLE>Ping Result</TITLE></HEAD>");
    out.println("<BODY>");


    ip="www.google.com"; //Got from servlet
    String pingCmd = "ping " + ip;
    ArrayList<String> pingRsult = new ArrayList<String>();
    pingRsult.add("Pinging Data");
    try {
        Runtime r = Runtime.getRuntime();
        Process p = r.exec(pingCmd);

        BufferedReader in = new BufferedReader(new InputStreamReader(p
                .getInputStream()));
        String inputLine;
        while ((inputLine = in.readLine()) != null) {
            System.out.println(inputLine);
            out.println("<p>"+inputLine+"</p>");
        }
        in.close();                        
            out.println("</BODY></HTML>");
    }// try
    catch (IOException e) {
        System.out.println(e);
    }
}