1、SpringMVC是一个包含了Dispatcher Servlet的MVC框架。原理与Struts类似,开发风格也与Struts类似。
HttpServletBean主要参与了创建工作,没有参与请求处理;FrameworkServlet重写了service、doGet、doPost、doPut、doDelete等所有请求方法,通过决定是自己处理还是由父类处理。
DispatchServlet的入口是doService,doService没有直接进行处理,而是交给了doDispatch进行了具体处理。DispatchServlet直接初始化了9大组件:HandlerMapping、HandlerAdapter、HandlerExceptionResolver、ViewResolver、RequestToViewNameTranslator、LocaleResolver、ThemeResolver、MultipartResolver、FlashMapManager。
Handler:对应MVC中的C,具体表现形式有很多,可以是类,方法或其它。
HandlerMapping:用来查找Handler的;
HandlerAdapter:Handler有很多形式,要转换为Servlet可以处理的固定结构。
2、采用传统风格控制器的Spring MVC应用程序,其控制器是实现了Controller接口的类,Spring2.5引入了基于注解的控制器。使用基于注解的控制器有几个优点:一个控制器类可以处理多个动作、请求映射不需要存储在配置文件中。
@Controller注解和@RequestMapping注解
3、SpringMVC可以使用Spring框架的依赖注入特性,通过注解@Autowired注解到字段或方法,类必须注明为@Service,在配置文件中还要添加<component-scan/>元素来扫描依赖基本包。
4、使用@RequestParam注解获得请求参数值,使用路径变量@RequestMapping注解的值属性中添加变量,
@ModelAtrribute注解
5、数据绑定,form bean不再需要。
Spring表单标签库,渲染HTML。
6、转换器Converter和格式化Formatter:将一种对象转换为另一种对象。
7、验证器:spring-validator和jsr303-validator。
8、Tomcat可以分为两大部分:连接器和容器。连接器专门用来处理网络连接相关的事,如Socket连接、request封装等,容器用来存放我们编写的网站程序。Tomcat一共有4层容器:Engine、Host、Context和Wrapper。一个Wrapper对应一个Servlet,一个Context对应一个应用,一个Host对应一个站点,Engine是引擎,一个容器只有一个。一套容器和多个连接器组成一个Service。
9、Servlet3.0增加了对异步请求的支持来处理耗时的业务,HTTP协议是单向的,只能客户端自己拉,不能服务器主动推,异步请求的核心原理有两大类:一类是轮询,另一类是长连接。Servlet对异步请求的处理采用长连接的方式。长连接的原理是客户端发起请求,服务器处理返回后不关闭连接,这样就可以在后面再次返回数据给客户端。