myeclipse开发servlet_动力节点Java学院整理

  

在web . xml中可以对同一个Servlet配置多个对外访问路径,并如果在web . xml中配置的信息服务器会自动加载部署,而如果是在Servlet中进行程序代码的修改,则每次都要重新部署。

  

首先,在使用MyEclipse创建Servlet后,会根据所创建的Servlet进行到web . xml文件的映射,如下图所示:

  

 myeclipse开发servlet_动力节点Java学院整理

  

经过这个映射之后,在web . xml文件中就自动生成了这个Servlet的配置信息:

  

 myeclipse开发servlet_动力节点Java学院整理

  

当然,我们可以在web . xml文件中把这个Servlet继续添加一条对外访问路径,使得这个Servlet可以从不同路径进行访问,,为这个Servlet添加一个新的对外访问路径好了:

  

 myeclipse开发servlet_动力节点Java学院整理

  

红框部分是新添加的,这时候服务器在控制台窗口会自动提示已经重新部署,是的,只要在web . xml中修改的都无需关闭服务器就可以被服务器重新更新加载部署:

  

 myeclipse开发servlet_动力节点Java学院整理

  

那么我们试试新的访问地址:

  

 myeclipse开发servlet_动力节点Java学院整理

  

可以访问! !

  

  

细节二:在web . xml中为Servlet配置对外访问路径的& lt; url-pattern>可以使用“*”作为通配符,但是这种只能有两种格式:

  

一种格式是,如& lt; url-pattern> * .html而如果写成这样& lt; url-pattern> abc/* .html就是错误的,尤其是& lt; url-pattern>/* .html也是错误的,不能有“/?一定要注意。例:

  

 myeclipse开发servlet_动力节点Java学院整理

  

在浏览器可以在通配符位置随便输入:

  

 myeclipse开发servlet_动力节点Java学院整理

  

这样造成了一种伪静态的现象,我们以为是访问一个静态的页面,其实却是一个动态网络资源。

  

另一种格式是以正斜线“/笨耐?加自定义路径,以“/*”结尾,如& lt; url-pattern>/abc/* & lt; url-pattern>。这时候连扩展名都任意了。例:

  

 myeclipse开发servlet_动力节点Java学院整理

  

在浏览器的地址栏内可以在通配符位置随便输入,扩展名都不需要:

  

 myeclipse开发servlet_动力节点Java学院整理

  

 myeclipse开发servlet_动力节点Java学院整理

  

  

细节三:由细节二导出的多个Servlet资源的映射路径如果使用了通配符,就可能发生冲突,那么这时候服务器将会以哪个Servlet资源作为响应呢?我们看一下下面的问题,就能明白了:

  

 myeclipse开发servlet_动力节点Java学院整理

  

细节四:在Servlet的整个生命周期内,Servlet的init()方法只会被调用一次。而对于Servlet的每次访问请求,Servlet都会调用服务()方法一次。并对于每次的请求访问,Servlet都会创建一个新的HttpServletRequest请求对象和新的HttpServletResponse响应对象。当然在每次请求访问完成之后,这些请求对象和响应对象会立马被销毁,等待下次请求再重新创建,这样就能给服务器减小压力(非并发情况下)。

  

细节五:之前谈到的Servlet在服务器部署后,都是只在第一次对该Servlet访问时才由服务器创建Servlet的实例对象,而如果在web . xml中在某个& lt; servlet>标签下配置& lt; load-on-startup>标签,则该Servlet会在服务器启动后就创建实例对象,并执行Servlet的初始化init()方法。你们;load-on-startup>的内容为一个。该值越小,代表在服务器启动后优先创建Servlet对象并执行初始化方法。

  

细节六:如果某个Servlet的映射路径仅仅为一个正斜线“/?那么这个Servlet就称为当前网络应用的默认Servlet。凡是在web . xml文件中找不到匹配的& lt; servlet-mapping>标签的URL,它们的访问请求都是交个默认Servlet来处理,也就是说默认Servlet用于处理所有其他Servlet都不处理的访问请求。

myeclipse开发servlet_动力节点Java学院整理