2012-04-01 29 views
12

Tôi muốn biết cấu trúc thư mục để sử dụng servlet 3.0 với Tomcat 7. Tôi đã sử dụng chú thích @WebServlet không có tham số khởi tạo.servlet 3.0 @WebServlet use..what sẽ có trong web.xml?

Tôi muốn biết điều gì sẽ được viết trong tệp web.xml? Có và vẫn còn được viết ... ??

Tệp được lưu trữ trong thư mục lớp của tomcat.

+3

Bạn không cần bất kỳ tệp web.xml nào cả. Vui lòng xem [tại đây] [1]. Giải thích. [1]: http://stackoverflow.com/questions/9967062/servlet-3-0-import-package-of-annotation –

Trả lời

23

Đây là tất cả các bạn cần trong 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-tương thích servlet container (như Tomcat 7) sẽ tìm @WebServlet tự động.

+0

ok thanks..so web.xml mặc định sẽ ổn thôi .. – user460920

+0

Có thuộc tính bắt buộc nào cho chú thích này @WebServlet không ?? – user460920

+0

nhập javax.servlet.annotation.WebServlet; Có gì ở đây servlet, chú thích và WebServlet một lớp hoặc giao diện trong gói javax? – user460920

2

Tôi đọc câu trả lời từ Tomasz Nurkiewicz đã được upvoted bởi 22 người cho đến bây giờ. Xin lưu ý, ông đã trả lời 4 năm trước.

Tôi tự hỏi tại sao tôi cần một tệp xml gần như trống rỗng?

Và tôi đã cố gắng với một thế giới hello với 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>"); 
    } 
} 

Và tôi có thể chạy ứng dụng web nhỏ này thành công.

enter image description here

Lưu ý quan trọng:

xin lưu ý, có không web.xml tồn tại trong mẫu này.

enter image description here

Vì vậy, chúng tôi không cần loại gần như rỗng web.xml.

nhưng, web.xml là bắt buộc, nếu bạn cần xác thực form-based (nhưng, mà không mùa xuân an ninh) .Bởi, có không chú thích tương đương sẵn cho <login-config>.

Theo bài đăng này trong 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> 

... cách duy nhất để cấu hình xác thực dựa trên hình thức là sử dụng bộ mô tả triển khai (web.xml hoặc web-fragment.xml).

Theo JSR-315 Servlet 3.0 Đặc điểm kỹ thuật :: Ch13.6.3 (pg132):

"Việc áp dụng mô tả triển khai web chứa mục cho một hình thức đăng nhập và trang lỗi ..."

Specification chỉ đề cập đến mô tả triển khai web cho cấu hình hình thức đăng nhập, và không để bất kỳ chú thích cấu hình dựa trên

UPDATE:.

Trên đây strike thông tin liên quan đến Java EE6.

Trong Java EE7, Chúng tôi có thể làm form-based authentication cách chương trình ..

Từ Java EE7 official tutorial,

48.3.1 Người dùng xác thực lập trình

Các phương thức sau của giao diện HttpServletRequest cho phép bạn xác thực người dùng cho một chương trình ứng dụng web tically.

xác thực cho phép một ứng dụng để kích động xác thực của người gọi yêu cầu bởi các container từ bên trong một yêu cầu không bị giới hạn ngữ cảnh. Hộp thoại đăng nhập hiển thị và thu thập tên người dùng và mật khẩu cho mục đích xác thực.

đăng nhập cho phép một ứng dụng để thu thập tên người dùng và mật khẩu thông tin như một thay thế việc xác định hình thức thẩm định dựa trên trong một ứng dụng triển khai mô tả.

logout cho phép một ứng dụng để thiết lập lại bản sắc người gọi được yêu cầu .

+0

tại sao downvote? biện minh. –

+0

Câu hỏi là ... những gì sẽ có trong web.xml? Tôi trả lời như "không có gì" sẽ ở trong đó. Có điều gì sai để bình luận câu trả lời khác không? Tôi bị bối rối. –

Các vấn đề liên quan