gpt4 book ai didi

java - 从 servlet 返回 vector

转载 作者:行者123 更新时间:2023-12-02 08:30:27 25 4
gpt4 key购买 nike

我必须做一个 HTML 页面,其中有 2 个文本框,一个用于名称,另一个用于金额,然后有一个小部件,让我选择要创建的帐户类型、储蓄或支票,然后是一个发送按钮,这信息将被发送到 servlet。 servlet 必须根据帐户类型创建一个对象,然后将其保存在 Vector 上,然后 servlet 需要使用 Vector 上的信息响应 HTML 文本区域>,以及第一页中的相同小部件,以便您可以插入另一个帐户,当您插入另一个帐户时,您必须将信息发送到同一个 servlet,然后执行相同的工作。但在 HTML 文本区域中必须出现第一个帐户和我刚刚创建的帐户,依此类推。

问题是,我可以做所有这些,但我不能做的是显示 vector 的所有信息,由于某种原因,我只是得到了我刚刚在文本区域中创建的帐户。

这是 servlet 代码。请注意,toString() 返回存储在 Vector 上的所有信息,并且 addAccount() 将帐户添加到 vector

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class ServletPrincipal extends HttpServlet {
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html");

PrintWriter out = response.getWriter();

String nombre = request.getParameter("nom");
String monto = request.getParameter("mon");
String tipo = request.getParameter("fgcghch");


double montoi = Double.parseDouble(monto);
String a="ah";
String b="che";

AccountsLedger objeto = new AccountsLedger();

if(a.equals(tipo)){

SavingsAccount cnt1= new SavingsAccount(nombre, montoi, 2);

objeto.addAccount(cnt1);

objeto.toString();
out.println("<textarea rows='20' cols='20'>"+objeto.toString()+"</textarea>");
out.print("<form action='ServletPrincipal' method='post'><input type='text' name='nom'><input type='text' name='mon'>");
out.println("<select name='fgcghch'><option value='ah'>Ahorro</option><option value='che'>Cheque</option></select>");
out.println("<input type='submit' name='boton'></form>");
}
if(b.equals(tipo)){


CheckingAccount cnt= new CheckingAccount(nombre, montoi);



objeto.addAccount(cnt);
String y = objeto.toString();
out.println("<textarea rows='2' cols='20'>"+y+"</textarea>");
out.print("<form action='ServletPrincipal' method='post'><input type='text' name='nom'><input type='text' name='mon'>");
out.println("<select name='fgcghch'><option value='ah'>Ahorro</option><option value='che'>Cheque</option></select>");
out.println("<input type='submit' name='boton'></form>");


}




}
}

最佳答案

首先,不要使用Vector,使用ArrayList。它的工作原理相同,但在方法上不使用同步关键字,这实际上对性能来说是一件好事。事实上,两个线程访问数组的情况非常罕见,如果它们这样做了,synchronized 关键字对于集合类来说就毫无用处了。

其次,考虑是否要在这里编写 servlet 还是 JSP 会更好。 JSP 基本上是一个由内而外的 servlet,因此如果 HTML 多于 Java,那就有意义了。

第三,使用现代 Java 迭代 ArrayList 很简单,因此如果目的是创建一个字符串以插入到 HTML 中,那么可以这样做:

ArrayList<String> values = // ... built somewhere
StringBuilder sb = new StringBuilder();
for (String v : values) {
sb.append(v);
}
out.println(sb.toString());

关于java - 从 servlet 返回 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3527663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com