Servlet支持三种映射方式,以达到灵活配置的目的。
首先先创建Servlet(创建方式略),然后再web.xml中就行配置。
配置方式:
(1)、指名道姓的方式
注:此种方式,只有和映射配置一模一样时,Servlet才会接收和响应来自客户端的请求。
示例:
<servlet> <servlet-name>servletContextDemo</servlet-name> <servlet-class>com.itheima.Servlet.ServletContextDemo</servlet-class> </servlet> 映射: <servlet-mapping> <servlet-name>servletContextDemo</servlet-name> <url-pattern>/servletContextDemo</url-pattern> /*这个/servletContextDemo就是我们在浏览器中输入的地址*/ </servlet-mapping>
(2)、/开头+通配符的方式
注:此种方式,只要符合目录结构即可,不用考虑结尾是什么。
例如:映射为:/servlet/*
<servlet> <servlet-name>servletContextDemo</servlet-name> <servlet-class>com.itheima.Servlet.ServletContextDemo</servlet-class> </servlet> <servlet-mapping> <servlet-name>servletContextDemo</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping>
(3)、通配符+固定格式结尾
注:此种方式,只要符合固定结尾格式即可,其前面的访问URI无须关心(注意协议,主机和端口必须正确)
例如:映射为:*.do
文章来源地址https://www.toymoban.com/news/detail-459249.html
<servlet> <servlet-name>servletContextDemo</servlet-name> <servlet-class>com.itheima.Servlet.ServletContextDemo</servlet-class> </servlet> <servlet-mapping> <servlet-name>servletContextDemo</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
启动时创建Servlet
我们前面讲解了Servlet的生命周期,Servlet的创建默认情况下是请求第一次到达Servlet时创建的。但是我们都知道,Servlet是单例的,也就是说在应用中只有唯一的一个实例,所以在Tomcat启动加载应用的时候就创建也是一个很好的选择。那么两者有什么区别呢?
-
第一种:应用加载时创建Servlet,它的优势是在服务器启动时,就把需要的对象都创建完成了,从而在使用的时候减少了创建对象的时间,提高了首次执行的效率。它的弊端也同样明显,因为在应用加载时就创建了Servlet对象,因此,导致内存中充斥着大量用不上的Servlet对象,造成了内存的浪费。
-
第二种:请求第一次访问是创建Servlet,它的优势就是减少了对服务器内存的浪费,因为那些一直没有被访问过的Servlet对象都没有创建,因此也提高了服务器的启动时间。而它的弊端就是,如果有一些要在应用加载时就做的初始化操作,它都没法完成,从而要考虑其他技术实现。
在web.xml中是支持对Servlet的创建时机进行配置的,配置的方式如下:
<!--配置ServletDemo3-->
<servlet>
<servlet-name>servletDemo3</servlet-name>
<servlet-class>com.itheima.web.servlet.ServletDemo3</servlet-class>
<!--配置Servlet的创建顺序,当配置此标签时,Servlet就会改为应用加载时创建
配置项的取值只能是正整数(包括0),数值越小,表明创建的优先级越高
-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>servletDemo3</servlet-name>
<url-pattern>/servletDemo3</url-pattern>
</servlet-mapping>
默认Servlet
默认Servlet是由服务器提供的一个Servlet,它配置在Tomcat的conf目录下的web.xml中。如下图所示:
它的映射路径是<url-pattern>/<url-pattern>
,我们在发送请求时,首先会在我们应用中的web.xml中查找映射配置,找到就执行,这块没有问题。但是当找不到对应的Servlet路径时,就去找默认的Servlet,由默认Servlet处理。所以,一切都是Servlet。
Servlet关系视图
文章来源:https://www.toymoban.com/news/detail-459249.html
到了这里,关于Servlet的三种映射方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!