2016-02-27 51 views
2

我試圖在servlet的dopost中編寫一個文件。 我有一個jsp文件,它發送兩個變量到doPost方法中的servlet。並且servlet在文件中如下寫到這些變量:使用servlet寫文件時權限被拒絕

\t <form action="Client" method="POST"> 
 
\t \t name <input type="text" size="20px" name="name1" ><br/> 
 
\t \t name2 <input type="text" size="20px" name="name2"><br/> 
 
\t \t <input type="submit" value="submit"> 
 
\t </form>

我的doPost是

String name1 = request.getParameter("name1"); 
String name2 = request.getParameter("name2"); 
BufferedWriter output = null; 
try { 
File doc = new File("/home/username/Desktop/file.txt"); 
      output = new BufferedWriter(new FileWriter(doc)); 
      output.write(name1+" "+name2); 
      response.getWriter().append("File saved!"); 
     } catch (IOException e) { 
      response.getWriter().append("Exception"+e.getMessage()); 

     } finally { 
      if (output != null) output.close(); 
     } 

我創建了一個war文件,我把這場戰爭在我/var/lib/tomcat7/webapps/執行後我有個例外

/home/username/Desktop/file.txt (Permission denied) 

爲什麼權限被拒絕問題發生?

+2

您應該將該文件寫入運行Tomcat的用戶可寫入的目錄 – Raffaele

+0

您是不是指?我是運行Tomcat的用戶 – Mehdi

+0

您沒有足夠的權限寫入該文件。 – Abdelhak

回答

-1

試試這個:

String filename = getServletContext().getRealPath("/") + "filename.txt"; 
File file = new File(filename); 

這將創建一個文件名在webapps.context FILENAME.TXT。

+0

由於http://stackoverflow.com/q/12160639中提到的原因 – BalusC