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