Struts2复习小结
2017-08-16 20:56
141 查看
这篇博客写的很烂,不建议大家浏览,只是作为我用来回忆怎样手动实现struts框架的笔记,很多细节这里都没讲清楚。
自己实现struts2过程
配置拦截器(Filter)至Web.xml,url-parrten配置为 /*
在Filter init代码中初始化Action配置 通过dom读取Action的配置信息
首先来看Action需要存储哪些信息
使用ClassLoader加载classpath目录下的struts.xml 文件,然后通过dom对象来解析
获取配置的各项信息,以及结果视图
然后将获取到的信息封装成Bean存储在Map中key就是配置的name
当请求过来时,通过截取到的请求名来获取存储在Map中的Action,如果返回不为空,说明有对应的Action可以执行,通过ClassName来反射获取实例对象,invoke对应的方法
每个方法多会返回一个逻辑视图,通过Action中的视图List获取对应逻辑视图的目录
这样一次请求就已经完成了
在Filter中获取RequestUrl 然后截取其中的请求名来获取Action,如果没有获取到就chain.doFilter(request,response) 放行,然后return。
关于参数怎么封装在Filter的doFilter中,将Request,Response两个对象转成HttpServlet存储在ThreadLocal中,这样便可以线程安全
这样一个简单的Struts就可以实现了
自己实现struts2过程
配置拦截器(Filter)至Web.xml,url-parrten配置为 /*
在Filter init代码中初始化Action配置 通过dom读取Action的配置信息
<action name="employee" class="com.BaseAction" method="execute"> <result name="index" type="forward">/WEB-INF/views/index.jsp</result> </action>
首先来看Action需要存储哪些信息
public class ActionInfoBean { private String name; // Action名称 private String className; // 类名 private String method; // 需要执行的方法 private List<Result> results; // 结果视图 }
使用ClassLoader加载classpath目录下的struts.xml 文件,然后通过dom对象来解析
NodeList nodeList = doc.getElementsByTagName("action");
获取配置的各项信息,以及结果视图
然后将获取到的信息封装成Bean存储在Map中key就是配置的name
当请求过来时,通过截取到的请求名来获取存储在Map中的Action,如果返回不为空,说明有对应的Action可以执行,通过ClassName来反射获取实例对象,invoke对应的方法
每个方法多会返回一个逻辑视图,通过Action中的视图List获取对应逻辑视图的目录
req.getRequestDispatcher("/WEB-INF/view/index.jsp").forward(request, response); rep.sendRedirect("/WEB-INF/view/index.jsp");
这样一次请求就已经完成了
在Filter中获取RequestUrl 然后截取其中的请求名来获取Action,如果没有获取到就chain.doFilter(request,response) 放行,然后return。
关于参数怎么封装在Filter的doFilter中,将Request,Response两个对象转成HttpServlet存储在ThreadLocal中,这样便可以线程安全
这样一个简单的Struts就可以实现了
相关文章推荐
- KMP复习小结
- linux期末复习知识点小结(三)—— Shell
- Struts2知识点小结1-Struts Tag Library
- AngularJS复习小结 4000
- struts2校验原理小结
- struts2学习小结
- 黑马程序员---CSS+DIV复习小结
- struts1和struts2及数据库连接(小结)
- 昨天安装复习中遇到的问题小结
- 复习Struts2之对action中指定方法进行校验
- struts2文件上传小结
- 软件设计师数据结构之线性结构复习小结
- 工程硕士考试复习小结
- struts2复习2 helloworld
- struts2复习(五)拦截器总结
- ActionContext和ServletActionContext小结(struts2)
- Java中的equals学习小结【复习】
- Struts2 学习小结
- Struts2知识点小结--标签