通过前面两篇博文我们大致了解了什么是Servlet以及servlet的常用方法和生命周期,接下来这篇博文将介绍servlet的配置信息。
1.基本配置
web.xml
<servlet>
<servlet-name>QuickStartServlet</servlet-name>
<servlet-class>servlet.QuickStartServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>QuickStartServlet</servlet-name>
<url-pattern>/testServlet</url-pattern>
</servlet-mapping>
首先我们得明白上面这两个配置参数的意思:
①当我们在浏览器输入URL:http://localhost:8080/WEB/testServlet,服务器会到配置文件中查找与URL相匹配的<url-pattern>(找不到匹配的时候会报404错误,即找不到资源);
②找到相应的<url-pattern>之后,根据<servlet-name>中配置的名字去查找相应的<servlet-class>(找不到匹配的时候会报500错误,即服务器内部错误,通常是工程代码或环境错误);
③找到相应的<servlet-class>之后,会根据<servlet-class>中配置的全类名去查找相应的servlet类,从而进行一系列处理。
明白了上面两个基本参数的意思之后,接下来是<url-pattern>的配置方式
1)完全匹配,访问的资源与配置的资源完全相同时才可以访问
例:<url-pattern>/testServlet</url-pattern>
URL:http://localhost:8080/WEB/testServlet
2)目录匹配,只要URL路径前面的目录与配置的目录相同就可以访问,与目录后面的内容无关
格式:<url-pattern>/虚拟路径/*</url-pattern>
例:<url-pattern>/aaa/bbb/ccc/*</url-pattern>
URL:http://localhost:8080/WEB/aaa/bbb/ccc/fsfddfdf.html
3)扩展名匹配,只要扩展名相同就可以访问资源
格式:<url-pattern>*.扩展名</url-pattern>
例:<url-pattern>*.aaa</url-pattern>
URL:http://localhost:8080/WEB/.aaa
※:第二种与第三中不能混用,/aaa/bbb/*.abcd(错误的)
2.服务器启动实例化Servlet配置
通过上一篇博文我们知道Servlet对象的创建时间默认为第一次访问服务器时,那么什么时候不是默认呢?
我们可以通过<load-on-startup>3</load-on-startup>来配置服务器启动时就创建servlet对象。其设定值为1,2,3,4,5中任意数字,数值越小优先级越高。
3.缺省的servlet
将<url-pattern>配置为/,即<url-pattern>/</url-pattern>表示这是一个缺省的servlet。其含义为:当URL与配置的所有<url-pattern>都不匹配时将由缺省的<url-pattern>中所配置的servlet进行处理。
4.默认页面
当URL中没有指明要获取的资源路径时,如:http://localhost:8080/WEB/,这种情况将返回默认页面。
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
可以在<welcome-file-list>中配置想要返回的默认页面。可以是html、htm、jsp。