2016-06-20 3 views
0

Я подумываю о том, как создать главный сервлет, из которого остальные сервлеты простираются от этого. У меня есть некоторые свойства, которые я хотел бы получить доступными для всех сервлетов в моем приложении, и я хочу их инициализировать. Я думаю, что это может быть что-то вроде этого:Сервлеты, init и extends

public abstract class MainServlet extends HttpServlet { 

    protected String errorURL = null; 
    protected String adminMenuURL = null; 
    protected String AdminLoginServlet = null; 
    protected String ValidateServlet = null; 

    // here, more properties and methods... 

    @Override 
    public void init() { 
     errorURL = context.getInitParameter("errorURL"); 
     adminMenuURL = context.getInitParameter("adminMenuURL"); 
     AdminLoginServlet = context.getInitParameter("AdminLoginServlet"); 
     ValidateServlet = context.getInitParameter("ValidatePicsServlet"); 
     // here, some more inits... 
    } 
} 

Когда я создаю новый Servlet как следующее ...

public class AdminLoginServlet extends MainServlet { 

} 
  1. Если я жду AdminLoginServlet, будет ли параметры (errorURL, adminMenuURL и т. д.)?
  2. Если я переопределяю метод init в AdminLoginServlet (и другие сервлеты, которые простираются от MainServlet) ... эти свойства никогда не будут назначены, не так ли?
  3. Как вы будете делать то, что я притворяюсь?

Спасибо.

ответ

0
  1. члены adminMenuUrl и так далее назначаются, когда сервлет сначала создается двигателем, потому что это тот момент, когда init() вызывается. Каждый запрос пользователя обрабатывается одним и тем же экземпляром сервлета в разных потоках. Когда вы перенаправляете запрос на сервлет, метод init() не будет вызываться.
  2. вы правы, потому что не может быть ни одного случая MainServlet
  3. Я не знаю, как ваш веб-приложение должно выглядеть

Вы должны переименовать поля AdminLoginServlet и ValidateServlet, потому что это плохая практика для запуска имен полей с прописными буквами.

+0

Спасибо за ваш ответ! Это было очень полезно для меня. С уважением – Ommadawn

Смежные вопросы