用UserServlet专门处理关于User模块的功能,在这个UserServlet里面提供很多方法,完成不同的功能,
优化Servlet的目的就是减少Servlet的数量,讲一个功能一个Servlet优化为一个模块一个Servlet,也相当于是数据库中一张表对应一个Servlet,在Servlet中提供不同的方法,完成用户的请求
优化Servlet的方法:
我们写一个BaseServlet继承HttpServlet,重新service()方法。然后其他Servlet继承 BaseServlet。
8 然后在BaseServle中的service方法里面进行分发。
9 具体,就是获取不同servlet的请求路径,截取出来方法名,因为我们可以规定,不同模块的 servlet的请求路径为一个二级路径,例如:UserServlet 的请求路径 /user/* 那么当前台请求 路径为 /user/add 那就是想要
10 UserServlet中的add方法执行。 如果请求路径为 /user/find 那就是想让UserServlet的 find方法执行。
11 那么我们在BaseServlet中获取请求路径,截取出方法名,通过反射的方式,让子类Servlet中 的方法执行。
12 BaseServlet的抽取
1.创建一个BaseServlet继承HttpServlet,但是不要给BaseServlet写任何路径,因为我们不直接 请求BaseServlet,而是请求他的子类,当请求他的子类时,那么父类BaseServlet中的service()方法就会执行。
2 2.重新service()方法。
3 3.在service()方法中获取请求路径,那么这里有一个问题,我在父类BaseServlet中怎么获取子类 Servlet的对 象,其实使用this就可以,this就代表这个子类Servlet,我们等会可以测试看下。
4 4.从请求路径中截取方法名出来 例如请求路径是 xxxx/user/add 我们把add截取出来。
5 5.通过反射获取add方法对象,并调用执行。