2011-12-21 13 views
11

मैं सर्वलेट जो मुझे अंत मेंकैसे dispatcher.forward (अनुरोध, प्रतिक्रिया) के बाद सर्वलेट में अनुरोध से पिछले पृष्ठ URL प्राप्त करने

dispatcher.forward(request, response); 

की मदद से पुनर्निर्देश उपयोग कर रहा हूँ। लेकिन इसके बाद मैं पृष्ठ (पथ) प्राप्त करना चाहता हूं जिससे मुझे इसे अगले सर्वलेट कमांड (पिछले पृष्ठ पर जाने के लिए) में उपयोग करने के लिए रीडायरेक्ट किया गया था। मैं इसे कैसे प्राप्त कर सकता हूं? या पिछला यूआरएल अनुरोध पैरामीटर में निहित नहीं है और मुझे इसे स्वयं जोड़ना चाहिए? आपकी मदद के लिए बहुत आभारी होंगे।

उत्तर

-1

आप urlHttpSession में स्टोर कर सकते हैं और आवश्यकता होने पर इसे अगले सर्वलेट में पुनर्प्राप्त कर सकते हैं।

+0

और:

public class CustomFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException {} @Override public void destroy() {} @Override public void doFilter(ServletRequest req, ServletResponse rsp, FilterChain chain) throws IOException, ServletException { req.setAttribute("OriginURL", req.getRequestURL().toString()); chain.doFilter(req, rsp); } } 

तो फिर तुम इसे हर जगह अपने कोड में साथ ServletRequest वस्तु के साथ प्राप्त कर सकते हैं क्या यह एकमात्र तरीका है? – And

+0

जितना मुझे पता है कि यह एक अच्छा तरीका होना चाहिए। –

0

कोई भी तरीका स्रोत यूआरएल जब आप आगे (..) कर वापस आ जाएगी तो मेरे समाधान को फ़िल्टर को परिभाषित करना है बाद में जांच करने के लिए अनुरोध विशेषता में requestURL() पुनः करें। CustomFilter कक्षा में

... 
<filter> 
    <filter-name>MyFilter</filter-name> 
    <filter-class>my.package.CustomFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>MyFilter</filter-name> 
    <url-pattern>*</url-pattern> 
</filter-mapping> 
... 

तो: अपने web.xml लिखने में ऐसा करने के लिए

request.getAttribute("OriginURL").toString(); 
संबंधित मुद्दे