b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

filterconfig struts2执行流程(9)

电脑杂谈  发布时间:2018-02-15 05:13:20  来源:网络整理

在getMaping方法中,获得当前请求中的uri以及配置文件中配置的action的name和namespace,看一下这个parseNameAndNamespace方法的实现细节:

protected void parseNameAndNamespace(String uri, ActionMapping mapping, ConfigurationManager configManager) {
    String namespace, name;
    int lastSlash = uri.lastIndexOf("/");
    ...
    // 将解析出来的name和namespace放入mapping
    mapping.setNamespace(namespace);
    mapping.setName(cleanupActionName(name));
}

action中的参数_filterconfig_javaweb include

从倒数两行代码可以看出了该方法的最终目的:将解析出来的name和namespace放入mapping,交给调用者来根据这个actionMapping判断请求是否有对应的业务控制类

说明并没有为这个请求配置相应的业务控制类Action,就说明这个请求可能是一个静态的资源请求,于是就有了如下代码:

if (mapping == null) {
   boolean handled = execute.executeStaticResourceRequest(request, response);
   // 这里会根据上一步的返回值来确定是否执行
    if (!handled) {
        chain.doFilter(request, response);
    }
}

查看executeStaticResourceRequest方法的具体实现:

public boolean executeStaticResourceRequest(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
    // there is no action in this request, should we look for a static resource?
    // 老外还挺逗:这个请求没有对应的action来处理,我们应不应该看看它是不是请求一个静态资源?
    String resourcePath = RequestUtils.getServletPath(request);

    if ("".equals(resourcePath) && null != request.getPathInfo()) {
        resourcePath = request.getPathInfo();
    }

    StaticContentLoader staticResourceLoader = dispatcher.getContainer().getInstance(StaticContentLoader.class);
    // 如果这个请求请求的资源在这个项目的资源路径下,返回true
    if (staticResourceLoader.canHandle(resourcePath)) {
        staticResourceLoader.findStaticResource(resourcePath, request, response);
        // The framework did its job here
        // 属于struts2管辖范围的静态资源,由struts2来处理
        return true;

    } else {
        // this is a normal request, let it pass through
        // 一个普通的请求,放行
        return false;
    }
}


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-78438-9.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...