温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

WelcomeFile实现分析是怎样的

发布时间:2021-11-15 16:12:28 来源:亿速云 阅读:149 作者:柒染 栏目:大数据

这期内容当中小编将会给大家带来有关WelcomeFile实现分析是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

在Web应用中,我们经常会发送类似如下格式的请求:

host:port/context/dir/

当然,上面到dir这一层的有时候会带,有时候则是直接请求根应用。这个时候,应用服务器就需要判断对应的请求以哪种形式 进行展现,例如对于一个目录的请求,这个时候,如果目录下包含特定的某个页面,那这个时候可能是要请求页面,也可能是 想进行目录的list操作。

这个时候,就需要用到Web应用中的 Welcome File

关于 Welcome File , Servlet规范中指明,它是在web描述文件中指定部分请求路径的一个有序的列表。主要用于 在请求指向一个directory entry,且没和任何的Web组件有关联的时候,进行append,从而决定具体请求的地址

 例如我们上面的请求形式,如果此时dir并没有对应到任何一个Servlet或Jsp上,此时有类似index.html这种welcomeFile的配置, 就会帮助请求进行定向。

如果上面的请求没有对应到的WelcomeFile,此时会根据应用服务器的配置,进行请求目录的列表(如果该操作是设为允许的话,可以查看之前关于List的文章Tomcat是如何响应静态资源的?),或者直接 返回404.

在应用中配置WelcomeFile也很简单,只需要在web.xml中直接指定即可,格式如下,来自规范中的描述:

WelcomeFile实现分析是怎样的

假设我们在应用中指定了如下形式的welcomeFile

<welcome-file-list>    <welcome-file>index.html</welcome-file>    <welcome-file>default.jsp</welcome-file></welcome-file-list>

如果应用目录结构包含如下dir /test/index.html /test/a.jsp /hello/x.jsp /hello/default.jsp

此时,我们请求到应用的test目录时,就会被指向index.html。请求hello会被指向default.jsp

再来看下,在Tomcat中对应WelcomeFile的实现方式。

我们在web.xml这个描述文件中配置的内容,都会在应用部署时进行解析,配置应用。welcome-file-list也不例外。 在应用内指定的会是第一优先级。应用中没有显式的指定,就会使用应用服务器默认提供的conf/web.xml中的配置。

web.xml中的配置,会被保存到一个Set中

WelcomeFile实现分析是怎样的

在部署的时候,添加到StandardContext中

WelcomeFile实现分析是怎样的

后续,在接收到请求的时候,就需要判断具体的请求路径和welcomeFile的配置。

我们前面的文章里写过几次请求,也写过虚拟主机

如何不配置应用名访问应用?

Facade模式与请求处理

Tomcat多虚拟主机配置及原理

这其中都提到了一个叫Mapper的组件。人如其名,它就是为我们做指引的。在请求过程中,基本是按照这样一个流程:

EndPoint -> Processor -> CoyoteAdapter -> Mapper -> Pipeline -> Valve ...

这里Mapper在我们前面的文章中写过,会根据已经注册的虚拟主机,应用进行请求判断。对于本次文章提到的welcome,则是在判断后的流程中处理

判断中按照不同的匹配规则从前到后进行:

  • Exact Match

  • Prefix Match

  • Extension Match

  • Welcome resources processing for servlets

    • Welcome resources processing for exact macth

    • Welcome resources processing for prefix match

    • Welcome resources processing for physical folder

  • Default servlet

以上我逻辑,基本都是根据请求的路径,进行不同的match,比较重要的一点是这里:

WelcomeFile实现分析是怎样的

如我们前面提到的,会在使用welcomeFile进行请求判断的时候,把它append到当前请求路径之后进行。

上述就是小编为大家分享的WelcomeFile实现分析是怎样的了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI