Я прочитал ответ Томаша Нуркевича, за который до сих пор проголосовали 22 человека.Пожалуйста, обратите внимание, он ответил 4 года назад .
Мне было интересно, зачем мне нужен почти пустой XML-файл?
И я попробовал с привет миром с Servlet 3.
package com.servlet3;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/helloServlet3")
public class HelloServlet3 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.print("<html><body>");
out.print("<h3>Hello Servlet</h3>");
out.print("</body></html>");
}
}
И я могу успешно запустить это крошечное веб-приложение.
Важное примечание:
обратите внимание, в данном примере web.xml не существует .
Итак,нам не нужно такого рода почти пустого web.xml.
но web.xml обязательный ,если вам нужна аутентификация на основе форм (но без безопасности Spring ). потому что нет эквивалентной аннотации для <login-config
>.
В соответствии с этимотправлять сообщения в SO
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login</form-login-page>
<form-error-page>/login?event=Retry</form-error-page>
</form-login-config>
</login-config>
... единственный способ настроить аутентификацию на основе форм - использовать дескриптор развертывания (web.xml или web-фрагмент.xml).
Согласно спецификации JSR-315 Servlet 3.0on :: Ch13.6.3 (pg132):
"Дескриптор развертывания веб-приложения содержит записи для формы входа и страницы ошибок ..."
Спецификация only относится к дескриптору веб-развертывания для конфигурации входа в систему, а не относится к какой-либо аннотации конфигурация.
UPDATE:
Приведенная выше strike out информация относится к Java EE6 .
В Java EE7 , мы можем сделать на основе формыаутентификация программным способом ..
Из Java EE7 Официальное руководство ,
48.3.1 Аутентификация пользователей программно
Следующие методы интерфейса HttpServletRequest позволяют программно проверять подлинность пользователей веб-приложения.
authenticate позволяет приложению инициировать проверку подлинности вызывающего запроса с помощьюконтейнер изнутри неограниченного запросатекст.Диалоговое окно входа в систему отображает и собирает имя пользователя и пароль для целей аутентификации.
login позволяет приложению собирать информацию об имени пользователя и пароле в качестве альтернативы указаниюпроверка подлинности на основе форм в приложении дескриптор развертывания .
logout позволяет приложению сбрасывать личность вызывающего абонента в запросе.