servlet
servlet的优点
- 是mvc的基础,struts1,struts2,webwork都是从servlet基础上发展过来的。所以掌握servlet是掌握MVC的基础。
- servlet把最底层的api暴露给程序员,是程序员更能清楚的了解mvc的各个特点。
- 程序员可以对servlet进行封装。Struts2就是从servlet封装的结果
- 市场上任何一个MVC的框架都是servlet发展过来的,所以要想学好struts2这个框架,了解servlet的运行机制很关键。
servlet的缺点
- 每写一个servlet在web.xml中都要做相应的配置。如果有很多servlet,会导致web.xml内容过于繁多。
- 这样的结构不利于分组开发
- 在servlet中,doGet和doPost方法有HTTPServletRequest和HttpServletResponse参数。这两个参数与容器相关,如果想在servlet中卓单元测试,则必须初始化这两个参数
- 如果一个servlet中有很多方法,则必须采用传递参数的形式,分解到每一个方法中
Servlet和Filter
servlet
- 每一个servlet内存中唯一
- load-on-startup就可以是Servlet在启动时就完成初始化
- 用户的每次请求都会经过void service(request,response)
- 配置映射为/*时,所有的请求都会经过该servlet
filter
- 每一个filter内存中唯一
- 启动时就完成初始化
- 用户的每次请求都会经过void doFilter(request,response)
- 配置映射为/*时,所有的请求都会经过该过滤器
不同:过滤器要比servlet强大,过滤器有权决定是否放行
总结:servlet能做的,filter都能做