>source

저는 Java를 처음 접했습니다. 잘 작동하는 스크립트가 있지만 그 뒤에있는 논리를 이해하고 싶습니다.

사용자가 자신의 사용자 이름을 입력하면 동일하게 출력하고 싶습니다.

사용하고 있습니다

protected void service(HttpServletRequest req, HttpServletResponse resp)

하지만 많은 튜토리얼에서 볼 수 있습니다

protected void doPost(HttpServletRequest req, HttpServletResponse resp)

그리고

protected void doGet(HttpServletRequest req, HttpServletResponse resp)

doGet() 의 차이점을 이해한다고 생각합니다  그리고 doPost() . 둘 다 service() 메소드에 의해 호출됩니다. . 왜 doGet() 를 사용합니까?  그리고 doPost() service() 를 간단히 사용할 수 있다면 ?

전체 코드는 다음과 같습니다 :

package ch.yourclick.zt;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/login")
public class Login extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter out = resp.getWriter();
        out.print(req.getParameter("username"));
    }
}

  • 답변 # 1

    service 를 재정의하는 경우  서블릿은 모든 요청 메소드를 처리합니다 ( GET POST ...). 이러한 요청 메소드는 다른 의미를 가지며 다른 방식으로 동작 할 것으로 예상됩니다 (HTTP 요청 메소드 참조).

    따라서 서블릿은 이들 중 일부에 대한 올바른 응답을 반환하지 못하고 서블릿 사용자는 혼란 스러울 수 있습니다. 왜 DELETE   GET 와 같은 방식으로 동작  실제로 소스를 수정하지는 않습니다.

    서블릿의 기능에 따라 서블릿 ( GET 도 처리하는 경우)과 같은 보안 취약점이 발생할 수 있습니다. )는 데이터베이스를 수정합니다.

  • 이전 java - jpanelpaintComponent () 내에서 setText () 메서드를 호출 할 때 JLabel이 새로 고쳐지지 않는 이유는 무엇입니까?
  • 다음 c# - ReadOnlyMemory를 IMemoryOwner로 변환하는 방법?