TGViewer
Java | Вопросы собесов Java | Вопросы собесов @easy_java_ru · 11.3K subscribers
Post #317 5.02K
📌 В чем отличия ServletContext и ServletConfig ?

💬 Спросят с вероятностью 6%

ServletContext и ServletConfig - это два различных объекта, которые служат разным целям в контексте веб-приложения. Вот их основные отличия:

1️⃣ Область видимости

ServletContext:

➕ Область видимости: Применяется ко всему веб-приложению.

➕ Каждый сервлет, входящий в состав одного веб-приложения, имеет доступ к одному и тому же объекту ServletContext.

ServletConfig:

➕ Область видимости: Применяется только к конкретному сервлету.

➕ Каждый сервлет имеет свой собственный объект ServletConfig.

2️⃣ Цели использования

ServletContext:

➕ Используется для получения информации о веб-приложении и взаимодействия между сервлетами.

➕ Предоставляет доступ к общим ресурсам и данным, таким как параметры инициализации всего приложения, ресурсы веб-приложения и логирование.

ServletConfig:

➕ Используется для получения информации и параметров инициализации, специфичных для конкретного сервлета.

➕ Позволяет сервлету получить свои параметры инициализации, определённые в файле web.xml или с помощью аннотаций.

3️⃣ Методы и параметры

ServletContext:

➕ Методы: getAttribute, setAttribute, getInitParameter, getResourceAsStream, log, и т.д.

➕ Пример: доступ к общим параметрам приложения или общим ресурсам.

    ServletContext context = getServletContext();
String globalParam = context.getInitParameter("globalConfig");

ServletConfig:

➕ Методы: getInitParameter, getServletContext, getServletName, и т.д.

➕ Пример: доступ к параметрам инициализации конкретного сервлета.

    public void init(ServletConfig config) throws ServletException {
super.init(config);
String servletParam = config.getInitParameter("servletConfig");
}


Примеры:

➕ ServletContext:

Определение и использование параметра инициализации в web.xml:
<web-app ...>
<context-param>
<param-name>globalConfig</param-name>
<param-value>someValue</param-value>
</context-param>
</web-app>


Получение параметра в сервлете:
@WebServlet("/example")
public class ExampleServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletContext context = getServletContext();
String globalConfig = context.getInitParameter("globalConfig");
response.getWriter().println("Global Config: " + globalConfig);
}
}


➕ ServletConfig:

Определение и использование параметра инициализации сервлета в web.xml:
<servlet>
<servlet-name>ExampleServlet</servlet-name>
<servlet-class>com.example.ExampleServlet</servlet-class>
<init-param>
<param-name>servletConfig</param-name>
<param-value>servletValue</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ExampleServlet</servlet-name>
<url-pattern>/example</url-pattern>
</servlet-mapping>


Получение параметра в сервлете:
@WebServlet("/example")
public class ExampleServlet extends HttpServlet {
public void init(ServletConfig config) throws ServletException {
super.init(config);
String servletConfig = config.getInitParameter("servletConfig");
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletConfig config = getServletConfig();
String servletConfig = config.getInitParameter("servletConfig");
response.getWriter().println("Servlet Config: " + servletConfig);
}
}


➕ ServletContext предоставляет общую информацию и ресурсы для всего веб-приложения.

➕ ServletConfig предоставляет параметры инициализации для конкретного сервлета.

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

🔥 ТОП ВОПРОСОВ С СОБЕСОВ

🔒 База собесов | 🔒 База тестовых
  • 👍 10
  • 👀 2
More from @easy_java_ru
  1. Oct 11, 2026🤔 Какой класс позволяет читать данные из входного байтового потока в формате примитивных…
  2. Oct 11, 2026🤔 Чем отличается where от having ? WHERE и HAVING используются для фильтрации записей, но…
  3. Oct 10, 2026🤔 На основании какой структуры данных реализован ArrayList? ArrayList реализован на базе…
  4. Oct 9, 2026🤔 Что такое «HTML»? HTML (HyperText Markup Language) — это язык разметки, используемый дл…
  5. Oct 9, 2026🤔 В чём различие между LeftJoin , RightJoin и InnerJoin? LEFT JOIN, RIGHT JOIN и INNER JO…
  6. Oct 8, 2026🤔 Что такое поток "демон"? Демон-поток — это поток, который: - Работает на фоне (например…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →