servlet中的一些小细节

来源:互联网 发布:mac 删除文件找回 编辑:程序博客网 时间:2024/05/16 15:16

Servlet的一些细节:

1、从建好的web应用复制一份,然后改名再发布到服务器的话,配置就会和原来的一样,因此它的web应用名称和原来的也是一样,这时候就需要右击该工程,进入Properties后找到myeclipse下面的web,将web配置中的web context-root改成你想要的对外发布路径。

2、一个servlet程序可以被映射到多个url上,即同一个<servlet-name>可以对应多个<servlet-mapping>。

3、<url-pattern><url-pattert>中两种通配符写法如下:   

    1<url-pattern>/*</url-pattern>,此时这个servlet程序映射的虚拟地址可以对应任何地址,即用户在地址栏输入到这个应用的名称时,后面无论接什么地址,都对应这个servlet。

    2<url-pattern>*.扩展名<url-pattern>,此时这个servlet程序映射的虚拟地址可以对应任何 扩展名与*.扩展名中扩展名 相同的地址,即用户在地址栏输入到这个应用的名称,后面接的地址只要扩展名和*.扩展名中扩展名相同,都对应这个servlet。

 

4、服务器会自动监测web.xml文件的改动,一旦改动,服务器会自动加载。

5、在web.xml中配置了<servlet><load-on-startup>正整数</load-on-startup></servlet>这样的标签,servlet对象会在服务器启动的时候创建servlet对象。  如果有多个这样的属性,创建对象的优先级就会根据标签中的正整数来确定,正整数越小,优先级越高,先创建。

6、某个servletweb.xml配置文件中映射路径为一个(/),那么这个servlet成为当前web应用的缺省servlet。凡是在web.xml中找不到匹配的<servlet-mapping>url,它们的访问都交给缺省servlet处理,也就是说缺省的servlet用于处理所有其他servlet都不处理的访问请求。(服务器有个默认的缺省servlet来处理你请求的html静态页面或图片)

7servlet中的共享资源可能会导致线程安全问题。解决方式,

实现一个标记接口SingleThreadModel(不是标准的解决方案不建议使用),一个线程没有完成,同时另一个线程来了,服务器会创建多个servlet对象进行处理。

传统的方式synchronized同步代码块 单线程解决(标准解决方案)。

8、servlet中代码抛出异常:java中,子类覆盖父类方法,不能抛出比父类更多的异常。

0 0