2011-12-21 1 views
11

dispatcher.forward(リクエスト、レスポンス)の後、サーブレットにリクエストから、前のページのURLを取得する方法。しかし、この後、私は次のサーブレットコマンド(前のページに行く)でそれを使うためにリダイレクトされたページ(パス)を取得したい。どうすれば入手できますか? または以前のURLはリクエストパラメータに含まれていないため、自分で追加する必要がありますか? ご協力いただき、誠にありがとうございます。私は最終的には</p> <pre><code>dispatcher.forward(request, response); </code></pre> <p>の助けを借りて、私をリダイレクトするサーブレットを使用してい

答えて

-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

あなたが前方(..)を行うソースURLを返します任意の方法ので、私を解決策は、フィルタを定義することです。後でチェックするリクエスト属性内のrequestURL()を再実行します。あなたのweb.xmlの書き込みでこれを行うには:

... 
<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> 
... 

次にCustomFilterクラス:

request.getAttribute("OriginURL").toString(); 
関連する問題

 関連する問題