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

时间:2022-04-17 12:31:10

一: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中:

 1 <servlet>
 2         <servlet-name>default</servlet-name>
 3         <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
 4         <init-param>
 5             <param-name>debug</param-name>
 6             <param-value>0</param-value>
 7         </init-param>
 8         <init-param>
 9             <param-name>listings</param-name>
10             <param-value>false</param-value>
11         </init-param>
12         <load-on-startup>1</load-on-startup>
13     </servlet>
14     
15 <servlet-mapping>
16         <servlet-name>default</servlet-name>
17         <url-pattern>/</url-pattern>
18     </servlet-mapping>