Как можно увидеть, мы задали три параметра инициализации.
Задали один общий для всех сервлетов параметр с именем name и задали параметры с именем name, доступные только конкретному сервлету. Эти все параметры потом можно будет достать с помощью getInitParameter().
Параметры инициализации в первом сервлете MyServlet.
С помощью getInitParameter извлекаем параметры инициализации, которые были определены в web.xml.
Параметры инициализации во втором сервлете MyServlet1.
С помощью getInitParameter извлекаем параметры инициализации во втором сервлете, которые были определены в web.xml.
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.annotation.*;
import javax.servlet.ServletContext;
import javax.servlet.ServletConfig;
import javax.servlet.http.Cookie;
@WebServlet(“/myservlet”)
public class MyServlet1 extends HttpServlet {
protected void doGet(HttpServletRequest req,
HttpServletResponse resp)
throws ServletException, IOException{
PrintWriter pw = resp.getWriter();
//получаем контекст всего приложения
ServletContext scont = getServletContext();
//получаем значение параметра name контекста
//(также как и в другом сервлете будет CommonName)
pw.println(scont.getInitParameter(“name”));
//получаем конфиг сервлета
ServletConfig sconf = getServletConfig();
//получаем значение параметра name конфига
//(будет secondParamName)
pw.println(sconf.getInitParameter(“name”));
}
}
Проверка работы сервлетов
Скомпилируем файлы сервлетов и в адресной строке перейдем по адресу /configservlet.
Видим, что клиенту был отправлен параметр инициализации уровня контекста и параметр инициализации, который принадлежит только MyServlet и нигде больше не виден.
Если перейдем по пути /myservlet, то можно увидеть параметр инициализации уровня контекста (это тот же самый параметр, что и на картинке выше), который доступен всем сервлетам и параметр инициализации, который принадлежит только сервлету MyServlet1 и нигде больше не виден.
Узнайте, как обеспечить потокобезопасность в Java сервлетах. Изучите работу с синхронизацией, deprecated SingleThreadModel и лучшие практики для многопоточных сервлетов.
Time to read: 12
Что такое Filter в Java сервлетах
Фильтры (Filter) в Java сервлетах: выполняйте код до и после обработки запроса. Пример реализации интерфейса Filter для предварительной авторизации и логирования.