0

私のウェブサイトから、以下のこのサーブレットは何度も呼び出され、そのたびにベクトルに値を格納する必要があります。ただし、サーブレットの実行が完了した後、ベクターが以前の内容を失うことは望ましくありません。ショッピングカートのように。

public void putValues(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException
 {
Vector<Object> vector = new Vector<Object>();
 vector.add(request.getParameter("UID"));
 }

何か案は?

4

4 に答える 4

3

メソッドが呼び出されるたびに新しいVectorを作成するのではなく、インスタンス変数を使用してください。

private Vector<Object> vector = new Vector<Object>();    

public void putValues(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException
     {
     vector.add(request.getParameter("UID"));
     }
于 2012-11-21T08:40:25.393 に答える
1

メソッドを呼び出すたびに、新しいVectorインスタンスが作成されます。

このような状況は通常、そのようなオブジェクトをオブジェクトに保持することによって処理されHttpSessionます。

ArrayListまた、Vectorの代わりに、またはCollections.synchronizedList()の同期バージョンが本当に必要な場合は、を使用することをお勧めしますList

于 2012-11-21T08:42:27.430 に答える
1

明らかにHttpSessionを使用する必要があります。

doXXX(...){
    Object data = request.getSession().getAttribute("data");
    if(data==null){
       request.getSession().setAttribute("data", new Vector());
    }

次に、サーブレットが呼び出されるたびに、次を使用します。

((Vector)(request.getSession().getAttribute("data"))).add(request.getParameter("UID"))
于 2012-11-21T08:43:42.243 に答える
0

ベクターのコンテンツを一時テキストファイルに保存できます

于 2012-11-21T08:40:43.897 に答える