【问题标题】:How to write to a file in Java using Servlet [duplicate]如何使用 Servlet 在 Java 中写入文件 [重复]
【发布时间】:2018-01-11 19:50:09
【问题描述】:

我正在创建一个 Java Web 应用程序,它从 HTML 表单中获取数据并使用 Servlet 将其保存到文本文件中。但是,当我运行应用程序时,我无法在任何地方看到文本文件,因此我不确定它是否已成功创建。有没有人知道为什么文件没有出现?

这是我的 HTML 表单代码:

<html>
<head>
    <title>Register Customer</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
    <form name = "regcustomer" method = "get" action = "CustomerServlet" >
        Customer Name
        <input type="text" name="customerName"> <br>
        Customer Address 
        <input type="text" name="customerAddress"> <br> 
        Telephone Number
        <input type="text" name="telNo"> <br>
        Email
        <input type="text" name="email"> <br>
        Cost per KG shipped
        <input type="text" name="costPKG"> <br>
        <input type="submit" value="Register"> <br> <br>

        <a href="index.html">Back</a>
        </form>
</body>

这是我的 servlet 代码:

package Servlets;

import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CustomerServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse 
response)
throws ServletException, IOException {
PrintWriter pw = response.getWriter();
String customerName;
customerName = request.getParameter("customerName");
String customerAddress = request.getParameter("customerAddress");
String telNo;
telNo = request.getParameter("telNo");
String email = request.getParameter("email");
String costPKG = request.getParameter("costPKG");

try{
File file = new File("C:/xyz.txt");
FileWriter fstream = new FileWriter(file,true);
try (BufferedWriter out = new BufferedWriter(fstream)) {
    out.write(customerName+" "+customerAddress+" "+telNo+" "+email+" 
"+costPKG);
    out.newLine();
}
pw.println("File is created successfully");
}

catch (IOException e){
System.err.println("Error: " + e.getMessage());
}
}
}

任何建议将不胜感激

【问题讨论】:

  • 这可能会帮助你link
  • 应该首先在 web.xml 中映射你的 servlet
  • 你的标题完全不正确
  • 怎么错了?如果需要,我可以更改它
  • 我不断收到一条错误消息,上面写着“TTP 状态 404 - 这与写入文件有什么关系?

标签: java html servlets netbeans


【解决方案1】:

尝试添加该行:

@WebServlet(urlPatterns = { "/CustomerServlet" })

之前:

public class CustomerServlet extends HttpServlet {

注意:如果您使用的是旧容器(未实现 Servlet 3.0,如 Tomcat 6.0),则必须编辑 web.xml。

【讨论】:

  • 如果WebApplication不是3.0及以上版本怎么办?下面不支持注释配置。
  • 我已经添加了该行并编辑了 web.xml,我不再收到错误,但是我找不到文本文件。你知道我在哪里可以找到它吗?还有什么我可以改变的(“C:/xyz.txt”)吗?
  • C:/xyz.txt 可能被锁定或不可写。
  • 我已经解决了这个问题,谢谢大家的帮助:)
  • 你是怎么解决这个问题的?
猜你喜欢
  • 1970-01-01
  • 2013-01-08
  • 1970-01-01
  • 1970-01-01
  • 2013-05-26
  • 2023-04-01
  • 2013-04-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多