如何在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);
}
}