अनुरोध वस्तु आपके जेएसपी से उत्पन्न सर्वलेट विधि के लिए जावा तर्क के रूप में पारित की गई है। तर्क का नाम है ... इसके लिए प्रतीक्षा करें ... request
।
तो आप इसे अपने जेएसपी में एम्बेडेड एक स्क्रिप्टलेट में संदर्भित करने में सक्षम होना चाहिए; जैसे
<%
InetAddress addr = request.getRemoteAddr();
// blah blah blah
%>
यह बहस योग्य है कि आपको जेएसपी में इस तरह की चीज करनी चाहिए या नहीं। इसे आम तौर पर "सर्वोत्तम अभ्यास" के रूप में स्वीकार किया जाता है कि जेएसपी को केवल स्वरूपण आउटपुट के लिए उपयोग किया जाना चाहिए। वेबपैप का व्यावसायिक तर्क एक नियंत्रक सर्वलेट में होना चाहिए जो अंततः जेएसपी सर्वलेट को HTML (या जो कुछ भी) उत्पन्न करने के लिए आगे बढ़ता है।
यदि आप किसी व्यापारिक तर्क को जेएसपी में डाल रहे हैं, तो स्क्रिप्टलेट को बनाए रखना मुश्किल होता है ... यद्यपि यदि आप हैं तो आईपी पता प्रदर्शित करने जा रहे हैं, जो चिंता नहीं होनी चाहिए। (इंजीनियरिंग परिप्रेक्ष्य से पसंदीदा दृष्टिकोण टैग और जेएसपी अभिव्यक्ति भाषा का उपयोग करना है।)
अंत में, इस बात की कोई गारंटी नहीं है कि getRemoteAddr()
द्वारा आईपी पता वास्तविक क्लाइंट आईपी पता होगा। यह प्रॉक्सी का पता हो सकता है, या यहां तक कि एक पूर्ण निर्माण भी हो सकता है।
स्रोत
2012-08-24 11:21:19
आम तौर पर आपकी होस्टिंग कंपनी ऐसी सुविधाएं प्रदान करेगी – adarshr
आपकी पसंद का सर्वलेट कंटेनर सभी क्लाइंट एक्सेस लॉग करेगा। यदि आप प्रोग्राम को आईपी प्राप्त करना चाहते हैं, तो [ServletRequest.getRemoteAddr()] (http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getRemoteAddr%28%29) का उपयोग करें। –
अरे आपके द्वारा बताई गई एपीआई विधि दिलचस्प लगती है। मैंने वास्तव में इसे अपने सर्वलेट पर उपयोग किया जिसके लिए अनुरोध jsp पेज से भेजा जा रहा है। लेकिन फिर भी यह कोई मूल्य नहीं दिखा रहा है। क्या मुझे इस उद्देश्य के लिए request.get पैरामीटर विधि() का उपयोग करने की आवश्यकता है, लेकिन कैसे ??? – Prateek