1 web.xml 配置文件中,需要为每个servlet文件配置相应的信息。
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>myservlet1</servlet-name> //servlet 的注册名称
<servlet-class>com.grl.servlet.myservlet1</servlet-class> // servlet类的全路径,包括包名+类名
</servlet>
<servlet> 主要将servlet文件注册。
<servlet-mapping>
<servlet-name>myservlet1</servlet-name> // 注册的servlet的名称
<url-pattern>/myservlet1</url-pattern> // 注册的servlet映射,对外访问的URL访问路径,配置的是web应用的名称
</servlet-mapping>
<servlet> 和 <servlet-mapping> 不是一一对应的关系,一个<servlet> 可以对应多个 <servlet-mapping> ,而且 <url-pattern>/myservlet1/ABC</url-pattern>配置的内容是可以多层嵌套的。
2 对servlet进行映射的时候,可以使用通配符,通配符有两种
(1)以*.扩展名形式
(2)以/开头,同时以/* 结尾
3 匹配的原则
(1) 谁的匹配度高谁就被匹配,也就是谁长的最像谁就被匹配。
(2)在同时匹配的时候,*.扩展名的优先级最低。
下面是一个 面试题:
4 servlet 单例模式
servlet在第一次访问被加入到内存中,以后访问也不会再加载,还是同一个servlet,因为是单例模式,就会出现线程安全问题。有需要共享的变量需要加锁,用synchronized来加锁。
5 <load-on-startup>1<load-on-startup> 其中配置的数据代表初始化的优先级