Rumah >Java >javaTutorial >Bagaimana untuk Mengakses Sumber dalam Direktori WAR/WEB-INF dengan ServletContext?

Bagaimana untuk Mengakses Sumber dalam Direktori WAR/WEB-INF dengan ServletContext?

Patricia Arquette
Patricia Arquetteasal
2024-11-13 08:49:02737semak imbas

How to Access Resources in the WAR/WEB-INF Directory with ServletContext?

Mengakses Sumber dalam Direktori WAR/WEB-INF dengan ServletContext

Pengenalan:

Aplikasi web Java sering menyimpan sumber penting dalam direktori WAR/WEB-INF. Untuk mengakses sumber ini, pembangun boleh memanfaatkan ServletContext API.

Soalan:

Bagaimana anda boleh mencipta laluan yang betul ke sumber yang terdapat dalam WAR/WEB-INF folder, seperti "/war/WEB-INF/test/foo.txt"?

Jawapan:

Terdapat dua kaedah utama untuk membina laluan ke sumber dalam WAR/ Direktori WEB-INF menggunakan ServletContext:

1. Kaedah getRealPath():

Jika fail WAR telah dikembangkan menjadi satu set fail, anda boleh menggunakan kaedah getRealPath():

ServletContext context = getContext();
String fullPath = context.getRealPath("/WEB-INF/test/foo.txt");

Ini akan mengembalikan yang lengkap laluan sistem ke sumber.

2. Kaedah getResource() atau getResourceAsStream():

Kaedah ini boleh digunakan tanpa mengira sama ada fail WAR dikembangkan atau tidak:

ServletContext context = getContext();
URL resourceUrl = context.getResource("/WEB-INF/test/foo.txt"); // for URL
InputStream resourceContent = context.getResourceAsStream("/WEB-INF/test/foo.txt"); // for input stream

Nota Tambahan:

  • Kaedah getContext() yang disebut dalam kod sampel ialah khusus aplikasi. Dalam halaman JSP, ia tersedia sebagai "konteks," manakala dalam servlet, ia diperoleh daripada ServletConfig semasa pemulaan.
  • Kaedah getRealPath() mungkin tidak berfungsi jika Kontena Servlet tidak mengeluarkan fail WAR.
  • Kaedah getResource() dan getResourceAsStream() boleh dipercayai dan berfungsi dalam semua penggunaan senario.

Atas ialah kandungan terperinci Bagaimana untuk Mengakses Sumber dalam Direktori WAR/WEB-INF dengan ServletContext?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn