所需的两个jar包下载 http://url.cn/PH8G3m
第一步:编写jsp文件
<%@page pageEncoding="utf-8"
contentType="text/html;charset=utf-8"%>
<html>
<head>
</head>
<body style="font-size:30px;">
<form action="greeting" method="post" enctype="multipart/form-data">
name:<input name="username"/><br/>
photo:<input type="file" name="file1"/><br/>
<input type="submit" value="确定"/>
</form>
</body>
</html>
第二步:编写对应的Java类,这里我起名字HelloServlet(自己可以随意)
public class HelloServlet extends HttpServlet{
public void service(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException{
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload sfu = new ServletFileUpload(factory);
try{
List<FileItem> items = sfu.parseRequest(request);
//从request参数获得的是一个集合对象,要取出需要遍历即可
for(int i=0;i<items.size();i++){
FileItem curr = items.get(i);
if(curr.isFormField()){ //如果是普通表单,即用户名或者参数,如下方法获得
String username = curr.getString();
System.out.println("username:"+username);
}else{ //如果是特殊表单,即上传的文件,如下获得
ServletContext sctx = getServletContext();
String path = sctx.getRealPath("upload"); //这里需要在WebRoot下建立一个upload文件夹用来接受上传的文件 ,再通过次方法
//获得upload的路径,一般别写死
System.out.println("path:"+path);
String fileName = curr.getName();
System.out.println("fileName:"+fileName);
File file = new File(path+"\\"+fileName);
curr.write(file);
}
}
}catch(Exception e ){
e.printStackTrace();
}
}
}
第三步:配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>web.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<url-pattern>/greeting</url-pattern>
</servlet-mapping>
</web-app>
运行发送请求 http://localhost:8080/web01/test.jsp
备注:工程目录