मैं सर्वलेट से टेक्स्ट फ़ाइल को कैसे पढ़ूं और आउटपुट करूं?

0
10312

निम्न प्रयास करें:

आयात javax.servlet.*; आयात javax.servlet.http.*; आयात java.io.*; पब्लिक क्लास MessageServlet HttpServlet का विस्तार करता है { public void doGet(HttpServletRequest req, HttpServletResponse res) IOException, ServletException को फेंकता है {// एक HTML पेज res.setContentType("text/html"); को आउटपुट करता है; // एक कॉन्फ़िगरेशन पैरामीटर लोड करें (आपको इसे स्वयं सेट करना होगा) स्ट्रिंग रूट = getInitParameter ("रूट"); // कुछ html सर्वलेटआउटपुटस्ट्रीम प्रिंट करें = res.getOutputStream(); बाहर। println(" "); आउट.प्रिंट्लन(" आज का संदेश "); आउट.प्रिंट्लन(" आज का संदेश: "); // फ़ाइल इनपुटस्ट्रीम को = शून्य में प्रिंट करें; प्रयास करें { in = new BufferedInputStream (new FileInputStream(root + "/message.txt") ); int ch; while ((ch = in.read()) != -1) { आउट.प्रिंट((चार)सीएच); } } अंततः { यदि (इन != शून्य) इन.क्लोज(); // बहुत महत्वपूर्ण } // समाप्त करें आउट.प्रिंटएलएन(" "); } }
[नोट: मैंने अब उपरोक्त उदाहरण को सफलतापूर्वक संकलित और चला लिया है। आपने एक कार्यशील स्रोत मांगा, आपको वह मिल गया :-)]

हो सकता है कि आप फ़ाइल की प्रतिलिपि बनाने के अलावा और भी कुछ करना चाहें; में देखो java.io उन कक्षाओं के लिए पैकेज जो आपको किसी फ़ाइल को संसाधित करने में मदद करते हैं, जैसे स्ट्रीमटोकनाइज़र.

फ़ाइल सिस्टम पर रूट प्रदान करने के लिए InitParameter के उपयोग पर ध्यान दें। इस तरह आपके सर्वलेट का उपयोग फ़ाइल पथ को हार्डकोड किए बिना अन्य सर्वर पर किया जा सकता है।

इसके अलावा, ए के उपयोग पर भी ध्यान दें आखिरकार फ़ाइल को बंद करने के लिए ब्लॉक करें। इस तरह, भले ही रीडिंग एक अपवाद फेंकती है, फ़ाइल बंद हो जाएगी। यह सर्वर पर महत्वपूर्ण है, क्योंकि फ़ाइल डिस्क्रिप्टर सीमित हैं, और आप कोई लीक नहीं चाहते हैं, क्योंकि सर्वर बहुत लंबे समय तक चालू रहेगा (उम्मीद है!)।

जब भी आप स्थानीय संसाधनों तक पहुँचते हैं, तो आपको सुरक्षा खामियों पर विचार करना होगा। उदाहरण के लिए, यदि आप FORM पैरामीटर के आधार पर फ़ाइल नाम बनाते हैं, तो आपको इसे मान्य करना चाहिए, यह सुनिश्चित करने के लिए कि यदि कोई हैकर अपने उपयोगकर्ता नाम के रूप में, उदाहरण के लिए, "/etc/passwd" भेजता है, तो उसे वास्तव में सिस्टम नहीं मिलेगा पासवर्ड फ़ाइल.