Java 如何将jsp中多部分/表单数据的输入值传递给servlet?

Java 如何将jsp中多部分/表单数据的输入值传递给servlet?,java,jsp,servlets,multipartform-data,Java,Jsp,Servlets,Multipartform Data,我知道这可能是一个重复的问题,我在互联网上读过类似的帖子,但我无法将我的输入值从jsp发送到servlet。 我可以上传文件,但我需要发送一个输入值。 Servlet: 这就是我的jsp <form action="/upload_kind" method="post" enctype="multipart/form-data" > <input type="file" name="file" size="50" /> <input type="text"

我知道这可能是一个重复的问题,我在互联网上读过类似的帖子,但我无法将我的输入值从jsp发送到servlet。 我可以上传文件,但我需要发送一个输入值。 Servlet:

这就是我的jsp

    <form action="/upload_kind" method="post"  enctype="multipart/form-data" >
<input type="file" name="file" size="50" />
<input type="text" name="namespace" id="namespace">
<br />
<input type="submit" value="Upload File" />
</form>


我读过一个“item.getString()”方法,但它在DiskFileItem类中,不在FileItemStream中,所以我可以看到“namespace”被发送了,但我看不到它的值。
Thx,很抱歉我的英语不好

通过重复链接,我能够解决我的问题。我使用了以下代码:

    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);
    }

    // ...
}
protectedvoiddopost(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
试一试{
列表项=新建ServletFileUpload(新建DiskFileItemFactory()).parseRequest(请求);
用于(文件项:项){
if(item.isFormField()){
//处理常规表单字段(输入type=“text | radio | checkbox | etc”,选择等)。
字符串fieldName=item.getFieldName();
String fieldValue=item.getString();
//…(在这里做你的工作)
}否则{
//处理表单文件字段(输入类型=“文件”)。
字符串fieldName=item.getFieldName();
字符串fileName=FilenameUtils.getName(item.getName());
InputStream fileContent=item.getInputStream();
//…(在这里做你的工作)
}
}
}捕获(文件上载异常){
抛出新的ServletException(“无法解析多部分请求。”,e);
}
// ...
}

您的输入值是多少?如果这是名称空间,您应该能够通过request.getParameter(“名称空间”)获取它。它是名称空间,但由于“多部分/表单数据”的原因,我无法获取它。它返回可能重复的代码,稍后我将发布一些代码(我已经使用ApacheCommons完成了文件上传,并且还发送了其他属性)
    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);
    }

    // ...
}