2012-04-01 2 views
12

Я хочу знать структуру каталогов для использования сервлета 3.0 с Tomcat 7. Я использовал аннотацию @WebServlet без параметров инициализации.сервлет 3.0 @WebServlet use..what будет в web.xml?

Я хочу знать, что должно быть написано в файле web.xml, а затем? Есть и еще предстоит написать ... ??

Файл хранится в папке классов tomcat.

+3

Вам не нужен какой-либо web.xml. Пожалуйста, смотрите [здесь] [1]. Разъяснения. [1]: http://stackoverflow.com/questions/9967062/servlet-3-0-import-package-of-annotation –

ответ

23

Это все, что вам нужно в web.xml:

<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    version="3.0"> 

3,0-совместимый контейнер сервлетов (например, Tomcat 7) найдет @WebServlet автоматически.

+0

ОК по умолчанию web.xml thanks..so будет хорошо .. – user460920

+0

Является ли какой-либо атрибут обязательным для этой аннотации @WebServlet ?? – user460920

+0

импорт javax.servlet.annotation.WebServlet; Что такое сервлет, аннотация и WebServlet класс или интерфейс в пакете javax? – user460920

2

Я прочитал ответ от Томаша Нуркевича, который до сих пор поддерживался 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>"); 
    } 
} 

И я могу запустить этот крошечный веб-приложение успешно.

enter image description here

Важное примечание:

обратите внимание, есть нет web.xml не существует в этом образце.

enter image description here

Итак, мы сделать не потребность этот вид почти пустой web.xml.

но web.xml является обязательным , если требуется аутентификация на основе форм (но, без весны безопасности) .because, нет никакого эквивалента аннотацию для <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 или веб-fragment.xml).

Согласно JSR-315 Servlet 3.0 Техническая спецификация :: Ch13.6.3 (pg132):

«Применение дескриптора развертывания веб содержит записи для формы входа и страницы ошибок ..."

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

ОБНОВЛЕНИЕ:.

выше забастовка информация о связи связана с Java EE6.

В Java EE7, мы можем сделать на основе форм аутентификации программный способ ..

От Java EE7 official tutorial,

48.3.1 Аутентификация пользователей программным

Следующие методы интерфейса HttpServletRequest позволяют вам аутентифицировать пользователей для веб-приложения programma тически.

Аутентификация позволяет приложению провоцировать аутентификацию запроса вызывающего абонента в контейнере внутри неограниченного запроса контекста. Диалоговое окно входа в систему отображает и собирает имя пользователя и пароль для целей аутентификации.

Войти позволяет приложение собирать имя пользователя и пароль информации в качестве альтернативного для определения подлинности основы форм в приложении дескриптора развертывания.

Выход из системы позволяет приложению сбросить идентификатор вызывающего абонента запроса .

+0

почему downvote? подтвердите пожалуйста. –

+0

Вопрос: что будет в web.xml? Я ответил, как будто «ничего» не будет в нем. Есть ли что-то не так, чтобы прокомментировать другой ответ? Я озадачен. –

 Смежные вопросы

  • Нет связанных вопросов^_^