Như tôi biết nó trả về đường dẫn ứng dụng? Nhưng chính xác thì việc sử dụng nó là gì.Servlet: Chính xác việc sử dụng context.getRealPath ("") là gì;
Trả lời
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.
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 ở đó.
Đâ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ự.
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.
- 1. Chính xác, việc xuất một ứng dụng Android là gì?
- 2. Chính xác là lợi ích của việc sử dụng Punjab
- 3. Cách sử dụng bitfields chính xác trong C là gì?
- 4. Hình nền CSS - Cách sử dụng chính xác là gì?
- 5. Cách chính xác để sử dụng TypeForwardedToAttribute là gì?
- 6. Bước chính xác của việc mở rộng macro là gì?
- 7. Việc sử dụng chính xác của XmlNode.SelectSingleNode (xpath chuỗi) trong C# là gì?
- 8. Việc sử dụng chính xác các lớp trong gói java.util.concurrent.atomic trong Java là gì?
- 9. Chính xác là yêu cầu Ajax là gì? Nó khác với yêu cầu Servlet?
- 10. Chính xác là gì?
- 11. Việc sử dụng ^: động trên xác thực là gì?
- 12. Việc sử dụng "??" là gì?
- 13. Heroku chính xác là gì?
- 14. OWASP chính xác là gì?
- 15. Container.DataItem chính xác là gì?
- 16. Chính xác PLINQ là gì?
- 17. Sun.jnu.encoding chính xác là gì?
- 18. Cài đặt "config.assets.debug" chính xác là gì?
- 19. Việc sử dụng window.external là gì?
- 20. Việc sử dụng LOCAL_MODULE_TAGS là gì?
- 21. Việc sử dụng Deployment.Current.Dispatcher.BeginInvoke (() => {...}) là gì?
- 22. Việc sử dụng singletonList là gì?
- 23. Việc sử dụng typedef là gì?
- 24. Việc sử dụng udevadm là gì?
- 25. việc sử dụng string.Clone() là gì?
- 26. Việc sử dụng plist là gì?
- 27. Việc sử dụng "khoan dung" là gì?
- 28. Việc sử dụng AtomicReferenceArray là gì?
- 29. Việc sử dụng Indexers là gì?
- 30. Chính xác những gì DFS không được sử dụng có nghĩa là gì?