Rumah  >  Soal Jawab  >  teks badan

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

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

高洛峰高洛峰2743 hari yang lalu951

membalas semua(2)saya akan balas

  • PHPz

    PHPz2017-04-18 10:54:23

    Pernahkah anda melihat mana-mana projek sumber terbuka yang menggunakan doGet untuk menulis doPost atau public? Sekurang-kurangnya saya tidak melihatnya.

    Skop

    hendaklah sekecil mungkin (jika anda boleh menggunakan private, jangan gunakan protected, jika anda boleh menggunakan protected, jangan gunakan public Ini adalah prinsip yang perlu diikuti dalam pengekodan.

    balas
    0
  • 迷茫

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

    Akses kaedah perkhidmatan dahulu, dan kemudian gunakan kaedah perkhidmatan untuk menentukan sama ada hendak menggunakan kaedah doget atau dopost Walau bagaimanapun, servlet yang kami tulis mewarisi HttpServlet dan menulis semula doget dan doPost kelas induk, jadi kami mesti menggunakan awam. . Java mereka bentuk kaedah ini untuk meningkatkan kebenaran supaya subkelas boleh memutuskan sama ada kaedah mereka boleh dibuka kepada pemanggil. Jika subkelas dilindungi, bekas servlet juga boleh mengaksesnya. Secara amnya, kebenaran akses untuk kaedah kelas induk yang ditindih ialah >= kaedah kelas induk.

    balas
    0
  • Batalbalas