Struts2源码浅析
文章平均质量分 54
NoExceptionSir
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
struts2拦截器源码阅读笔记
拦截器,是struts最具特色的,也是被大家称赞的亮点之一,整个拦截器体系运用了AOP思想,流程由责任链模式完成。下面将对拦截器的源码进行部分解读struts2通过创建代理对象,由生成的代理action走过拦截器的一系列流程StrutsPrepareAndExecuteFilter的executeAction()方法 execute.executeAction(request, response,原创 2016-12-30 21:49:31 · 385 阅读 · 0 评论 -
模拟泛型DAO增删改查--->jdbc实现
在我之前做的的jdbc项目,参数列表中传入的都是指定类型,一旦添加了实体类,又要重新写一个dao层的方法,但是功能基本都是一致的,导致代码大量冗余,可维护性极差,所以在这里引入泛型DAO来解决这个问题,规定泛型,传入的参数可以是任意实体类,而我们在控制层可以将方法返回的泛型类型的值强转为我们要使用的实体类型,注意!这里不要通过反射在控制层获取实体类,多此一举,我们要知道,使用泛型DAO的目的是去冗余原创 2016-12-31 20:35:34 · 615 阅读 · 0 评论 -
Struts2动态代理生成action源码执行流程
动态代理生成action这部分源码,应该算是Struts2之中比较底层的代码了,在这里贴出源码的执行流程,仅供参考。核心过滤器StrutsPrepareAndExecuteFilter,在此只贴出doFilter()的代码 public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws原创 2016-12-31 19:26:12 · 1990 阅读 · 0 评论 -
Struts2执行流程源码解析
这个是过去版本的,但是大致执行流程是大同小异的。 首先struts2的入口就是,StrutsPrepareAndExecuteFilter,核心过滤器首先会执行过滤器的init初始化方法 public void init(FilterConfig filterConfig) throws ServletException { InitOperations init = new In原创 2016-12-25 21:38:33 · 582 阅读 · 0 评论 -
Struts2值栈ValueStack源码阅读笔记
我们要从ActionContext开始说起,首先看StrutsPrepareAndExecuteFilter核心过滤器,也是整个程序的入口,doFilter()方法中的 ——-> prepare.createActionContext(request, response);public void doFilter(ServletRequest req, ServletResponse re原创 2016-12-31 18:57:43 · 480 阅读 · 0 评论 -
Struts2中的责任链模式模拟
模拟Struts2的工作责任链过程,接口调用invoke方法执行 [java] view plain copy public interface ActionInvocation{ Object getAction(); boolean isExecuted(); Result getResult() throws Exception; String getResultCode()转载 2016-12-31 16:35:31 · 698 阅读 · 0 评论 -
【策略模式】模拟Struts选择策略决策转移
目标:我们需要一个计算价格的类,有时候会打折 1.我们先设计一个接口 [java] view plain copy public interface PriceCalculationStrategy { public double calculatePrice(double price , double copies); public boolean match(double price转载 2016-12-31 16:31:04 · 386 阅读 · 0 评论 -
装饰器模式在Struts2中的应用
案列2 StrutsRequestWrapper public class StrutsRequestWrapper extends HttpServletRequestWrapper { /** * The constructor * @param req The request */ public StrutsRequestWrapper(HttpServletReque转载 2016-12-31 16:22:42 · 518 阅读 · 0 评论 -
Struts2容器Container源码阅读笔记
container是容器的意思,这让人很容易联想到java的Collection接口下的集合类,然而container并不是一个数据结构,我认为container其实是一个工厂,可以对对象的生命周期进行管理,,使对象的创建与业务逻辑的代码分开,同时可以避免对象的频繁的无用的创建,它可以将从配置文件中读取到的信息,通过依赖注入,缓存成key,value形式,也可以通过getInstance()通过反射原创 2016-12-31 16:15:36 · 1039 阅读 · 0 评论 -
struts2中的 ThreadLocal模式详解
设计模式(Design pattern)是经过程序员反复实践后形成的一套代码设计经验的总结。设计模式随着编程语言的发展,也由最初的“编程惯例”逐步发展成为被反复使用、并为绝大多数程序员所知晓的、完善的理论体系。我们使用设计模式(Design pattern)的初衷,是使代码的重用度提高、让代码能够更容易被别人理解以及保证代码的可靠性。毫无疑问,在程序中使用设计模式无论是对于程序员自身还是对于应用程序转载 2016-12-30 22:00:18 · 425 阅读 · 0 评论 -
Struts2初始化之Dispatcher
Dispatcher也叫做核心分发器,Dispatcher类负责整个Struts2项目的初始化工作。这是一个很庞大的类,这里会挑选一些重要的方法进行分析。 很明显这是一个应用ThreadLocal的例子,它为当前线程中的一个叫做ThreadLocalMap的线程副本,使得线程与线程之间,每一个线程可以独立的修改自己的副本,而不会影响到其他线程的变量,从而使线程安全。 Dispatcher分发器的原创 2016-12-30 20:29:19 · 632 阅读 · 0 评论 -
Struts2类型转换TypeConverter源码阅读笔记
在之前值栈的学习中,遗留的一个问题,值栈中保存了action的一些信息,而页面要从值栈取action中的数据,这个过程是怎样实现的?页面上的信息全部都是字符串,而在实际运行中变量的类型是多种多样的,他们之间是怎样完成类型转换的?首先我们要知道,ognl的jar包中的一个接口ognl.TypeConverter,它是做什么的?这个接口的实现类ognl.DefaultTypeConverter是实现og原创 2017-01-02 19:50:22 · 727 阅读 · 0 评论
分享