springMVC 开涛 Controller接口控制器

通过注解实现控制器类,所以不用看Controller接口了。把之前的笔记保存下。

笔记(图片):http://pan.baidu.com/s/1mgMNDna

第三章看不太懂,3.2 3.3。只了解到讲了dispatch的基础知识和默认设置。

第四章  14个controller  慢慢看

controller:只有一个方法handleRequest,返回ModelAndView。spring提供了一些此接口的实现(13个),以方便使用。

WebContentGenerator:缓存控制,是否必须有session,支持的方法

主要属性:supportedMethods;requireSession; useExpiresHeader; useCacheControlHeader; useCacheControlNoStore; cacheSeconds(<0,保留上次的缓存设置); 

AbstractController:以后应该用这种方法:handleRequestInternal()

主要属性:synchronizeSession

使用方法

1、重写HelloWorldController

2、直接通过response写响应:response只是字符串,而不是原来的html代码

resp.getWriter().write("Hello World!!");		
		//如果想直接在该处理器/控制器写响应 可以通过返回null告诉DispatcherServlet自己已经写出响应了,不需要它进行视图解析
		return null;

3、指定请求方法:

//在bean中添加属性
<property name="supportedMethods" value="POST"></property>

因为AbstractController继承了WebContentController,所以拥有它的6个属性,且都可以添加在bean中

ctrl+F5 强制刷新

4、last-modified 实现lastModified的getlastModified()

5、ETag缓存机制 需配置如下代码

<filter>
   <filter-name>etagFilter</filter-name>
   <filter-class>org.springframework.web.filter.ShallowEtagHeaderFilter</filter-class>
</filter>
<filter-mapping>
   <filter-name>etagFilter</filter-name>
   <servlet-name>chapter4</servlet-name>
</filter-mapping>

ServletForwardingController 将请求转发到一个命名的servlet

原文地址:https://www.cnblogs.com/wang-jing/p/4550692.html