servlet dispatcher .forward(request, response); 进入其它servlet原

Posted 万物生长

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了servlet dispatcher .forward(request, response); 进入其它servlet原相关的知识,希望对你有一定的参考价值。

dispatcher .forward(request, response); 进入其它servlet

假如我们的web.xml配置如下

<servlet>
        <servlet-name>index</servlet-name>
        <servlet-class>king.server.IndexServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>index</servlet-name>
        <url-pattern>/indexhtml</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>allServlet</servlet-name>
        <servlet-class>king.server.HttpRequestServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>allServlet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

IndexServlet代码如下

public class IndexServlet  extends HttpServlet{
    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) {
        try {
            TraceTool.traceParent();
            RequestDispatcher dispatcher = request.getRequestDispatcher("/index.html");
            dispatcher .forward(request, response);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

此时执行完IndexServlet的dispatcher .forward(request, response);后相当于去请求了contextPath/index.html,

于是被<url-pattern>/*</url-pattern>的allServlet拦截下来.又进到了allServlet的get(xxx)方法中去了.

以上是关于servlet dispatcher .forward(request, response); 进入其它servlet原的主要内容,如果未能解决你的问题,请参考以下文章

Filter多方式拦截禁用IE图片缓存Filter设置字符编码

如何设置 web.xml 和 dispatcher-servlet.xml 进行映射?

javax.servlet.ServletException:无法在名称为“NA-dispatcher”的 servlet 中解析名称为“login”的视图

Servlet Dispatcher 抛出异常

applicationContext.xml和dispatcher-servlet.xml的区别

Spring MVC 无法正确配置 Dispatcher Servlet