JSP・サーブレットの開発で、リクエストURL(getRequestURL() )の値を、Filter側もしくはServlet側で変更したいのですが、上手いこといきません。
「JavaTM Servlet 2.4 API 仕様」を参照すると、
インタフェース HttpServletRequest
java.lang.StringBuffer getRequestURL()
・・・
このメソッドは文字列ではなく StringBuffer を返すので、例えばクエリパラメータを加えるなど、URL を簡単に変更することができます。
となっています。上記をソースにすると、下記のようになります。
■フィルターA
Java
1 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 2 throws IOException, ServletException { 3 4 HttpServletRequest hreq = (HttpServletRequest) request; 5 HttpServletResponse hres = (HttpServletResponse) response; 6 7 StringBuffer stb = new StringBuffer(); 8 stb.append("aaaaaaaaaa=bbbbbbbbbbbb"); 9 hreq.getRequestURL().append(stb.toString()); 10 11 chain.doFilter(hreq, hres); 12 return; 13 14} 15
上記リクエストをサーブレットで受け取ると、クエリパラメータ「aaaaaaaaaa」が取得できるはずですが、「getParameter("aaaaaaaaaa")」を指定してもnullが返るばかりです。
何か実装の不備があるのでしょうか??
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。