0

私の目標は、ユーザーがアイテムのリスト(本としましょう)を入力し、データベースにデータを挿入するよりも、挿入された値をサーブレットに送信できるようにすることです。

プレゼンテーションが、10 行の空の行と、いくつかの新しい行を追加できるようにするいくつかのイベントを含む編集可能なテーブルで構成されているとします。テーブルには、たとえば、「コード」、「タイトル」、および「作成者」の 3 つの列があります。

私の最初の疑問は、リクエストから本のコレクションを取得するにはどうすればよいですか? テーブルの行が次のようになっている場合

<tr>
    <td><input type="text" name="code" /></td>
    <td><input type="text" name="title" /></td>
    <td><input type="text" name="author" /></td>
</tr>

request.getParameterValues("code")どの行にも「コード」という名前の入力があり、他の列にも同じことが当てはまるため、使用できます。最後に、3 つの配列を作成します。1 つはすべてのコード、もう 1 つはすべてのタイトル、最後の 1 つはすべての作成者です。しかし...ウェブを読んでいるように、配列内の値の順序が保証されていません。つまり、タイトル[]の最初の値が最初のテーブル行のタイトル値と一致しなかったため、本ができました間違ったタイトルで。本当ですか?もしそうなら、どうすればこの状況を管理できますか?

2 番目: どうすれば膨大な量のデータを管理できますか?

列が 100 で、数千行を埋めるスクリプトがあるとします。この状況をどのように管理すればよいですか?ファイルを読み取ってデータをデータベースに保存するよりも、サーバー上の一時ファイルにデータを保存するように誰かに言われました。それは正しいアプローチですか?

4

2 に答える 2

0

簡単な答えは次のとおりです。XML

バッチを作成して送信する場合は、XMLPOSTが最適です。

ユーザーがデータベースにコミットする前に、実際にいくつの行と列を入力したいと思いますか?たぶん、Ajax呼び出しを使用して一度に1つずつ送信できますか?

于 2012-04-14T23:27:56.983 に答える
0

順序が重要な場合は、jsp でフォームを生成するときに、保証されていない配列順序に頼るのではなく、入力名に行 ID を追加することをお勧めします。

<tr>
    <td><input type="text" name="code-1" /></td>
    <td><input type="text" name="title-1" /></td>
    <td><input type="text" name="author-1" /></td>
</tr>
<tr>
    <td><input type="text" name="code-2" /></td>
    <td><input type="text" name="title-2" /></td>
    <td><input type="text" name="author-2" /></td>
</tr>

データを読み取るときにサーブレットで、これを行うことができます。

int row = 1;
while(true) {
    String code = request.getParameter("code-" + row);
    String title = request.getParameter("title-" + row);
    String author = request.getParameter("author-" + row);
    row++;
    if (code == null && title == null && author == null) { //or modify this to whatever you need
        break;        
    }
    //your process here
}

2 番目の質問については、HTML 入力フォームをすぐに処理するのではなく、最初に別のファイルに保存することの本当の利点はわかりません。実際には、データベースに入る前に別のファイルとして保存するために余分な IO が必要であり、もちろん速度が低下します。

于 2012-04-14T23:47:30.173 に答える