Web.xml中Servlet中的配置
->Servlet配置
Servlet
servlet-name:名称
servlet-class:类名称
init-param:初始化参数节
param-name:参数名称
param-value:参数值
load-on-straup:是否在启动时加载,为1时自动加载,为0时有请求时才加载
实际中如果使用了框架,例如Structs,JSF,Spring都使用此方式预加载。
Servlet-mapping配置
servlet-mapping
servlet-name
url-pattern:地址格式,可以使用通配符。
同一个Servlet可以配置多个url-pattern
后缀名称在这里的意义并不是很大,因为可以直接在这里定义不同的后缀名称。
Context Param
这个参数是所有的Servlet都能够读取的参数。配置规则如下
context-param
param-name
param-value
可以有多个同样的配置节配置不同的参数,Servlet中通过使用getServletConfig().getServletContext()方法获取servletContext对象,然后使用其getInitParameter()获取所有的context-param参数名称和参数值列表
另一个可选的方式是把参数配置写到properties文件里面。
资源注入@Resource
Annotation是Java5.0引入的新特特特性,以@符号作为标记。
例如
@Resource(name=“messageFormXml”)
private String message;
代表在运行时,只要在web.xml中配置一个messageFormXml的参数就可以了。
也可以写成下面的形式
private @Resource(name=“messageFormXml”) String message;
资源注释添加后,需要在web.xml中添加对应的节点后,才能够被读取到。
Servlet生命周期
所有用户共用同一个Servlet实例
init方法和destroy方法只会调用一次,service在每次请求时都会被执行。
可以考虑把一些配置型的事务放到init中进行,这样,可以减少执行的次数。
Servlet线程安全
Servlet不是线程安全的,所以公共私有变量有可能会存在线程同步的问题,在Servlet中定义属性的话,如果存在写入的可能,则会导致线程数据同步问题