Servlet
什么是servlet
- servlet是运行在服务端的Java小程序,是sun公司提供的一套规范(接口),用来处理客户端请求、响应给浏览器的动态资源
- servlet是javaweb三大组件之一(Servlet、Filter、Listener),且最重要
Servlet作用
- 获取请求数据
- 处理请求
- 完成响应
servlet配置
在web.xml中添加,会覆盖掉tomcat中web.xml的配置(tomcat中的web.xml是全局配置,对tomcat的webapps下的所有工程都有效,但如果工程中的web.xml配置了,则不会采用tomcat的web.xml,只会采用就近原则)
<display-name>项目名称</display-name>
<!--servlet的类配置 -->
<servlet>
<servlet-name>abc</servlet-name>
<servlet-class>com.itheima.servlet.QuickStartServlet</servlet-class>
<!--初始化参数,通过name来获得value -->
<init-param>
<param-name>url</param-name>
<param-value>jdbc:mysql:///mydb</param-value>
</init-param>
</servlet>
<!--servlet的虚拟路径配置 -->
<servlet-mapping>
<servlet-name>abc</servlet-name>
<url-pattern>/quickStartServlet</url-pattern>
</servlet-mapping>
url-pattern的配置方式
1)完全匹配 访问的资源与配置的资源完全相同才能访问到
localhost:8080/WEB13/quickStratServlet
2)目录匹配 格式:/虚拟的目录…/* 星代表任意
localhost:8080/WEB13/aaa/bbb/ccc
localhost:8080/WEB13/aaa/bbb/ccc/111
localhost:8080/WEB13/aaa/bbb/ccc/22.html
3)扩展名匹配 格式:* .扩展名
< url-pattern >/aaa/bbb/ccc/.abcd
**注意:第二种与第三种不要混用 /aaa/bbb/.abcd(错误的)**
缺省Servlet
<url-pattern>/</url-pattern>
当你访问资源地址所有的servlet都不匹配时 , 缺省的servlet负责处理
例如:当访问localhost:8080/WEB13/a.html
- a.html与url的值不匹配,会去找abc对应的类来处理
<servlet-name>abc</servlet-name>
<url-pattern>/</url-pattern>
- a.html与url的值不匹配,会去找tomcat中web.xml中< url-pattern>/< /url-pattern>对应的类来处理
<servlet-name>abc</servlet-name>
<url-pattern>/quickServlet</url-pattern>
servlet执行流程详解
欢迎页面
在web.xml中添加,会覆盖掉tomcat中web.xml的配置
<!--WEB13工程中web.xml的配置 -->
<welcome-file-list>
<welcome-file>1.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>
<!--tomcat中web.xml的配置 -->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
- 如果发布工程到tomcat中,访问localhost:8080/WEB13,显示的页面会在< welcome-file-list >列表中从上到下找,第一个先找1.html,找到就停止,找不到继续找下一个。若是没有配置这个,则默认使用tomcat中web.xml的配置
- 如果1.html放在jsp文件夹下,访问localhost:8080/WEB13会报404错误的,访问localhost:8080/WEB13/jsp时会去寻找1.html,才会显示