用struts2.1.6作图片上传
最近项目里要用到上传图片功能,本来这是很简单的功能,不消半天就能搞定,可是我却捣鼓了两天,全因为下边的错误:
ERROR [Engine] StandardWrapperValve[default]: Servlet.service() for servlet default threw exception
java.lang.IllegalStateException
......
在网上查原因,有人说是因为struts2.1.6版本包的问题,其中写文件要用到输入输出流,而struts跳转的return也是通过输出流写的,一前一后,会发生冲突;又有一种说法是说struts2.1.6版本的过滤器和servlet有冲突,导致程序中获取不到页面提交的file对象。
一般都会在web.xml里这样配置struts的过滤规则:
<!-- 定义Struts2的FilterDispathcer过滤器 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这样配置会将所有类型的请求都拦截,包括servlet。
经多方求证,今天找到解决方法,通过servlet来解决,当然web.xml配置文件里的struts的过滤规则也要改一下:
<!-- 定义Struts2的FilterDispathcer过滤器 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<!-- 定义struts2过滤规则:过滤后缀为.action和.jsp的请求 -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
这样我们的servlet就可以访问了,我是这样配置的:
<!-- 我的文件上传servlet类 -->
<servlet>
<servlet-name>imgUpload</servlet-name>
<servlet-class>cn.com.ServletUpload</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>imgUpload</servlet-name>
<url-pattern>/imgUpload</url-pattern>
</servlet-mapping>
这样,只要在页面中修改form的action为"/imgUpload"就可以了。
至于servlet内部如何写,就依个人喜好了,我个人是用了jspSmartUpload工具操作的。
希望可以对遇到像我的问题一样的朋友有一定的帮助!
分享到:
相关推荐
使用国内源安装tensorflow: pip install -i https://mirrors.aliyun.com/pypi/simple/ --upgrade tensorflow-gpu==1.5.0 pip install -i https://mirrors.aliyun.com/pypi/simple/ --upgrade keras==2.1.6 国内镜像...
- SpringBoot-2.1.6 - MyBatis-3.4.6 - Shiro - [通用Mapper](https://github.com/abel533/Mapper "通用Mapper") - 用到的类库: - druid - RedisLockRegistry:Spring分布式锁 - [hutool]...
SSH 框架配置步骤图解(Struts2.1.6 Spring2.5.6 Hibernate3.3.1) SSH 框架是一种常用的 Java Web 应用程序框架,它由 Struts、Spring 和 Hibernate 三个框架组成。今天,我们将详细介绍如何配置 SSH 框架,包括...
- Location: D:\share\0750_Struts2.1.6\soft\struts-2.1.6\lib\struts2-core-2.1.6\struts-2.0.dtd 2. **导入示例项目失败** - JDK版本检查:确保使用JDK 6 - 项目右键 > Properties > Java Compiler > 选择6.0 ...
软件版本: 2.1.6 软件语言: 简体中文 运行环境: Win2003/XP/2000 .NET Framework 2.0 软件大小: 2.5M 开 发 商: http://www.maticsoft.com 发布日期: 2008-08-09 ≡≡≡≡≡≡≡≡≡≡≡≡≡『软件简介』≡≡≡≡...
标题 "Python-Resetter" 提供的信息表明,这个项目或工具使用了 Python 语言,并且它的目的是用于重置基于 Debian 的 Linux 系统至初始状态,即“stock”状态。在 Linux 中,“stock”通常指的是系统出厂时的默认...
- 必须引入的JAR包有:Commons-logging-1.0.4.jar、Freemarker-2.3.13.jar、Ognl-2.6.11.jar、Struts2-core-2.1.6.jar 和 Xwork-2.1.2.jar。 - 另外还需注意导入以下三个JAR包:commons-io-1.3.2.jar、commons-...
最近温习ssh2整合编程,顺便浏览下struts2有什么更新的消息,下载了新版本的struts2的2.1.8.1版,使用的是MyEclipse8.0开发,但是问题就随之而来了。MyEclipse8.0中自带的struts2版本是2.1.6,spring版本有2.0,2.5...
- 必须的JAR包包括:`Commons-logging-1.0.4.jar`, `Freemarker-2.3.13.jar`, `Ognl-2.6.11.jar`, `Struts2-core-2.1.6.jar`, `Xwork-2.1.2.jar` - 另外还需要导入以下三个JAR包来避免运行时可能出现的异常:`...
Struts2.1.6是Apache Struts框架的一个版本,它是一个基于MVC设计模式的Java Web应用程序框架。Struts2提供了丰富的功能,用于构建可维护、可扩展且易于开发的Web应用。在这个"struts2.1.6零配置DEMO"中,我们将深入...
开发环境:Windows XP sp3、SQL Server 2005、JDK 1.6、Struts2.1.6、Spring 2.0、Hibernate3.1、MyEclipse 5.5、Tomcat 6.0 使用步骤: 1、下载解压之后,使用IDE导入工程 2、把工程中的“演示数据脚本.sql”导入到...
在描述中提到,之前上传的"struts2.1.6jar all.zip"文件出现了错误,里面包含了Hibernate的内容,而实际上应该是与Struts2相关的文件。因此,这里我们需要关注的是正确的Struts2.1.6版本,确保它包含所有必要的组件...
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合开发 http://www.cnitblog.com/intrl/archive/2009/04/13/56322.aspx 这篇文章的源码由于他的上传的空间用户可能下载失败,作者相当牛而且具有奉献精神
Struts2.1.6-Lib: 深入理解Struts2框架核心与库文件 Struts2是一个流行的开源MVC(Model-View-Controller)框架,它为Java Web应用提供了一种强大的架构支持。Struts2.1.6是该框架的一个版本,其lib目录下的jar包...
- struts2-core-2.1.6.jar - xwork-2.1.2.jar 这些库可以通过Maven或手动下载放置到项目的lib目录下。 **创建`struts.xml`配置文件**: ```xml <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD ...
Struts2.1.6是Apache Struts框架的一个特定版本,该框架是Java Web开发中的一个强大工具。Struts2以其MVC(Model-View-Controller)架构模式为核心,为开发者提供了一种组织应用程序结构、处理HTTP请求以及管理业务...
### Struts-2.1.6整合Tiles2全攻略 #### 一、概述 本文将详细介绍如何在Struts-2.1.6框架中整合Tiles2,并通过具体步骤指导完成整个配置过程。对于那些希望利用Struts2和Tiles2来构建高效、可维护的Web应用的...