Tệp web.xml là gì và tôi có thể làm gì với nó?


76

Phần tử mô tả triển khai web.xml trong Tài liệu của Oracle's BEA WebLogic Server 8.1 tổng hợp khá nhiều phần tử trong một tệp web.xml. Nhưng tôi cũng tò mò về những điểm bên dưới:

  1. Có bất kỳ thông số cấu hình nào cần tránh như bệnh dịch hạch không?
  2. Bất kỳ thông số liên quan đến hiệu suất hoặc sử dụng bộ nhớ?
  3. Rủi ro liên quan đến bảo mật do cấu hình sai phổ biến?

Tôi nên biết gì khác về web.xml ngoài tên phần tử và cách sử dụng chúng?

Câu trả lời:


103

Tệp web.xml là gì và tôi có thể làm gì với nó?

Các /WEB-INF/web.xmltập tin là Web Application Deployment Descriptor của ứng dụng của bạn. Tệp này là tài liệu XML xác định mọi thứ về ứng dụng của bạn mà máy chủ cần biết (ngoại trừ đường dẫn ngữ cảnh, được chỉ định bởi Người triển khai và Quản trị viên ứng dụng khi ứng dụng được triển khai): các servlet và các thành phần khác như bộ lọc hoặc trình nghe, khởi tạo tham số, ràng buộc bảo mật do vùng chứa quản lý, tài nguyên, trang chào mừng, v.v.

Lưu ý rằng tài liệu tham khảo mà bạn đề cập là khá cũ (Java EE 1.4), có một số thay đổi trong Java EE 5 và thậm chí nhiều hơn trong Java EE 6 (làm cho web.xml"tùy chọn" và giới thiệu các Phân đoạn Web ).

Có bất kỳ thông số cấu hình nào cần tránh như bệnh dịch hạch không?

Không.

Bất kỳ thông số liên quan đến hiệu suất hoặc sử dụng bộ nhớ?

Không, những thứ như vậy không được định cấu hình ở cấp ứng dụng mà ở cấp bộ chứa.

Rủi ro liên quan đến bảo mật do cấu hình sai phổ biến?

Chà, nếu bạn muốn sử dụng các ràng buộc bảo mật do vùng chứa quản lý và không thể định cấu hình chúng đúng cách, các tài nguyên rõ ràng sẽ không được bảo vệ đúng cách. Ngoài ra, rủi ro bảo mật lớn nhất đến từ mã mà bạn sẽ triển khai IMO.


28

Tất cả những gì tôi nên biết về web.xml ngoài tên phần tử và cách sử dụng chúng?

Thông số cấu hình JSP quan trọng nhất DUY NHẤT MỌI LÚC nằm trong web.xml của bạn. Thưa quý vị, tôi cung cấp cho các bạn ... tùy chọn TRIM-DIRECTIVE-WHITESPACES !

<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <trim-directive-whitespaces>true</trim-directive-whitespaces>
    </jsp-property-group>
</jsp-config>

Điều này loại bỏ tất cả hàng trăm hoặc hàng nghìn dòng khoảng trắng mà bạn sẽ nhận được trong HTML đã tạo của mình nếu bạn sử dụng bất kỳ thư viện thẻ nào (các vòng lặp đặc biệt xấu và lãng phí).

Cái lớn còn lại là trang web mặc định (trang bạn được tự động chuyển đến khi bạn không nhập trang web vào URL):

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>    

8
  1. Không, không có bất cứ điều gì nên tránh
  2. Các tham số liên quan đến hiệu suất không có trong web.xmlchúng nằm trong các tệp cấu hình vùng chứa servlet ( server.xmltrên tomcat)
  3. Không. Tuy nhiên, servlet mặc định (được ánh xạ trong web.xml tại một vị trí chung trong vùng chứa servlet của bạn) tốt hơn nên vô hiệu hóa danh sách tệp (để người dùng không nhìn thấy nội dung của các thư mục web của bạn):

    danh sách đúng


6

Tôi đang cố gắng tìm ra chính xác cách thức hoạt động của nó. Trang web này có thể hữu ích cho bạn. Nó có tất cả các thẻ có thể có cho web.xml cùng với các ví dụ và mô tả của mỗi thẻ.

http://wiki.metawerx.net/wiki/Web.xml


1
Tuy nhiên, hãy cẩn thận một chút vì tôi đã tìm thấy một chỗ mà dấu gạch ngang được thay thế bằng dấu gạch dưới. (mất nhiều thời gian để gỡ lỗi).
sixtyfootersdude

1
tại sao không thêm nhận xét vào câu trả lời của bạn?
Bozho

3

Nếu sử dụng Struts, chúng tôi vô hiệu hóa quyền truy cập trực tiếp vào các tệp JSP bằng cách sử dụng thẻ này trong web.xml

 <security-constraint>
<web-resource-collection>
  <web-resource-name>no_access</web-resource-name>
  <url-pattern>*.jsp</url-pattern>
</web-resource-collection>
<auth-constraint/>


0

Tệp mô tả triển khai "web.xml": Thông qua việc sử dụng hợp lý tệp mô tả triển khai, web.xml, bạn có thể kiểm soát nhiều khía cạnh của hành vi ứng dụng Web, từ tải trước các servlet, đến hạn chế truy cập tài nguyên, đến kiểm soát thời gian chờ của phiên.

web.xml : được sử dụng để kiểm soát nhiều khía cạnh của một ứng dụng Web. Sử dụng web.xml, bạn có thể gán các URL tùy chỉnh để gọi các servlet, chỉ định các tham số khởi tạo cho toàn bộ ứng dụng cũng như cho các servlet cụ thể, kiểm soát thời gian chờ của phiên, khai báo bộ lọc, khai báo các vai trò bảo mật, hạn chế quyền truy cập vào tài nguyên Web dựa trên các vai trò bảo mật đã khai báo, và như thế.


-1

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd "version =" 3.0 ">

<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>


-1
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet>
    <description></description>
    <display-name>pdfServlet</display-name>
    <servlet-name>pdfServlet</servlet-name>
    <servlet-class>com.sapta.smartcam.servlet.pdfServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>pdfServlet</servlet-name>
    <url-pattern>/pdfServlet</url-pattern>
  </servlet-mapping>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.