一、Servlet
1、servlet3.0新特性
1、注解的支持
@WebServlet、@WebInitParam、@WebFilter、@WebListener、@MultipartConfig
实践参考:https://blog.csdn.net/wangww3/article/details/105435674
2、异步处理支持
3、可插性支持
4、ServletContext性能增强
5、HttpServletRequest 对文件上传的支持
2、servlet4.0新特性
1、支持http2(https)协议
2、能进行服务器的推送
服务器预测性的提前将资源发给浏览器进行缓存,用户访问页面时直接从缓存中读取,加快页面访问速度,增加用户体验感。
PushBuilder pb = request.newPushBuilder();
pb.path("1.jpg");
pb.push();
3、提供了HttpServletMapping接口,支持运行时发现servlet的映射URL
4、HttpFilter:实现了Filter接口,多了对http协议的支持。相比Filter而言HttpFilter的doFilter方法里面的参数是带http协议的
相关参考网站:
菜鸟教程参考:https://www.runoob.com/servlet/servlet-tutorial.html
servlet3.0:http://tomcat.apache.org/tomcat-7.0-doc/servletapi/index.html
servlet3.0社区文档:https://www.ibm.com/developerworks/cn/java/j-lo-servlet30/index.html
servlet4.0:http://tomcat.apache.org/tomcat-9.0-doc/servletapi/
servlet4.0社区文档:https://www.ibm.com/developerworks/cn/java/j-javaee8-servlet4/index.html?ca=drs-&utm_source=tuicool&utm_medium=referral
二、Struts
Servlet和Struts1均是单实例、多线程,线程不安全,Struts2是多实例、多线程,是线程安全的
Servlet -- 封装 -- Struts1:需要基础action类,和Servlet耦合度很高 -- Struts2:是一个javabean,实现基于拦截器。三者都是MVC的Control。
参考网站:https://www.w3cschool.cn/struts_2/
https://struts.apache.org/
三、SpringMVC
框架组件:
DispatcherServlet:前端控制器
HandlerMapping:处理映射器
Handler:处理器
HandlerAdapter:处理器适配器
ViewResolve:视图解析器
View:视图
参考网站:https://www.w3cschool.cn/wkspring/9pf81ha5.html
https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html