
Struts
文章平均质量分 80
xiemk2005
这个作者很懒,什么都没留下…
展开
-
Struts的线程安全问题
<br />一、Servlet的线程安全问题<br />参考:深入研究Servlet线程安全性问题<br />Servlet是单例的,如果Servlet有定义实例变量并且在service方法中有赋值操作,则在多线程情况下存在线程安全问题。<br /> <br />二、Struts1<br />Struts1使用的ActionServlet是单例的,由这一个servlet处理所有.do请求。RequestProcessor也是单例。<br /> <br />RequestProcessor的processAc原创 2010-12-09 01:51:00 · 3527 阅读 · 1 评论 -
Struts2源码阅读(一)_Struts2框架流程概述
<br />1. Struts2架构图<br /><br /> <br />请求首先通过Filter chain,Filter主要包括ActionContextCleanUp,它主要清理当前线程的ActionContext和Dispatcher;FilterDispatcher通过AcionMapper把请求路径与配置文件的namespace匹配,封装成actionMapping。 <br /> ActionMapper取得了ActionMapping后,在Dispatcher转载 2010-11-12 00:02:00 · 4571 阅读 · 0 评论 -
Struts2源码阅读(六)_ActionProxy&ActionInvocation
<br />下面开始讲一下主菜ActionProxy了.在这之前最好先去了解一下动态Proxy的基本知识.<br />ActionProxy是Action的一个代理类,也就是说Action的调用是通过ActionProxy实现的,其实就是调用了ActionProxy.execute()方法,而该方法又调用了ActionInvocation.invoke()方法。归根到底,最后调用的是DefaultActionInvocation.invokeAction()方法。<br />Defaul转载 2010-11-12 01:08:00 · 6890 阅读 · 0 评论 -
Struts2源码阅读(三)_Dispatcher&ConfigurationProvider
<br />首先强调一下struts2的线程程安全,在Struts2中大量采用ThreadLocal线程局部变量的方法来保证线程的安全,像Dispatcher等都是通过ThreadLocal来保存变量值,使得每个线程都有自己独立的实例变量,互不相干.<br /> <br />接下来就从Dispatcher开始看起,先看其构造函数:<br /> 1. //创建Dispatcher,此类是一个Delegate,它是真正完成根据url解析转向,读取对应Action的地方 2. public转载 2010-11-12 00:39:00 · 1836 阅读 · 0 评论 -
Struts2源码阅读(五)_FilterDispatcher核心控制器
<br />Dispatcher已经在之前讲过,这就好办了。FilterDispatcher是Struts2的核心控制器,首先看一下init()方法。<br /> 1. public void init(FilterConfig filterConfig) throws ServletException { 2. try { 3. this.filterConfig = filterConfig; 4. initLogging(转载 2010-11-12 00:58:00 · 4378 阅读 · 0 评论 -
Struts2源码阅读(四)_Dispatcher&ConfigurationProvider续
<br />接下来第三步:init_LegacyStrutsProperties()<br />调用的是调用的是LegacyPropertiesConfigurationProvider<br />通过比较前面DefaultPropertiesProvider与调用的是LegacyPropertiesConfigurationProvider.<br />发现DefaultPropertiesProvider继承自后者,但重写了register()方法,主要是生成PropertiesSettin转载 2010-11-12 00:50:00 · 1778 阅读 · 0 评论 -
Struts1 table提交多行数据
<br /> <br />转自:http://www.javaeye.com/topic/169559<br /> 在struts框架中常常会遇到多行表单的情况, 如何有效的利用struts框架提供的自动收集机制来处理呢? 这里提供一个示例.<br /><br />1.示例功能:通过一个【提交】按钮保存多行人员信息,如附件中的图片所示。<br /><br />2.核心类代码:<br />TestForm.java, MyBean.java, TestVO.java<br /转载 2010-11-09 20:15:00 · 4943 阅读 · 0 评论 -
struts的上传、下载
<br />1、下载<br /> <br />待。。。。。。原创 2011-01-01 21:52:00 · 530 阅读 · 0 评论 -
xwork依赖注入 Container
<br />Container API<br />参考:http://struts.apache.org/2.1.2/struts2-core/apidocs/com/opensymphony/xwork2/inject/Container.html<br /><br />public interface Container<br />extends Serializable<br /><br />Injects dependencies into constructors, methods转载 2010-11-05 09:10:00 · 2476 阅读 · 0 评论 -
Struts1、Struts2
<br />1、web.xml主要配置:<br />struts1:<br /> <servlet><br /> <servlet-name>action</servlet-name><br /> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class><br /> <init-param><br /> <param-name>config</param-name>原创 2010-11-04 20:40:00 · 1230 阅读 · 0 评论 -
Struts2源码阅读(二)_ActionContext及CleanUP Filter
<br />1. ActionContext<br /><br />ActionContext是被存放在当前线程中的,获取ActionContext也是从ThreadLocal中获取的。所以在执行拦截器、 action和result的过程中,由于他们都是在一个线程中按照顺序执行的,所以可以可以在任意时候在ThreadLocal中获取 ActionContext。<br /><br />ActionContext包括了很多信息,比如Session、Application、Request、Loc转载 2010-11-12 00:25:00 · 1838 阅读 · 0 评论