jspではapacheのcommens-fileupladパッケージを利用してファイルをアップロードします。


まずjarファイルのカバンをダウンロードして、apacheの公式サイトにあります。
最初のカバンはCommons IO 2.0です。   住所:http://commons.apache.org/io/ 
第二のカバンFileUpload 1.2.1    住所:http://commons.apache.org/fileupload/download_fileuplad.cgi
   zipのカバンをダウンロードして解凍して中のjarカバンをあなたの工事libに入れてもいいです。
そしてfileupladのservletコードを作成します。
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class FileUpload extends HttpServlet {
	public FileUpload() {
		super();
	}
	public void destroy() {
		super.destroy(); 
	}
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

	}
	public void init() throws ServletException {
	}

}
 doPostメソッドでファイルアップロードコードを作成します。
		if(ServletFileUpload.isMultipartContent(request)){
			DiskFileItemFactory dfif = new DiskFileItemFactory();
			
			// byte               ,         
			dfif.setSizeThreshold( 5 * 1024 * 1024);
			
			//            
			dfif.setRepository(new File("c:\\temp"));
			
			//    ServletFileUpload    
			ServletFileUpload servletfileupload = new ServletFileUpload(dfif);

			//        50M   
			servletfileupload.setSizeMax(50*1024*1024);
			
			//  ServletFileUpload  parseRequest           FileItem    
			try {
				List<FileItem> files = servletfileupload.parseRequest(request);
				for(FileItem f:files){ 
					if(f.isFormField()){ //        ,        
						out.println(f.getFieldName());   
						out.println(f.getString("UTF-8")); //  Web    UTF-8  ,          UTF-8   。   
					}else{ 
						String filename = f.getName(); 
						filename = filename.substring(filename.lastIndexOf("."));   
						try {
							f.write(new File("c:\\upfile\\" + (int)(Math.random()*10000000) + filename));
						} catch (Exception e) {
							e.printStackTrace();
						}   
					}  
				}
			} catch (FileUploadException e) {
				e.printStackTrace();
			}
			out.print("OK");
		}
		else{
			out.print("          !");
		}
 doGet法では、this.doPost方法を呼び出してもいいです。例えば、this.doPost(request,reponse)。
 
ファイルをアップロードするページのformを作成します。
注意:フォームのenctype属性はmultiiprt/form-dataに設定しなければなりません。
次にservletを設定します。
サイトのweb-INFフォルダにweb.xmlを追加します。
   <servlet>
       <servlet-name>Upload</servlet-name>
       <servlet-class>Upload</servlet-class>
   </servlet>
   <servlet-mapping>
       <servlet-name>Upload</servlet-name>
       <url-pattern>/fileupload</url-pattern>
   </servlet-mapping>
 最後の段の上に置いてください。
OK大成功~アップロードしてみてもいいです。