Servlet运行机制
Servlet 需要继承抽象父类 HttpServlet ,这个类是一个模板设计模式的类, 其中 service 方法是一个模板方法. 当接收到请求之后容器会自动调用父类的 service()方法.当用户发送请求的时候容器调用对应的 servlet 的 service() 这个模板方法,在该方法中判断用户请求的是什么类型,
根据类型来确定对应的方法 (doXXX()方法). 如果重写service() 模板方法, service()模板方法中的钩子方法将不被调用Demo: 调用service() 模板方法中的 doGet 和 doPost 方法
当容器接收到请求之后 调用的是父类的 service 方法-->在该方法中判断请求的类型-->根据类型调用doGet 和 doPost 方法1 @SuppressWarnings("serial") 2 public class EmpServlet extends HttpServlet { 3 //取得业务层实现类对象 4 private IEmpService empservice = (IEmpService)ServiceFactory.geiInstance(EmpServiceImpl.class); 5 //根据编号查询数据 6 @Override 7 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 8 String id = req.getParameter("id"); 9 try {10 System.out.println(empservice.findEmpById(Integer.parseInt(id)));11 } catch (Exception e) {12 e.printStackTrace();13 }14 }15 //取得客户端提交的数据16 @Override17 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {18 req.setCharacterEncoding("utf-8");19 String name = req.getParameter("username");20 String pwd = req.getParameter("pwd");21 System.out.println("用户名是:" + name + ",密码是: " + pwd);22 }23 }
客户端数据:
1 2 3 4 514 15Insert title here 6 7 8