初尝试Struts2,今天下午为了文件上传的问题郁闷了挺久,还在问答那扔了个问题http://www.iteye.com/problems/3622
呵呵,大体就是commons-fileupload上传时,某些文件(比如jpg,gif,txt等)上传均会报错
java.lang.NullPointerException
java.io.FileInputStream.<init>(Unknown Source)
看错误是FileInputStream初始化失败,使用System.out打印结果是null
而另外一些文件上传(比如pdf,word等)均正常
晚饭后在网上找了很多资料,然后发现在struts.xml原来的基础上再配置
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
问题果然迎刃而解,但是对于其中的原理还是不清楚,前辈们如果了解的话请指教下,谢谢
分享到:
相关推荐
下面是Struts2 源码分析的相关知识点: 1. Struts2 架构图 Struts2 的架构图主要包括 Filter chain、ActionMapper、ActionProxy、ActionInvocation 和 Result 等组件。Filter chain 负责处理请求,Filter 主要包括...
- **ActionContextCleanUp**:这是一个可选过滤器,主要用于清理线程上下文中的`ActionContext`对象,对于Struts2与其他框架的集成非常有帮助。 - **StrutsPrepareAndExecuteFilter**:这是Struts2的主要过滤器,...
Struts2提供了与其他框架的集成能力,如通过ActionContextCleanUp过滤器帮助集成SiteMesh实现页面布局。 总的来说,Struts2框架提供了一个结构化的方法来组织和管理Web应用,简化了开发过程,通过配置文件和拦截器...
2. 请求通过一系列过滤器,包括可选的ActionContextCleanUp过滤器,帮助Struts2与其他框架集成。 3. FilterDispatcher被调用,它会询问ActionMapper来确定是否需要调用特定的Action。 4. 如果需要,FilterDispatcher...
Struts2是一个强大的Java web应用程序框架,它是Struts1的后续产品,融合了WebWork的核心技术,提供了全新的架构。在Struts2中,基于拦截器的机制被用来处理用户请求,这种设计使得业务逻辑控制器与Servlet API完全...
其中,ActionContextCleanUp过滤器是可选的,但它在Struts2与其他框架(如SiteMeshPlugin)的集成中扮演了重要角色,确保了环境的干净与隔离,防止不同请求之间的数据污染。 #### 3. FilterDispatcher调用 接下来...
Struts2是一个流行的Java Web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。源码阅读对于理解其工作原理至关重要。本文将深入探讨Struts2的核心概念、类和请求处理流程。 首先,我们来看Struts2的架构...
2. **过滤器处理**:请求首先会经过一系列过滤器,如ActionContextCleanUp过滤器,用于清理Action上下文环境,这对于集成其他框架(如SiteMeshPlugin)非常重要。 3. **ActionMapper解析**:FilterDispatcher调用...
Struts2是一个强大的Java Web应用框架,它是基于Model-View-Controller(MVC)设计模式的,用于构建可扩展的企业级应用。Struts2的出现是由于WebWork和Struts社区的合并,它继承了两者的优势,提供了更高效、灵活的...
3. **struts2**过滤器:Struts2框架自带的过滤器,用于处理所有Struts2相关的请求。 ```xml <filter-name>struts2 <filter-class>org.apache.struts2.dispatcher.FilterDispatcher ``` 过滤器映射方面,每...
一个请求在Struts 2框架中的处理大概分为以下几个步骤。 客户端提交一个(HttpServletRequest)请求,如上文在浏览器中输入 http://localhost: 8080/bookcode/ch2/Reg.action就是提交一个(HttpServletRequest)...
5. **整合Struts2**:Struts2需要通过过滤器进行配置,如`ActionContextCleanUp`和`FilterDispatcher`,确保DWR能够与Struts2框架协同工作。 **Struts2与DWR集成** Struts2提供了强大的MVC功能,DWR则负责处理前端...
- 添加一个名为`struts-cleanup`的过滤器,使用`org.apache.struts2.dispatcher.ActionContextCleanUp`类。 ```xml <filter-name>struts-cleanup <filter-class>org.apache.struts2.dispatcher....
Struts2是一个流行的Java Web开发框架,它遵循MVC(模型-视图-控制器)设计模式,用于构建可维护性和可扩展性高的Web应用程序。在深入理解Struts2的工作流程之前,我们需要先了解一些基本概念。 1. **MVC模式**: ...
这个压缩包文件包含了一系列与Struts2相关的技术点,主要集中在错误页面配置、字符编码问题、防止SQL注入和Struts2框架的特性上。以下是这些知识点的详细解释: 1. **错误页面配置**: 在Web应用中,当请求无法...
2. `org.apache.struts2.config` 包:包含了与配置相关的接口和类,负责XML和properties文件的读取和解析,虽然大部分工作由WebWork完成,但Struts2也做了一部分适配。 3. `org.apache.struts2.dispatcher` 包:这...
Struts2是一个强大的Java web应用程序开发框架,它基于MVC设计模式,主要用于简化企业级应用的开发过程。本文将深入探讨Struts2的入门实例、工作原理及其主要组件。 首先,让我们从一个简单的Struts2入门实例开始。...
- **其他**:Struts还提供了`ActionContextCleanup`类,用于在请求结束时清理资源。 **2. struts.xml文件** - **核心配置**:定义了Struts2的配置信息,可以包含多个其他配置文件,便于管理不同模块的配置。 - **...
此外,在使用 Struts 2 时,需要注意乱码问题,解决方法是将编码方式设为“utf-8”,并在 web.xml 中配置 ActionContextCleanUp 过滤器。 OGNL 语言是 Struts 2 中的一种强大且灵活的表达式语言,能够简化 JSP 页面...