Чтобы избежать этой проблемы, используйте nextLine();
сразу после nextInt();
, поскольку это помогает очистить буфер. Когда вы нажимаете ENTER
, nextInt();
не захватывает новую строку и, следовательно, позже пропускает код Scanner
.
Scanner scanner = new Scanner(System.in);
int option = scanner.nextInt();
scanner.nextLine(); //clearing the buffer
Он инициализируется при развертывании приложения сервлета. Контекст сервлета содержит все конфигурации (init-prarm, context-params и т. Д.) Всего приложения сервлета.
Является весной. Это начато весной. Он содержит все функции защиты бобов и жизненный цикл бобов, которые определены внутри файлов конфигурации пружин. Сервлет-Контекст понятия не имеет об этом.
В весеннем родительском и дочернем объектах есть два типа контекста.
<listener>
<listener-lass>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/service-context.xml,
/WEB-INF/dao-context.xml,
/WEB-INF/was-context.xml,
/WEB-INF/jndi-context.xml,
/WEB-INF/json-context.xml
</param-value>
</context-param>
role-purpose-of-contextloaderlistener-in-spring Spring-ContextLoaderListener-And-DispatcherServlet-Concepts Когда запускается весенний контейнер, он считывает все компоненты определения из файлов конфигурации и создания объектов beans и управляет жизненным циклом объектов bean.
DispatcherServlet vs ContextLoaderListener / declaring-spring-bean-in-parent-context-vs-child-context
<servlet>
<servlet-name>myWebApplication</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jobbuzz-web</servlet-name>
<url-pattern>/app/*</url-pattern>
</servlet-mapping>
, когда запускается приложение весеннего веб-сайта, он будет искать файл конфигурации myBaSpplication-servlet.xml. Он будет читать все определения бобов и создавать и управлять жизненным циклом объектов компонента. Если доступен родительский контекст источника, он объединяет контекст дочерней пружины с родительским весенним контекстом. Если нет весеннего родительского контекста, приложение будет иметь только детский весенний контекст.
Весной, чтобы прочитать определенный файл конфигурации инициализации, мы используем параметр context-param с предопределенным именем, называемым contextConfigLocation.
<context-param>
<description>WebFlow context configuration</description>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/test-context.xml</param-value>
</context-param>
Но в случае веб-приложения Plain J2EE без включения каких-либо фреймворков контекстный параметр может считываться из любого места в приложении, то есть любого сервлета, фильтра.
Разница между ApplicationContext и ServletContext, санджай объяснил
Это разные вещи. Все веб-приложения Java, основанные на технологии Servlet, будут иметь контекст сервлета , независимо от того, является ли это весенним приложением или нет. Напротив, ApplicationContext - вещь Весна; в очень простых выражениях, это контейнер для хранения весенних бобах.
Чтобы инициировать значение как для ApplicationContext, так и для ServletContext, в web.xml мы добавим что-то в тег context-param.
blockquote>Это поможет, если вы приведете пример для этого, потому что, насколько мне известно, context-param используется для ServletContext, а не ApplicationContext.
Update:
Вы можете использовать
context-param
, чтобы указать расположение файлов конфигурации контекста корневого приложения, как показано ниже.<context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/root-context.xml /WEB-INF/applicationContext-security.xml </param-value> </context-param>
ApplicationContext - контейнер Spring.
Он используется для объединения конфигураций из Spring beans вместе и использования их для приложения.
Используйте ApplicationContext, если вы хотите получить информацию Spring bean.
Используйте ServletContext, если вы хотите получить / установить атрибут, общий для всех сервлетов.