নিম্নলিখিত চেষ্টা করুন:
javax.servlet আমদানি করুন।*; আমদানি javax.servlet.http.*; java.io.* আমদানি করুন; পাবলিক ক্লাস MessageServlet HttpServlet প্রসারিত করে { public void doGet(HttpServletRequest req, HttpServletResponse res) IOException, ServletException {// আউটপুট একটি HTML পৃষ্ঠা res.setContentType("text/html"); // একটি কনফিগারেশন প্যারামিটার লোড করুন (আপনাকে এটি নিজেই সেট করতে হবে) স্ট্রিং রুট = getInitParameter("root"); // কিছু html ServletOutputStream out = res.getOutputStream(); আউট println(" "); out.println(" দিবসের বার্তা "); out.println(" আজকের বার্তা: "); // ফাইলটি InputStream = null এ মুদ্রণ করুন; চেষ্টা করুন { in = new BufferedInputStream (new FileInputStream(root + "/message.txt")); int ch; যখন ((ch = in.read()) != -1) { out.print((char)ch); } } অবশেষে { if (in != null) in.close(); // very important } // finish up out.println(" "); } }
[দ্রষ্টব্য: আমি এখন সফলভাবে উপরের উদাহরণটি কম্পাইল এবং রান করেছি। আপনি একটি কাজের উত্স চেয়েছিলেন, আপনি এটি পেয়েছেন :-)]
আপনি কেবল ফাইলটি অনুলিপি করার চেয়ে আরও বেশি কিছু করতে চাইতে পারেন; দেখুন java.io ক্লাসগুলির জন্য প্যাকেজ যা আপনাকে একটি ফাইল প্রক্রিয়া করতে সাহায্য করে, যেমন স্ট্রিমটোকেনাইজার.
ফাইল সিস্টেমে একটি রুট প্রদানের জন্য একটি InitParameter ব্যবহারের দিকে মনোযোগ দিন। এইভাবে আপনার servlet একটি ফাইল পাথ হার্ডকোডিং ছাড়াই অন্যান্য সার্ভারে ব্যবহার করা যেতে পারে।
এছাড়াও, a এর ব্যবহার নোট করুন পরিশেষে ফাইল বন্ধ করতে ব্লক করুন। এইভাবে, রিডিং একটি ব্যতিক্রম নিক্ষেপ করলেও, ফাইলটি বন্ধ হয়ে যাবে। এটি একটি সার্ভারে গুরুত্বপূর্ণ, যেহেতু ফাইল বর্ণনাকারী সীমিত, এবং আপনি কোন ফাঁস চান না, যেহেতু সার্ভারটি খুব দীর্ঘ সময়ের জন্য থাকবে (আশা করি!)
যখনই আপনি স্থানীয় সংস্থানগুলি অ্যাক্সেস করেন, তখন আপনাকে নিরাপত্তা গর্ত বিবেচনা করতে হবে। উদাহরণস্বরূপ, যদি আপনি একটি FORM প্যারামিটারের উপর ভিত্তি করে একটি ফাইলের নাম তৈরি করেন, তাহলে আপনার এটিকে যাচাই করা উচিত, নিশ্চিত করতে যদি কোনো হ্যাকার তার ব্যবহারকারীর নাম হিসাবে "/etc/passwd" পাঠায়, তাহলে সে আসলে সিস্টেমটি পাবে না পাসওয়ার্ড ফাইল।







