【设计模式】装饰器模式与Java Servlet、Spring Session在其中的使用
2017-06-14 16:21
369 查看
简述
装饰器模式,可以通过装饰器类,通过依赖原实现的方式(不使用继承),达到扩展原实现的目的。UML图如下:ServletRequestWrapper于其中的使用
ServletRequestWrapper是ServletRequest接口的简单实现,开发者可以继承ServletRequestWrapper去扩展原来的request。这里,我不写装饰器的Demo代码,因为ServletRequestWrapper就是一个很好的例子,可以阅读以下类图的实现:
上图可能有些不完整,我们基于Web的请求应如下图所示:
Spring Session于其中的使用
ServletRequestWrapper可供开发者继承使用,那么Spring Session就是其中之一,Spring Session通过SessionRepositoryRequestWrapper继承ServletRequestWrapper,扩展了Request,并在SessionRepositoryFilter通过调用过滤链filterChain.doFilter(strategyRequest, strategyResponse);将装饰的Request传入下一流程,具体请阅读以下类图的实现:
SessionRepositoryRequestWrapper覆盖了以下方法:
@Override public boolean isRequestedSessionIdValid(); @Override public HttpSessionWrapper getSession(boolean create); @Override public ServletContext getServletContext(); @Override public HttpSessionWrapper getSession(); @Override public String getRequestedSessionId();
相关文章推荐
- java设计模式--装饰器设计模式(javaIO设计使用)
- JavaServer Faces框架使用的设计模式
- Java设计模式-----Decorator装饰模式
- Java 设计模式 --装饰模式
- java设计模式之装饰模式
- Java设计模式之装饰模式
- JavaServer Faces框架使用的设计模式
- 使用Java开发Domino业务应用的设计模式 (cont. 1)
- JAVA随笔——设计模式--装饰模式
- 23种设计模式java实例代码之装饰模式
- java_装饰设计模式
- [学习笔记]jsp+javaBean+Servlet 的设计模式MVC 的实例
- Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之09.JDBC DAO设计模式
- java设计模式:装饰器模式[Decorator]
- JavaServer Faces框架使用的设计模式
- 设计模式之装饰模式 Decoratory Pattern java
- java设计模式:装饰器模式[Decorator]
- Proxy设计模式和Java relect包中Proxy的使用
- Java 设计模式-----装饰模式
- Java设计模式 - Decorator(装饰模式)