在SSI框架中需要用到一个servlet,servlet需要从spring 容器中读取几个bean。于是,我给servlet写了这么一个init方法:
public void init(){
wac = WebApplicationContextUtils
    .getRequiredWebApplicationContext(getServletContext());
req = (RequestData) wac.getBean("ReqData");
……
}
 
结果发现,这个servlet中每一次操作,都是针对同一个req数据进行的,而丝毫不管页面请求中包含了怎样的数据。
很郁闷,但是这个问题出得很蠢。
init方法只在一个servlet第一次被初始化时才调用一次,并且只调用这一次,而不是在每一个请求到来时都调用一次。因此,只有第一次请求这 个servlet服务的时候,页面的req信息被spring注入了;此后每一次请求,这个servlet都没有再跟spring打任何交道,当然也不会 读到正确的数据了。
郁闷,为这事儿加了一周末的班。