आप मानक API का उपयोग नहीं कर सकते हैं। HttpServletRequest
सर्वर द्वारा प्राप्त अनुरोध का प्रतिनिधित्व करता है, और इसलिए नए पैरामीटर जोड़ना वैध विकल्प नहीं है (जहां तक एपीआई का संबंध है)।
आप सिद्धांत रूप से HttpServletRequestWrapper
के उप-वर्ग को कार्यान्वित कर सकते हैं जो मूल अनुरोध को लपेटता है, और getParameter()
विधियों को रोकता है, और जब आप आगे बढ़ते हैं तो लिपटे अनुरोध को पास करते हैं।
आप यह तरीका अपनाते हैं, तो आप एक Filter
का उपयोग करना चाहिए अपने HttpServletRequest
एक HttpServletRequestWrapper
साथ बदलने के लिए:
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
if (servletRequest instanceof HttpServletRequest) {
HttpServletRequest request = (HttpServletRequest) servletRequest;
// Check wether the current request needs to be able to support the body to be read multiple times
if (MULTI_READ_HTTP_METHODS.contains(request.getMethod())) {
// Override current HttpServletRequest with custom implementation
filterChain.doFilter(new HttpServletRequestWrapper(request), servletResponse);
return;
}
}
filterChain.doFilter(servletRequest, servletResponse);
}
मुझे लगता है कि आप [यहां] से कार्यान्वयन हो गया (http://stackoverflow.com/questions/1046721/accessing-the- कच्चे शरीर की एक डाल या बाद के अनुरोध)। MULTI_READ_HTTP_METHODS थोड़ा उलझन में था, और अब मैं समझता हूं कि यह किस उद्देश्य से कार्य करता है, मैं पूछता हूं कि अगर आप पूरी तरह से इसे हटा दें। – Neil