2011-01-26 67 views

Trả lời

5

Trong nhiều môi trường, người dùng ứng dụng không được phép đọc bất kỳ tệp nào bên ngoài thư mục triển khai. Điều này chủ yếu được thực hiện vì mục đích bảo mật - ví dụ nếu ai đó hack ứng dụng của bạn, họ sẽ không thể đọc tệp mật khẩu.

Và trong môi trường được quản lý chuyên nghiệp, nhà phát triển thường không có tiếng nói trong đó thư mục ứng dụng sẽ được đặt.

Vì vậy, nếu bạn cần đọc một tệp như thuộc tính, hình ảnh, chứng chỉ, v.v. bạn có thể đặt nó trong thư mục ứng dụng (hoặc tệp .war) và sử dụng getRealPath ("") để lấy đường dẫn bạn cần tải .

Thay vào đó, bạn có thể đặt các tệp bên ngoài trên đường dẫn lớp nhưng đôi khi có vấn đề với điều này. Đối với các tệp lớn, hầu hết các máy chủ ứng dụng sẽ cố gắng tải toàn bộ tệp vào bộ nhớ và lưu vào bộ nhớ cache nếu nó nằm trên đường dẫn lớp.

1

Theo tôi nhớ, tôi đã sử dụng nó để lưu hình ảnh hoặc tệp dữ liệu khác, vì nó cho phép bạn xem nơi ứng dụng của bạn được triển khai tại thời điểm. Ví dụ, Eclipse và Tomcat sẽ tạo một thư mục tạm thời được chôn sâu ở đâu đó trong hồ sơ Eclipse của bạn và triển khai ứng dụng ở đó.

1

Đây là đường dẫn thực sự trong hệ thống tệp.

Từ javadoc:

Con đường thực trở lại sẽ nằm trong một hình thức phù hợp với máy tính và hệ điều hành trên đó servlet container đang chạy, bao gồm các thiết bị tách con đường đúng đắn. Phương thức này trả về null nếu thùng chứa servlet không thể dịch đường dẫn ảo thành đường dẫn thực vì bất kỳ lý do nào (chẳng hạn như khi nội dung đang được cung cấp từ một kho lưu trữ .war).

Tôi nghĩ điều đó rất rõ ràng. Tại sao chúng ta cần điều này? Đôi khi các ứng dụng web thực hiện một số thao tác trong hệ thống tệp. Ví dụ: đọc các nội dung từ các tệp, ghi tệp, v.v. API này cho phép bạn truy cập vào nơi JSP và các nội dung khác của bạn được lưu trữ thực sự.

2

getRealPath() cung cấp đường dẫn tuyệt đối (trên hệ thống tệp) dẫn đến tệp được chỉ định trong tham số của cuộc gọi. Nó trả về đường dẫn ở định dạng cụ thể cho hệ điều hành. Mặt khác getContextPath() trả về URI hoặc đường dẫn tương đối đến tài nguyên.

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