내 질문은 this code에서 온다.doGet 메서드 내에서 doPost 메서드를 호출하는 것이 맞습니까?
즉, 그것은 수행합니다
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try
{
out.println("<html>");
out.println("<head>");
out.println("<title>Hi World</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1> Hello World </h1>");
doPost(request,response); // <<--- ???
out.println("</body>");
out.println("</html>");
}
finally
{
out.close();
}
}
나는 그냥 샘플 코드 알고있다. 그러나이 경우에 나는 초보자이며 이걸 "doGet 안에 doPost"로 만들었는데, 왜냐하면 나는 그것을 읽고 OK라고 생각하기 때문이다 : 이것을하는 데있어서의 문제점은 무엇인가? 그것은 불충분하다 (좋은 이유없이 서버를 두 번 치는 것)? 서버에서 불필요한 요청을 실행합니까? 너무 많은 불필요한 코드 (doPost와 doGet 메소드 모두)? 그것입니까 utterly nonsense? 또는이를 수행하는 시나리오가 합리적 일 수 있습니까?
, 옵션 코드를 복제하는 중입니다 (낭비, 오류가 발생하기 쉬운), 다른 하나를 호출하거나 (쉬운 방법), 둘 다 처리하는 도우미 메서드를 만들 수 있습니다 (장기적으로). – Compass
어떤 이유에서든 똑같은 일을하기 위해 둘 다 필요하다면, 다른 *을 호출하고 다른 것을 호출하지만 다른 것을 호출하는 것은 의미가 있습니다. 그러나 위에서 한 일을하는 것은 끔찍한 일입니다. 다른 사람들이 다른 것을 호출하기 전후에 다른 것을하고있는 것뿐만 아니라 서블릿에 HTML을 인쇄하는 것도 나쁘다. – developerwjk