Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSP表单发送数据,包括servlet中的文件_Java_Jsp_Servlets_Post_Get - Fatal编程技术网

Java JSP表单发送数据,包括servlet中的文件

Java JSP表单发送数据,包括servlet中的文件,java,jsp,servlets,post,get,Java,Jsp,Servlets,Post,Get,我正在尝试将一些数据从jsp表单发送到servlet。我所有的数据都是type=“text”,除了type=“file”之外。我知道如果我想将数据发送到servlet,我必须使用request.getParameter(…)。(我的数据)为了不为空,我必须使用method=“get”。但是如果我想上传一个文件,我必须使用method=“post”。如何使用一个表单将这两种类型传递给servlet?提前谢谢 .jsp <form method="post" action="Servlet"&

我正在尝试将一些数据从jsp表单发送到servlet。我所有的数据都是
type=“text”
,除了
type=“file
”之外。我知道如果我想将数据发送到servlet,我必须使用
request.getParameter(…)
。(我的数据)为了不为空,我必须使用
method=“get”
。但是如果我想上传一个文件,我必须使用
method=“post”
。如何使用一个表单将这两种类型传递给servlet?提前谢谢

.jsp

<form method="post" action="Servlet">
user:<input type="text" name="user"/>
img<input type="file" name="img"/>
</form>
<form method="get" action="Servlet">
user:<input type="text"/>
img<input type="file"/>
</form>

.jsp

<form method="post" action="Servlet">
user:<input type="text" name="user"/>
img<input type="file" name="img"/>
</form>
<form method="get" action="Servlet">
user:<input type="text"/>
img<input type="file"/>
</form>
表格:


用户:
img
您仍然可以通过post请求获得这两种服务:

protected void doPost(HttpServletRequest request, HttpServletResponse response) {
    List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
    InputStream fileContent = null;
    String user = "";
    for (FileItem item : items) 
    {
        if (item.isFormField()) 
        {
            String fieldName = item.getFieldName();
            String fieldValue = item.getString();
            if(fieldName.equalsIgnoreCase("user"))
            {
                user = fieldValue;
            }
        }
        else 
        {
            String fieldName = item.getFieldName();
            if(fieldName.equalsIgnoreCase("image"))
            {
                fileContent = item.getInputStream();
            } 
        }
    }
}
protectedvoiddopost(HttpServletRequest请求,HttpServletResponse响应){
列表项=新建ServletFileUpload(新建DiskFileItemFactory()).parseRequest(请求);
InputStream fileContent=null;
字符串user=“”;
用于(文件项:项)
{
if(item.isFormField())
{
字符串fieldName=item.getFieldName();
String fieldValue=item.getString();
if(fieldName.equalsIgnoreCase(“用户”))
{
用户=字段值;
}
}
其他的
{
字符串fieldName=item.getFieldName();
if(fieldName.equalsIgnoreCase(“图像”))
{
fileContent=item.getInputStream();
} 
}
}
}

这只是一个如何使用文件类型处理
post
请求的示例。

这就是我获取img的方式。我也会尝试其他数据,我会让你知道。谢谢@没问题@欢迎光临,很高兴我能帮忙!
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
    List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
    InputStream fileContent = null;
    String user = "";
    for (FileItem item : items) 
    {
        if (item.isFormField()) 
        {
            String fieldName = item.getFieldName();
            String fieldValue = item.getString();
            if(fieldName.equalsIgnoreCase("user"))
            {
                user = fieldValue;
            }
        }
        else 
        {
            String fieldName = item.getFieldName();
            if(fieldName.equalsIgnoreCase("image"))
            {
                fileContent = item.getInputStream();
            } 
        }
    }
}