찾다

 >  Q&A  >  본문

java - 重写HttpServlet的doGet、doPost方法时为什么要把它们的访问权限设为public?

看一本Java Web入门书时,其中提到HttpServlet的doGet方法是protected的,我们重写doGet方法时,为了使其能被Servlet容器访问,应该把访问权限设为public,然后我看网上的例子也全是把doGet写成public。Servlet容器为什么会直接访问doGet方法?HttpServlet的原理不是容器调用其service()方法,其service()根据实际的请求方法来调用doGet或者doPost的么。

高洛峰高洛峰2803일 전994

모든 응답(2)나는 대답할 것이다

  • PHPz

    PHPz2017-04-18 10:54:23

    doGet을 사용하여 doPost 또는 public을 작성하는 오픈소스 프로젝트를 본 적이 있나요? 적어도 나는 그것을 본 적이 없습니다.

    의 범위는 최대한 작아야 합니다(private을 사용할 수 있으면 protected를 사용하지 말고, protected을 사용할 수 있으면 public을 사용하지 않는 것이 원칙입니다). 코딩에서 따라야 할 사항입니다.

    회신하다
    0
  • 迷茫

    迷茫2017-04-18 10:54:23

    먼저 서비스 메소드에 접근한 후 서비스 메소드를 사용하여 doget 또는 dopost 메소드를 사용할지 결정합니다. 그러나 우리가 직접 작성한 서블릿은 HttpServlet을 상속하고 상위 클래스의 doget 및 doPost를 다시 작성하므로 반드시 공공의. Java는 하위 클래스가 해당 메소드를 호출자에게 공개할 수 있는지 여부를 결정할 수 있도록 권한을 늘리는 이 방법을 설계했습니다. 서브클래스가 보호되면 서블릿 컨테이너도 이에 액세스할 수 있습니다. 일반적으로 재정의된 상위 클래스 메서드에 대한 액세스 권한은 >= 상위 클래스의 메서드입니다.

    회신하다
    0
  • 취소회신하다