javaweb学习总结二十二(servlet开发中常见的问题汇总)

时间:2020-12-17 11:49:17

一:web应用的映射问题

通常我们从别人那里拷贝来的代码,自己会修改应用的名称,但是web映射的访问路径并没有修改,还是原来的映射。

解决方法:

工程右键——properties——myeclipse——web,修改webroot即可

javaweb学习总结二十二(servlet开发中常见的问题汇总)

二:web.xml配置文件

web.xml中的配置文件信息如下:

javaweb学习总结二十二(servlet开发中常见的问题汇总)

三:同一个servlet类可以映射到多个url地址上

javaweb学习总结二十二(servlet开发中常见的问题汇总)

1: *.do  所有以.do为后缀的请求,都匹配到对应的servlet类上去。

2:/*    匹配所有的请求

注意:请求地址匹配url-pattern时,有一定的优先级,谁想就匹配谁,从前往后匹配。

四:servelt容器以及生命周期

javaweb学习总结二十二(servlet开发中常见的问题汇总)

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

javaweb学习总结二十二(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>