一:web应用的映射问题
通常我们从别人那里拷贝来的代码,自己会修改应用的名称,但是web映射的访问路径并没有修改,还是原来的映射。
解决方法:
工程右键——properties——myeclipse——web,修改webroot即可
二:web.xml配置文件
web.xml中的配置文件信息如下:
三:同一个servlet类可以映射到多个url地址上
1: *.do 所有以.do为后缀的请求,都匹配到对应的servlet类上去。
2:/* 匹配所有的请求
注意:请求地址匹配url-pattern时,有一定的优先级,谁想就匹配谁,从前往后匹配。
四:servelt容器以及生命周期
servlet生命周期
a:如果在web.xml中servlet配置loadon-start-up,那么服务启动时,就会创建servlet对象;如果不配置,就会在
第一次请求时创建,servlet对象一旦创建就会驻存在内存中,等待客户端发送请求。
servlet对象一旦创建就会调用init方法进行初始化。
b:如果客户端(浏览器)发送请求,那么servlet对象就会调用service()方法,并且会创建两个对象,一个是封装请求数据
的httpServletRequest对象,一个是封装响应数据的HttpServletResponse对象,并且把这两个对象作为参数传递给
service方法,service方法根据请求方式调用doget或者dopost方法。
c:服务器关闭或者web应用卸载时,servlet对象就会被销毁,那么会调用destroy方法。
五:缺省servlet
1:当我们访问服务器上的静态html页面时,实际*问的是缺省servlet。
2:如果某个url路径不存在,都是交由缺省servlet处理。
配置在tomcat下conf/web.xml中:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet> <servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>