Отключить доступ к сервлету - PullRequest
0 голосов
/ 31 октября 2019

Я разрабатываю WebApp с использованием JavaEE и использую сервлет для проверки некоторых вещей.

В настоящее время мой WebApp настроен так, что когда я захожу на свой локальный URL localhost:8080/myApp/test, я могу запустить свой test сервлет.

Я планирую развернуть мой проект в Интернете, и я хочу отключить сервлет, но не удаляю его . Я имею в виду, что если в будущем я зайду на свой удаленный сервер по URL www.myNewWeb.com/test, я бы хотел, чтобы он выдавал ошибку или ничего не делал.

Как я мог это сделать?

1 Ответ

1 голос
/ 31 октября 2019

Здесь есть много возможных опций:

Опция 1

Удалить отображение (аннотация @WebServlet или запись отображения URL в web.xml). В этом случае любая попытка вызвать этот сервлет закончится ошибкой, сгенерированной выбранным вами контейнером JEE. Он будет пытаться сопоставить сервлет с URL, очевидно потерпит неудачу и выдаст исключение

Очевидным недостатком этого метода является то, что вам нужно изменить конфигурацию развертывания, и если вы хотите запустить тот же артефакт вВ другом окружении, где должен работать этот сервлет, вы не сможете этого сделать.

Опция 2

Создайте какую-то конфигурацию, загрузите эту конфигурацию вместе с вашим приложением,В методе doGet (только для примера) сделайте что-то вроде этого:

  public void doGet(request, response) {
     if(config.isTestServletEnabled()) { // this is where the data gets read from configuration that I've talked about before
        // do your regular processing here
     }
     else {
        // this will happen when the servlet should not be activated 
        // throw an exception, return HTTP error code of your choice, etc
      } 
  } 

Этот способ не имеет недостатка в первом методе, который я объяснил выше, однако включает в себя некоторыекод для написания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...