0
서블릿을 사용할 때 제목이 말하는대로 파일이 생성되지 않습니다. 나는 간단한 웹 애플리케이션을 가지고 있으며, HTML로부터 입력을 받아서 .txt 파일에 써 넣고 싶다. 문제는 모든 것이 잘 돌아가고 오류나 예외가 발생하지 않는다는 것입니다. 단지 텍스트 파일을 생성하지 않습니다. 나는 (텍스트 파일을 만들기 위해) 같은 코드를 사용했다. 그리고 나는 그것을 별도의 클래스로 테스트했고 완벽하게 작동한다. 문제는 서블릿에 텍스트 파일을 만들려고 할 때입니다. 이것은 내 코드입니다 :서블릿 사용시 텍스트 파일을 만들 수 없음
@WebServlet("/home")
public class HomePage extends HttpServlet
{
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.sendRedirect("/home.html");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String add = request.getParameter("buttonAdd");
String read = request.getParameter("buttonRead");
String update = request.getParameter("buttonUpdate");
String delete = request.getParameter("buttonDelete");
if(add != null)
{
String title = request.getParameter("dvd_title");
String year = request.getParameter("dvd_year");
String price = request.getParameter("dvd_price");
if(!title.equals("") && !year.equals("") && !price.equals(""))
{
if(!Character.isDigit(title.charAt(0)))
{
if (isNumeric(year) && isNumeric(price))
{
try
{
List<String> lines = Arrays.asList("Title: " + title, "Year: " + year, "Price: " + price);
Path file = Paths.get("DVD - " + title + ".txt");
Files.write(file, lines, Charset.forName("UTF-8"));
}
catch(IOException e)
{
e.printStackTrace();
}
}
else
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("Year and price must be numbers");
}
}
else
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("Title cannot start with a number");
}
}
}
if(read != null)
{
System.out.println("2");
}
if(update != null)
{
System.out.println("3");
}
if(delete != null)
{
System.out.println("4");
}
}
private static boolean isNumeric(String s)
{
return s != null && s.matches("[-+]?\\d*\\.?\\d+");
}
}
디버거를 통해 코드를 실행하여 파일을 만드는 코드 줄이 실제로 실행되었는지 확인하십시오. 알고있는 로깅 문을 추가 했습니까? 절대 파일 경로를 인쇄하고 올바른 장소를보고 있는지 확인 했습니까? –
@JBNizet 모든 질문에 예. – SwiftCaller
그럼 파일의 절대 경로는 무엇입니까? 그리고 우리가 찾던 코드를 보여 주면 어떨까요? –