1 @WebServlet("/cdiservlet") //url映射 2 public class NewServlet extends HttpServlet { 3 private Message message; 4 5 @Override //重写doGet方法 6 public void init() { 7 message = new MessageB(); //对message初始化 8 } 9 10 @Override11 public void doGet(HttpServletRequest request, HttpServletResponse response)12 throws IOException { //抛出可能出现IO异常13 response.getWriter().write(message.get()); //捕获可能发生的异常14 }15 }16 17 public interface Message { //servlet实现Message接口的一个对象实例18 public String get();19 }20 public class MessageB implements Message { //servlet创建以下对象的实例21 public MessageB() { }22 23 @Override24 public String get() {25 return "message B";26 }27 }28 @WebServlet("/cdiservlet") //使用CDI,servlet声明它对Message实例的依赖性,并让它由CDI运行时自动注入29 public class NewServlet extends HttpServlet {30 @Inject private Message message;31 32 @Override33 public void doGet(HttpServletRequest request, HttpServletResponse response)34 throws IOException { //抛出可能出现IO异常35 response.getWriter().write(message.get()); //捕获可能发生的异常36 }37 }