2
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Add new product</title>
            <link type="text/css" rel="Stylesheet" href="css/SiteStyle.css" />
            <script src="js/jquery-1.3.2.js" type="text/javascript"></script>
    </head>
    <body>
         <form id="MainForm" action="Relay" method="post" enctype="multipart/form-data">
            <input name="destination"  type="hidden" value="AddNewProduct" />
             <script src="js/AddNewProduct.js" type="text/javascript"></script>
            <center>
                <h1>Add new product</h1>
            <hr />
        <table class="TableLogin">
            <tr>
                <td align="center" colspan="2" class="TDLoginHeader">
                        Product information</td>
            </tr>
            <tr>
                <td align="right" class="TDLoginTitle">
                        Product Title
                </td>
                <td align="left" class="TDLoginText">
                    <input id="TxtTitle" type="text" class="LoginTextBoxes" name="Title" maxlength="75" /></td>
            </tr>
            <tr>
                <td align="right" class="TDLoginTitle">
                        Dollar price
                </td>
                <td align="left" class="TDLoginText">
                    <input id="TxtPrice" type="text"  class="LoginTextBoxes" name="Price" maxlength="15" /></td>
            </tr>
            <tr>
                <td align="center" colspan="2" class="TDLoginTitle">
                    Product number</td>
            </tr>
            <tr>
                <td align="center" colspan="2">
                    <table style="width:100%;">
            <tr>
                <td align='center' class='TDProductNumber'>
                    <input id='Txtdigit1' name='Txtdigit1' class='TxtProductNumber' type='text' />
               </td>
                <td align='center' class='TDProductNumber'>
                    <input id='Txtdigit2' name='Txtdigit2' class='TxtProductNumber' type='text' />
                </td>
                <td align='center' class='TDProductNumber'>
                    <input id='Txtdigit3' name='Txtdigit3' class='TxtProductNumber' type='text' />
                </td>
                <td align='center' class='TDProductNumber'>
                    <input id='Txtdigit4' name='Txtdigit4' class='TxtProductNumber' type='text' />
                </td>
                <td align='center' class='TDProductNumber'>
                    <input id='Txtdigit5' name='Txtdigit5' class='TxtProductNumber' type='text' />
                </td>
                <td align='center' class='TDProductNumber'>
                    <input id='Txtdigi6' name='Txtdigit6' class='TxtProductNumber' type='text' />
                </td>
                <td align='center' class='TDProductNumber'>
                    <input id='Txtdigit7' name='Txtdigit7' class='TxtProductNumber' type='text' />
                </td>
            </tr>
            <tr>
                <td colspan="7" class="TDLoginTitle">
                    <label>Product Image</label>
                        <input id="ProductImage" name="ProductImage" type="file" />
                </td>
            </tr>
          </table>
                </td>
            </tr>
            <tr>
                <td align="center" colspan="2">
                      <input id="BtnAdd" type="button" value="Add" class="BtnSize" /></td>
            </tr>
        </table>
        <div id="DivAddMessage">
        </div>
        <div>
           <a href='Login.jsp'>Back</a>
        </div>
        </center>
        </form>
    </body>
</html>

サーブレット「リレー」コード:

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();            
    String destination=request.getParameter("destination");
    out.print(destination);
}

これは、製品情報 (タイトル、価格、7 桁の数字、製品イメージ) を入力するためのコードです。この値とアップロードされたファイルの値を取得しますか?

4

2 に答える 2

2

注釈を使用

@MultipartConfig

あなたのサーブレットのために

于 2012-11-10T10:46:36.610 に答える
2

マルチパート エンコーディング ('multipart/form-data') を使用して投稿したため、パラメーターが期待どおりに表示されません。

たとえば、commons-fileuploadを使用している場合、パラメータは として存在し、FileItem オブジェクトの「isFormField」メソッドを使用して識別できます。

coderanchに関するこのスレッドでは、その方法について説明しています。

ちなみに、ほとんどの(すべての)最新のWebフレームワークはこれを抽象化し、この種のものをはるかに簡単にします. このサイトを参考にしてください

コード

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    try {
        List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
        for (FileItem item : items) {
            if (item.isFormField()) {
                // Process regular form field (input type="text|radio|checkbox|etc", select, etc).
                String fieldname = item.getFieldName();
                String fieldvalue = item.getString();
                // ... (do your job here)
            } else {
                // Process form file field (input type="file").
                String fieldname = item.getFieldName();
                String filename = FilenameUtils.getName(item.getName());
                InputStream filecontent = item.getInputStream();
                // ... (do your job here)
            }
        }
    } catch (FileUploadException e) {
        throw new ServletException("Cannot parse multipart request.", e);
    }

    // ...
}
于 2012-11-10T10:27:29.997 に答える