2017-04-03 9 views
0

通常、サーブレットからjspまたはマップされたURLに転送します。インターネットはそのような例でいっぱいです。しかし、リクエストを内部サーブレットに転送する必要があります。たとえば、サーブレットをURLにマッピングせずに、完全なクラス名を使用します。要求を別のサーブレットまたはフィルタから内部サーブレットに転送する方法別のサーブレットまたはフィルタからのサーブレットへの転送

+0

は、代わりにそれをマッピングするの@WebServlet注釈を使用することですデプロイメント記述子に記述します。 –

答えて

0

Shadabは、たとえば、私はあなたが@WebServlet注釈(とするRequestDispatcher)を使用すべきだと思う、コメントとして:

@WebServlet(urlPatterns = { "/sample" }) 
public class SampleServlet extends HttpServlet { 
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { 
    RequestDispatcher dispatch = req.getRequestDispatcher("/forwardpath"); 
    dispatch.forward(req, res); 
} 

SampleServlet - > ForwardedServlet

@WebServlet(urlPatterns = { "/forwardpath" }) 
public class ForwardedServlet extends HttpServlet { 
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { 
    ... 
} 
0

したいメソッドが返すRequestDispatcher getNamedDispatcher(String name);です指定されたサーブレットのラッパーとして機能するRequestDispatcherオブジェクト。

そしてServletConfig.getServletName()のjavadocは言う:

名は、サーバ管理を経由して提供されるWebアプリケーション・デプロイメント・ディスクリプタに割り当てられ、または未登録の(したがって、無名の)サーブレットインスタンスのために、それはサーブレットのだろうすることができますクラス名。

あなたがちょうどしなければならない:私はあなたが行うことができますurl.The最も簡単なものにマッピングすることなく、任意のサーブレットを使用することができます疑う

getServletContext().getNamedDispatcher("full.class.name.for.new.servlet"); 
関連する問題