title: how to get getServletContext() in spring mvc Controller
body: <p>I need to upload images in my project. How to get the upload path in SpringMVC.
  The path is;</p>
  
  <pre><code>/home/cme/project/eclipse/workspace_12_11/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/fileUploadTester/upload
  </code></pre>
  
  <p>The following error;</p>
  
  <pre><code>The method getServletContext() is undefined for the type HomePageController
  </code></pre>
  
  <p>appears when I use this code;</p>
  
  <pre><code>String uploadPath = getServletContext().getRealPath("") + File.separator + UPLOAD_DIRECTORY;
  </code></pre>
  
  <p>My code is </p>
  
  <pre><code>public ModelAndView UploadPhoto(@ModelAttribute User user, HttpServletRequest request, HttpServletResponse response) throws IOException {
   final String UPLOAD_DIRECTORY = "upload";
   final int THRESHOLD_SIZE = 1024 * 1024 * 3; // 3MB
   final int MAX_FILE_SIZE = 1024 * 1024 * 40; // 40MB
   final int MAX_REQUEST_SIZE = 1024 * 1024 * 50; // 50MB
  
   String value[] = new String[10];
   int i = 0;
  
   // checks if the request actually contains upload file
   if (!ServletFileUpload.isMultipartContent(request)) {
    PrintWriter writer = response.getWriter();
    writer.println("Request does not contain upload data");
    writer.flush();
    return; //here is error This method must return a result of type ModelAndView
   }
  
   DiskFileItemFactory factory = new DiskFileItemFactory();
   factory.setSizeThreshold(THRESHOLD_SIZE);
   factory.setRepository(new File(System.getProperty("java.io.tmpdir")));
  
   ServletFileUpload upload = new ServletFileUpload(factory);
   upload.setFileSizeMax(MAX_FILE_SIZE); //here error The method setFileSizeMax(int) is undefined for the type ServletFileUpload
   upload.setSizeMax(MAX_REQUEST_SIZE);
   String uploadPath = getServletContext().getRealPath("") + File.separator + UPLOAD_DIRECTORY; // here error The method getServletContext() is undefined for the type Homepage Controller
   // creates the directory if it does not exist
   File uploadDir = new File(uploadPath);
   if (!uploadDir.exists()) {
    uploadDir.mkdir();
   }
  
   try {
    List &lt; FileItem &gt; items = upload.parseRequest(request); // request is HttpServletRequest
    for (FileItem item: items) {
     if (item.isFormField()) { // text fields, etc...
      String fieldName = item.getFieldName();
      System.out.print("fieldname" + fieldName);
      value[i] = item.getString();
      System.out.print("from uploader" + value[i]);
      i++;
     } else {
      //String fileName=new File(item.getName()).getName();   Use this to use default file name
      String name = value[0];
      System.out.println("file uploader name" + name);
      String filePath = uploadPath + File.separator + name;
      System.out.println(filePath);
      File storeFile = new File(filePath);
      try {
       item.write(storeFile);
      } catch (Exception ex) {
      }
     }
    }
    System.out.println("uploaded successfully");
   } catch (Exception ex) {
    System.out.println("error not uploaded");
   }
   return new ModelAndView("ChangePhoto");
  }
  </code></pre>
  
  <p>Three error</p>
  
  <ol>
  <li>This method must return a result of type ModelAndView</li>
  <li>The method setFileSizeMax(int) is undefined for the type ServletFileUpload</li>
  <li>The method getServletContext() is undefined for the type Homepage Controller</li>
  </ol>