`
lzkyo
  • 浏览: 454582 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ssh2(struts2+spring2.5+hibernate3.3+ajax)带进度条文件上传(封装成标签)

阅读更多
ssh2中文件带进度条的上传的demo有很多,但是大多数都是集成了上传的插件来实现的,如:swfupload,dwr等,功能也是非常强大,但是本上传组件没有集成任何插件来进行带进度条上传实现的。请大家在下载后,运行程序前了解本程序实现的原理,我在这里简单介绍一下实现的过程.

struts2上传原理:
struts2自身是封装了上传的操作的,它主要的实现的过程是先通过上传拦截器拦截后,对上传的文件大小进行控制(如果你对struts2的文件大小进行了限制的话,默认好像是允许上传20M内的文件),文件超过指定大小会抛出异常,如果没有超出指定大小,上传的文件会先存储在配置的临时文件夹下,文件上传到临时文件夹后,才会对临时文件夹下的文件进行拷贝,拷贝到自己指定的文件夹下。

对实现进度条功能造成的影响:
那么这样一来,你就无法真实来实现进度条功能,原因很简单,它有一个上传到临时文件夹的过程,然后才会进行拷贝到你指定的文件夹,那么你就无法来进行同步,获得上传的进度,我在网站上看到某些文件中说,只有等待它存储在临时文件夹后,在复制到目标目录时,进行进度判断,这样做中间有个等待过程,哪里还叫真正的进度条上传,这只是一种说法,还有很多种这样没有意义的想法,我就不举例了.

 

本程序实现方式:

1.附件大小限制:没有通过js脚本来验证文件大小,因为现在的浏览器版本太多,js验证文件大小会产生很多异常情况,而且大多数的js脚本程序都要通过设置安全级别来对文件大小作出判断,有的脚本不需要设置安全,但是它不能满足所有浏览器,我测试过,这里就不多啰嗦了.我是直接在后台对struts2抛出的异常的信息截取.然后通过ajax反映到前台来限制文件大小的,本程序设置struts2的上传文件大小限制为30M,如果上传30M以上的文件,会很快反映到前台

2.在上传到临时文件夹时,利用线程同时进行上传进度的跟踪,然后通过ajax,把跟踪的进度结果实时反映到前台,显示进度

3.因为考虑到该程序的特性,因此封装成标签,在想调用上传组件的jsp导入标签即可使用.

 

 

本程序实现功能:

1. 支持多个文件上传
2. 对上传文件进行增加、删除、清空本次上传文件,取消正在上传的文件等操作
3. 对上传文件前检测同名文件,以及上传文件的大小限制
4. 包含中文名称的文件上传、附件上传成功后,在数据库表中插入一条记录,表中file_src_name记录一个随机字符,在下载时候通过该字段找到相应的附件 
5. 上传文件时候, 反映上传进度

 

 

二次开发本程序:

本程序目录结构:

com/bestsoft/ssh目录

bean/upload目录下:实体映射类

comm目录下:工具类

comm/upload目录下:上传标签类

dao目录下:数据访问接口和实现类

databean目录下:数据传输类

service目录下:业务逻辑接口和实现类

web/action/upload目录下:上传实现类

doc目录下:数据库文档及脚本、标签、设计等说明文件

其他目录下就是配置文件,jsp文件,tld文件等

 

运行程序:

下载本程序后,导入工程,导入相应的jar包,导入数据库文件,修改src下init.properties文件的配置信息(用户名,密码,数据库信息),本程序在tomcat5以上版本运行,ide为eclipse,数据库为mysql(如果你不是用mysql,自己手动进行修改成其他数据库),修改完成后即可运行本程序。

 

说明:

s2sh的jar包比较多,这里就不上传了,如果说需要jar包的话,可以留言给我,我再进行上传,因为本程序主要是以上传功能为主,因此在dao,service的等代码上简单的进行了编写.

 

程序截图:

初始界面:

 

 

已经上传成功的文件:

 

正在上传的文件:

 

上传文件时,对操作的限制:

 

禁止上传同名的附件:

 

上传文件大小的限制:

分享到:
评论
8 楼 tinguo002 2011-08-16  
大大您有空的时候 帮忙传一个给我咯。
想写一个 , 正在思考中,还没有想路咯。
 
我的邮箱 : 398968130@qq.com
先谢谢哈。
7 楼 cjgj520 2010-06-10  
我部署了一下 就改了一下 数据源 为什么报错
2010-6-10 11:34:26 org.apache.catalina.core.AprLifecycleListener init
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.6.0_03\bin;Q:\Program Files\tomcat-6.0.20\bin
2010-6-10 11:34:26 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
2010-6-10 11:34:26 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 515 ms
2010-6-10 11:34:26 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2010-6-10 11:34:26 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.20
2010-6-10 11:34:26 org.apache.catalina.core.ApplicationContext log
信息: Set web app root system property: 'webApp.root' = [Q:\wgq_workspace\ssh2-upload\WebRoot\]
2010-6-10 11:34:27 org.apache.catalina.core.ApplicationContext log
信息: Initializing log4j from [Q:\wgq_workspace\ssh2-upload\WebRoot\WEB-INF\log4j.properties]
2010-6-10 11:34:27 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring root WebApplicationContext
2010-06-10 11:34:27,237 [main] [org.springframework.web.context.ContextLoader-initWebApplicationContext:189] [INFO] - Root WebApplicationContext: initialization started
2010-06-10 11:34:27,331 [main] [org.springframework.web.context.support.XmlWebApplicationContext-prepareRefresh:412] [INFO] - Refreshing org.springframework.web.context.support.XmlWebApplicationContext@1b59919: display name [Root WebApplicationContext]; startup date [Thu Jun 10 11:34:27 CST 2010]; root of context hierarchy
2010-06-10 11:34:27,472 [main] [org.springframework.beans.factory.xml.XmlBeanDefinitionReader-loadBeanDefinitions:323] [INFO] - Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext.xml]
2010-06-10 11:34:27,566 [main] [org.springframework.beans.factory.xml.XmlBeanDefinitionReader-loadBeanDefinitions:323] [INFO] - Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext-service.xml]
2010-06-10 11:34:27,659 [main] [org.springframework.beans.factory.xml.XmlBeanDefinitionReader-loadBeanDefinitions:323] [INFO] - Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext-dao.xml]
2010-06-10 11:34:27,659 [main] [org.springframework.beans.factory.xml.XmlBeanDefinitionReader-loadBeanDefinitions:323] [INFO] - Loading XML bean definitions from ServletContext resource [/WEB-INF/action-servlet.xml]
2010-06-10 11:34:27,675 [main] [org.springframework.web.context.support.XmlWebApplicationContext-obtainFreshBeanFactory:427] [INFO] - Bean factory for application context [org.springframework.web.context.support.XmlWebApplicationContext@1b59919]: org.springframework.beans.factory.support.DefaultListableBeanFactory@1e26602
2010-06-10 11:34:27,862 [main] [org.springframework.beans.factory.config.PropertyPlaceholderConfigurer-loadProperties:178] [INFO] - Loading properties file from class path resource [init.properties]
2010-06-10 11:34:27,909 [main] [org.springframework.beans.factory.support.DefaultListableBeanFactory-preInstantiateSingletons:414] [INFO] - Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1e26602: defining beans [placeholderConfig,dataSource,sessionFactory,fileUploadService,daoTemplate,fileUploadHibernateDAO,uploadAction]; root of factory hierarchy
2010-06-10 11:34:27,941 [main] [com.mchange.v2.log.MLog-<clinit>:80] [INFO] - MLog clients using log4j logging.
2010-06-10 11:34:28,144 [main] [com.mchange.v2.c3p0.C3P0Registry-banner:204] [INFO] - Initializing c3p0-0.9.1.2 [built 21-May-2007 15:04:56; debug? true; trace: 10]
2010-06-10 11:34:28,347 [main] [org.hibernate.cfg.Environment-<clinit>:514] [INFO] - Hibernate 3.2.5
2010-06-10 11:34:28,347 [main] [org.hibernate.cfg.Environment-<clinit>:547] [INFO] - hibernate.properties not found
2010-06-10 11:34:28,362 [main] [org.hibernate.cfg.Environment-buildBytecodeProvider:681] [INFO] - Bytecode provider name : cglib
2010-06-10 11:34:28,362 [main] [org.hibernate.cfg.Environment-<clinit>:598] [INFO] - using JDK 1.4 java.sql.Timestamp handling
2010-06-10 11:34:28,503 [main] [org.hibernate.cfg.Configuration-addFile:299] [INFO] - Reading mappings from file: Q:\wgq_workspace\ssh2-upload\WebRoot\WEB-INF\classes\com\bestsoft\ssh\bean\upload\FileUpload.hbm.xml
2010-06-10 11:34:28,722 [main] [org.hibernate.cfg.HbmBinder-bindRootPersistentClassCommonValues:300] [INFO] - Mapping class: com.bestsoft.ssh.bean.upload.FileUpload -> file_upload
2010-06-10 11:34:28,769 [main] [org.springframework.orm.hibernate3.LocalSessionFactoryBean-buildSessionFactory:730] [INFO] - Building new Hibernate SessionFactory
2010-06-10 11:34:28,894 [main] [org.hibernate.connection.ConnectionProviderFactory-newConnectionProvider:72] [INFO] - Initializing connection provider: org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider
2010-06-10 11:34:29,097 [main] [com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource-getPoolManager:462] [INFO] - Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -> 2rvy3a898uvd0j1d9kl3n|8210fc, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> com.mysql.jdbc.Driver, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 2rvy3a898uvd0j1d9kl3n|8210fc, idleConnectionTestPeriod -> 900, initialPoolSize -> 3, jdbcUrl -> jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 600, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 500, maxStatements -> 100, maxStatementsPerConnection -> 0, minPoolSize -> 2, numHelperThreads -> 10, numThreadsAwaitingCheckoutDefaultUser -> 0, preferredTestQuery -> null, properties -> {user=******, password=******}, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false ]
2010-06-10 11:34:29,394 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:89] [INFO] - RDBMS: MySQL, version: 5.0.22-community-nt
2010-06-10 11:34:29,394 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:90] [INFO] - JDBC driver: MySQL-AB JDBC Driver, version: mysql-connector-java-3.1.13 ( $Date: 2005-11-17 15:53:48 +0100 (Thu, 17 Nov 2005) $, $Revision$ )
2010-06-10 11:34:29,425 [main] [org.hibernate.dialect.Dialect-<init>:152] [INFO] - Using dialect: org.hibernate.dialect.MySQLMyISAMDialect
2010-06-10 11:34:29,441 [main] [org.hibernate.transaction.TransactionFactoryFactory-buildTransactionFactory:34] [INFO] - Transaction strategy: org.springframework.orm.hibernate3.SpringTransactionFactory
2010-06-10 11:34:29,441 [main] [org.hibernate.transaction.TransactionManagerLookupFactory-getTransactionManagerLookup:33] [INFO] - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
2010-06-10 11:34:29,441 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:143] [INFO] - Automatic flush during beforeCompletion(): disabled
2010-06-10 11:34:29,456 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:147] [INFO] - Automatic session close at end of transaction: disabled
2010-06-10 11:34:29,456 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:154] [INFO] - JDBC batch size: 25
2010-06-10 11:34:29,456 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:157] [INFO] - JDBC batch updates for versioned data: disabled
2010-06-10 11:34:29,456 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:162] [INFO] - Scrollable result sets: enabled
2010-06-10 11:34:29,456 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:170] [INFO] - JDBC3 getGeneratedKeys(): enabled
2010-06-10 11:34:29,456 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:174] [INFO] - JDBC result set fetch size: 50
2010-06-10 11:34:29,456 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:178] [INFO] - Connection release mode: auto
2010-06-10 11:34:29,472 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:202] [INFO] - Maximum outer join fetch depth: 2
2010-06-10 11:34:29,472 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:205] [INFO] - Default batch fetch size: 1
2010-06-10 11:34:29,472 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:209] [INFO] - Generate SQL with comments: disabled
2010-06-10 11:34:29,472 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:213] [INFO] - Order SQL updates by primary key: disabled
2010-06-10 11:34:29,472 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:217] [INFO] - Order SQL inserts for batching: disabled
2010-06-10 11:34:29,472 [main] [org.hibernate.cfg.SettingsFactory-createQueryTranslatorFactory:386] [INFO] - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
2010-06-10 11:34:29,472 [main] [org.hibernate.hql.ast.ASTQueryTranslatorFactory-<init>:24] [INFO] - Using ASTQueryTranslatorFactory
2010-06-10 11:34:29,472 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:225] [INFO] - Query language substitutions: {}
2010-06-10 11:34:29,472 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:230] [INFO] - JPA-QL strict compliance: disabled
2010-06-10 11:34:29,472 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:235] [INFO] - Second-level cache: enabled
2010-06-10 11:34:29,472 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:239] [INFO] - Query cache: disabled
2010-06-10 11:34:29,472 [main] [org.hibernate.cfg.SettingsFactory-createCacheProvider:373] [INFO] - Cache provider: org.hibernate.cache.NoCacheProvider
2010-06-10 11:34:29,472 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:254] [INFO] - Optimize cache for minimal puts: disabled
2010-06-10 11:34:29,472 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:263] [INFO] - Structured second-level cache entries: disabled
2010-06-10 11:34:29,487 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:283] [INFO] - Echoing all SQL to stdout
2010-06-10 11:34:29,503 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:290] [INFO] - Statistics: disabled
2010-06-10 11:34:29,503 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:294] [INFO] - Deleted entity synthetic identifier rollback: disabled
2010-06-10 11:34:29,503 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:309] [INFO] - Default entity-mode: pojo
2010-06-10 11:34:29,503 [main] [org.hibernate.cfg.SettingsFactory-buildSettings:313] [INFO] - Named query checking : enabled
2010-06-10 11:34:29,566 [main] [org.hibernate.impl.SessionFactoryImpl-<init>:161] [INFO] - building session factory
2010-06-10 11:34:30,191 [main] [org.hibernate.impl.SessionFactoryObjectFactory-addInstance:82] [INFO] - Not binding factory to JNDI, no JNDI name configured
2010-06-10 11:34:30,237 [main] [org.springframework.web.context.ContextLoader-initWebApplicationContext:209] [INFO] - Root WebApplicationContext: initialization completed in 3000 ms
2010-06-10 11:34:30,487 [main] [com.opensymphony.xwork2.config.providers.XmlConfigurationProvider-register:140] [INFO] - Parsing configuration file [struts-default.xml]
2010-06-10 11:34:30,659 [main] [com.opensymphony.xwork2.config.providers.XmlConfigurationProvider-register:140] [INFO] - Parsing configuration file [struts-plugin.xml]
2010-06-10 11:34:30,675 [main] [com.opensymphony.xwork2.config.providers.XmlConfigurationProvider-register:140] [INFO] - Parsing configuration file [struts.xml]
2010-06-10 11:34:30,784 [main] [org.apache.struts2.spring.StrutsSpringObjectFactory-<init>:55] [INFO] - Initializing Struts-Spring integration...
2010-06-10 11:34:30,784 [main] [com.opensymphony.xwork2.spring.SpringObjectFactory-setAutowireStrategy:72] [INFO] - Setting autowire strategy to name
2010-06-10 11:34:30,800 [main] [org.apache.struts2.spring.StrutsSpringObjectFactory-<init>:87] [INFO] - ... initialized Struts-Spring integration successfully
2010-06-10 11:34:31,222 [main] [com.opensymphony.xwork2.config.providers.XmlConfigurationProvider-reloadRequiredPackages:282] [ERROR] - Unable to find parent packages tiles-default
2010-06-10 11:34:31,222 [main] [com.opensymphony.xwork2.config.providers.XmlConfigurationProvider-reloadRequiredPackages:282] [ERROR] - Unable to find parent packages web-default
2010-06-10 11:34:31,237 [main] [com.opensymphony.xwork2.util.ObjectTypeDeterminerFactory-<clinit>:28] [INFO] - Setting DefaultObjectTypeDeterminer as default ...
2010-6-10 11:34:31 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2010-6-10 11:34:31 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2010-6-10 11:34:31 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/31  config=null
2010-6-10 11:34:31 org.apache.catalina.startup.Catalina start
信息: Server startup in 5242 ms
2010-06-10 11:35:16,533 [http-8080-1] [org.apache.struts2.dispatcher.Dispatcher-serviceAction:512] [ERROR] - Could not find action or result
There is no Action mapped for namespace / and action name upload-returnValue. - [unknown location]
at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:186)
at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:41)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:494)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:422)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
2010-06-10 11:35:16,861 [http-8080-2] [org.apache.struts2.dispatcher.Dispatcher-serviceAction:512] [ERROR] - Could not find action or result
There is no Action mapped for namespace / and action name upload-iframeRequest. - [unknown location]
at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:186)
at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:41)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:494)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:422)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
6 楼 yangguoyk 2010-03-19  
发错了。这个才是http://yale.iteye.com/blog/464132#comments
5 楼 yangguoyk 2010-03-19  
发错了。这个才是:http://yale.iteye.com/blog/618718
4 楼 yangguoyk 2010-03-19  
源地址 : http://lzkyo.iteye.com/blog/464388
3 楼 lichuhui 2010-02-09  
能否共享源代码呢?
2 楼 yucai 2010-01-01  
下载怎么下呀
1 楼 yucai 2010-01-01  
没有源代码呀

相关推荐

    ssh2(struts2+spring2.5+hibernate3.3+ajax)带进度条文件上传(封装成标签

    ssh2(struts2+spring2.5+hibernate3.3+ajax)带进度条文件上传(封装成标签)

    JAVA上百实例源码以及开源项目

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    java开源包2

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    JAVA上百实例源码以及开源项目源代码

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    java开源包1

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包11

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包3

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包6

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包5

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包10

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包4

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包8

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包7

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包9

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包101

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    Java资源包01

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

Global site tag (gtag.js) - Google Analytics