将textarea内容从jsp页面写入​​文本文件

时间:2016-02-15 20:29:24

标签: java jsp writetofile

我有一个带有textarea和提交按钮的jsp页面。

form.jsp

<form method="post" action="submitForm">
            <label for="commentTxt">Comments: </label><br />
            <textarea rows="20" cols="100" id="commentTxt" name="commentTxt" 
                placeholder="Enter your comments."></textarea><br />

            <input type="submit" name="submit" value="Submit" />

        </form>

我想将注释写入文本文件,因此在servlet中我有这个代码调用java方法来写入txt文件。

submitForm.java

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    //doGet(request, response);
    // get user comments
    String comments = request.getParameter("commentTxt");
    FilesRW.writeStrTxt(comments);

}

FilesRW.java

    public static void writeStrTxt( String str){
     FileWriter fileWriter = null;
    try{
        FileWriter wr = new FileWriter( new File("userComments.txt"));
        System.out.println(str);// this line print user comments in console
        wr.write(str);
        wr.close();
    }catch (IOException exe) {
         exe.printStackTrace();
    }

}

我不知道是什么问题,因为用户评论被发送到fileRW类,我可以将它打印到控制台并查看用户评论。但是,当我打开文件时,它是空的。此外,当我尝试在同一个类(FilesRW.java)的主要部分中使用writeStrTxt(String)方法时,它可以工作并将文本写入文件。

我需要在servlet类(submitForm.java)中调用此方法,但它不会将文本写入文件。我的代码出了什么问题?

3 个答案:

答案 0 :(得分:0)

您的数据可能会缓存在内存中。请尝试在wr.close();

之前添加以下内容
wr.flush();  

答案 1 :(得分:0)

答案 2 :(得分:0)

更改

 System.out.println(str);

 System.out.println("* "+str);

并验证是否没有第二个空请求。