Servlet CDI 例子分析

@WebServlet("/cdiservlet")       //以@WebServlet注释开头,注释指定相对于上下文根的URL模式,即在根目录下使用/cdiservlet来访问
public class NewServlet extends HttpServlet {   //创建一个NewServlet类继承的是HttpServlet类
    private Message message;

    @Override
    public void init() { //该servlet重写该init方法
        message = new MessageB();   //对message初始化
    }

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) //该servlet重写该doGet方法,实现GET HTTP方法
                  throws IOException {   //抛出可能出现IO异常
        response.getWriter().write(message.get());  //捕获可能发生的异常
    }
}

使用CDI后的实例

实例和由CDI运行时自动注射

@WebServlet("/cdiservlet")  //以@WebServlet注释开头,注释指定相对于上下文根的URL模式,即在根目录下使用/cdiserlvlet来访问
public class NewServlet extends HttpServlet {
    @Inject private Message message;

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) //该servlet重写该doGet方法
                  throws IOException { //抛出可能出现IO异常
        response.getWriter().write(message.get());  //捕获可能发生的异常
    }
}

类,创建一个新的实例, 在运行时注入到servlet。 管理的生命周期 新实例,CDI运行时需要知道的范围 实例。 在这个例子中,servlet只需要实例 处理HTTP请求; 实例可以被垃圾收集。