文档章节

SpringMvc+ibaits 文件上传的列子

wsl_Mr
 wsl_Mr
发布于 2013/03/06 10:42
字数 1332
阅读 375
收藏 1
点赞 0
评论 3

1.web.xml 配置


<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<!-- 配置加载spring数据源信息 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>
<!-- 配置spring监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- 配置定时器监听器 -->
<listener>
        <listener-class>com.lenovo.init.AccountListener</listener-class>
  </listener>


<!-- 设置请求字符编码过滤器 -->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


<!-- 配置springMvc中央控制器 -->
<servlet>
<servlet-name>applicationContext</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>


</servlet>
<!-- 截取*.do所有请求,进行请求转向,业务分发 -->
<servlet-mapping>
<servlet-name>applicationContext</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

   <!--配置webservice.以services/结尾 -->
<servlet>
<servlet-name>CXFService</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CXFService</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>

<!-- 设置默认首页未index.jsp -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

</web-app>

2.applicationContext.xml(springMVC配置文件)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/mvc    
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
    http://www.springframework.org/schema/context  
    http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"
default-autowire="byName">




<context:annotation-config />
<context:component-scan base-package="com.lenovo" />  <!-- 自动扫描所有注解该路径 -->
<!-- 配置事务管理器 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>


<!-- 配置sqlMapClientFactory -->
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="classpath:config/sqlMapConfig.xml" />
<property name="dataSource" ref="dataSource" />
</bean>


<!-- 配置声明式事务 拦截器 -->
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transactionManager"></property>
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="create*">PROPAGATION_REQUIRED</prop>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>




<!--aop 管理*.service管理 -->
<bean
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="proxyTargetClass" value="true"></property>
<property name="beanNames">
<value>*Service</value>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>


<!-- 配置parnetDao -->
<bean id="parentDao" class="com.lenovo.dao.impl.ParentDaoImpl">
<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>


<!-- 配置parentService -->
<bean id="parentService" class="com.lenovo.service.impl.ParentServiceImpl">
<property name="parentDao" ref="parentDao"></property>
</bean>




</beans>

applicationContext-dataSource.xml(配置数据源)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" 
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>

<!-- 
<property name="url">
<value>jdbc:mysql://172.17.116.21:3306/lezhuomian?useUnicode=true&amp;continueBatchOnError=true&amp;characterEncoding=utf-8</value>
</property>
-->

<property name="url">
<value>jdbc:mysql://172.16.227.227:3306/lezhuomian?useUnicode=true&amp;continueBatchOnError=true&amp;characterEncoding=utf-8</value>
</property>
 
<property name="username">
<value>root</value>
</property>
<property name="password">
<value></value>
</property>
<property name="removeAbandoned">
<value>true</value>
</property>
<property name="defaultAutoCommit">
<value>true</value>
</property>
<property name="removeAbandonedTimeout">
<value>60</value>
</property>
<property name="validationQuery">
<value>SELECT 1</value>
</property>
<property name="logAbandoned">
<value>true</value>
</property>
<property name="testWhileIdle">
<value>true</value>
</property>
<property name="timeBetweenEvictionRunsMillis">
<value>10000</value>
</property>
<property name="minEvictableIdleTimeMillis">
<value>6000</value>
</property>
<property name="testOnBorrow">
<value>true</value>
</property>
<property name="maxActive">
<value>150</value>
</property>
<property name="maxIdle">
<value>30</value>
</property>
<property name="minIdle">
<value>10</value>
</property>
<property name="initialSize">
<value>10</value>
</property>
</bean>


</beans>

applicationContext-servlet.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
 xmlns:context="http://www.springframework.org/schema/context"
 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd  
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd  
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

 <context:annotation-config />
 <!-- 把标记了@Controller注解的类转换为bean -->
 <context:component-scan base-package="com.lenovo.servlet" />
 <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
 <!--  <bean
  class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />-->

 <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->
 <bean id="viewResolver"
  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="prefix" value="/" />
  <property name="suffix" value=".jsp"></property>
 </bean>
 
 <!-- spring的异常处理,提供对用户比较友好的错误界面,可以指定不同的异常类型 -->
 <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
  <property name="exceptionMappings">
   <props>
    <prop key="java.lang.Exception">
     errors/exception
    </prop>
   </props>
  </property>
  
 </bean>
  
   <!-- 设置响应字符编码 -->
 <bean id="multipartResolver"
  class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
  p:defaultEncoding="utf-8" />
</beans>

 


 3.业务模型Controller

@Controller
@RequestMapping("file.do")
public class FileUploadController {

      


 public FileUploadController() {
  logger.info("fileUpload init-----");
 }

 private ParentService parentService;

 @Autowired
 public void setParentService(ParentService parentService) {
  // logger.info("parentService==="+parentService);
  this.parentService = parentService;

 }

 

 

@RequestMapping(method = RequestMethod.POST, params = "method=upload1")
 public String csfileUpload(HttpServletRequest request, ModelMap model) {

  MultipartHttpServletRequest muiltRequest = (MultipartHttpServletRequest) request;
  String ztMc = request.getParameter("wjmc");
  String wjMs = request.getParameter("wjms");
  String filePath = "zt" + "/" + ztMc; //
  String fileRealPath = request.getSession().getServletContext()
    .getRealPath(filePath); // 服务器磁盘的地址
  logger.info(fileRealPath);
  File file = new File(fileRealPath);
  if (!file.exists())
   file.mkdirs();
  MultipartFile multipartFile = muiltRequest.getFile("dc_file"); // 获得文件
  String fileName = multipartFile.getOriginalFilename();
  String path = fileRealPath + File.separator + fileName;
  File fl = new File(path);

  try {
   multipartFile.transferTo(fl);
   FileToZip zip = new FileToZip();
   zip.makeFile_Zip(fileRealPath + ".zip", path);  //压缩文件
   ZtWjSc ztwj = new ZtWjSc();

   parentService.insert("insertZtWjScs", ztwj); 插入数据库
  } catch (IllegalStateException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
  return wjListAll(request, model);

 }

}

 

public class ParentDaoImpl extends SqlMapClientDaoSupport implements ParentDao {

 public void insert(String poName, Object obj) {
  getSqlMapClientTemplate().insert(poName, obj);
  System.out.println(poName + ".table,添加数据------>>");

 }

}

 

 

页面

<form id="signupForm" name="signupForm" method="post"
     action="<%=request.getContextPath()%>/file.do"
     enctype="multipart/form-data" >
      <input type="hidden" name="method" value="upload1" />
<span>主题中文名称:</span><input name="chname" type="text" size="20" id="reschname" class="resname"   />
<div id="error1" class="error1"><font color="red">中文名必填</font></div>
<div id="error11" class="error11"><font color="red">(1-5)个字符</font></div>
<br />
<span>主题英文名称:</span><input name="engname" type="text" size="20" id="resenname" class="resname"  />
<div id="error2" class="error2"><font color="red">英文名必填</font></div>
<div id="error12" class="error12"><font color="red">(1-5)个字符</font></div>
<br />
<span>版本号:</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name="vername" type="text" size="20" id="resvername"  class="resvername" />
<div id="error3" class="error3"><font color="red">版本号必填</font></div>
<div id="error13" class="error13"><font color="red">(1-8)个字符</font></div>
<br />
<span>资源包:</span>&nbsp;&nbsp;<input name="file" type="file" id="fileup" size="20" value="请上传需要打包的文件"  />
<div id="error4" class="error4"><font color="red">请上传需要打包的文件</font></div>
<div id="error5" class="error5"><font color="red">上传文件类型:zip,rar</font></div>
<br />
<span>打包进度:</span>

</form>

 

 

 

© 著作权归作者所有

共有 人打赏支持
wsl_Mr
粉丝 8
博文 59
码字总数 26504
作品 0
海淀
加载中

评论(3)

i
itxx2016
推荐国内最流行的ibatis、mybatis代码生成网站 --- fwjava.com
无需任何安装配置,直接在线生成,且十分规范好用.
现在,很多知名的互联网公司都在用它.
火龙战士
火龙战士
来个例子看看吧
吕栋
吕栋
上传个demo看看!
有没有基于springmvc+ibaits + Hadoop +hbase 的大数据架构的项目例子,供我们码农学习和了解

有没有基于springmvc+ibaits + Hadoop +hbase 的大数据架构的项目例子,供我们码农学习和了解

Baclk5 ⋅ 2015/10/09 ⋅ 10

apache,nginx上传目录无执行权限

至于为什么设置上传目录无权限这个我就不累赘了 现在比较流行的web服务有iis,apache,nginx,使用操作系统无非是windows or *nux 我们来看俩段通常对上传目录设置无权限的列子,配置如下: 引用...

ray2012 ⋅ 2012/07/24 ⋅ 0

如何快速实现HTML编辑器.NET组件

作者:未知 请作者速与本人联系 得到“素材” 首先我们需要得到一个HTML编辑器的原始代码,网上有不少这类的编辑器,如大名鼎鼎的RichTextBox,为了避免版权纠纷,以我所做得为例(暂名:Ult...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

Android应用程序如何进行系统签名

有时写一个程序需要调用系统的库,如果权限不够,是用不了库里面一些方法的 。这时就需要将apk进行系统签名了。 简单常用的方法: cmd进入当前目录:输入命令java -jar signapk.jar platfor...

tianyahala ⋅ 2015/10/08 ⋅ 0

AWK学习笔记

awk笔记 一、文本处理工具三剑客 1、grep:文本过滤器,主要功能是指定模式,显示匹配的文本。 2、sed:流编辑器,主要功能是根据指定的模式,来编辑文件。 3、awk:报告生成器,主要功能是从...

yacai1990 ⋅ 2016/02/02 ⋅ 0

Fastupload 0.31 功能完备速度飙升

fastupload 0.31版本上周已经发布,因为工作的关系,只到今天才有点时间来写一些0.31版本中深层次的东西。fastupload以前的版本,尽管在性能上取得 了不小的进步,但只支持解析文件,不支持解...

仪山湖 ⋅ 2012/08/26 ⋅ 2

fastupload API快速上手

fastupload提供两种从multipart/form-data表单请求数据中解析文件的方法,直接法和批量法 直接法: 是fastupload提供的第一种解析方法,从HttpServletRequest的InputStream中每次读取不超过8...

仪山湖 ⋅ 2012/09/02 ⋅ 17

struts2导出Excel文件

这里说下struts2导出Excel文件的列子。 列子比较简单。下面是我们导出Excel需要的jar包。 struts2需要jar包:commons-logging.jar、freemarker-2.3.8.jar、ognl-2.6.11.jar、struts2-core-2....

岳静 ⋅ 2012/07/19 ⋅ 0

用Java 如何从MP3 文件获取里面的信息系像封面 ,时长,歌手等

用Java 如何从MP3 文件获取里面的信息系像封面 ,时长,歌手等?最好带个列子。

开源中国首席董事长 ⋅ 2014/03/09 ⋅ 4

图解 android 4.0 jni Hello World 开发

之前之前用R4,现在一下就跳到用R7了,ANDROID4.0出来过后,应该有不少热机友敢望资疗吧,OK,在网上偶尔浏览的时候,看到有很多初学者希望了解在ANDROID中NDK应用的开发,不知道它是怎么开发...

鉴客 ⋅ 2011/11/21 ⋅ 3

没有更多内容

加载失败,请刷新页面

加载更多

下一页

用SQL命令查看Mysql数据库大小

要想知道每个数据库的大小的话,步骤如下: 1、进入information_schema 数据库(存放了其他的数据库的信息) use information_schema; 2、查询所有数据的大小: select concat(round(sum(da...

源哥L ⋅ 21分钟前 ⋅ 0

两个小实验简单介绍@Scope("prototype")

实验一 首先有如下代码(其中@RestController的作用相当于@Controller+@Responsebody,可忽略) @RestController//@Scope("prototype")public class TestController { @RequestMap...

kalnkaya ⋅ 25分钟前 ⋅ 0

php-fpm的pool&php-fpm慢执行日志&open_basedir&php-fpm进程管理

12.21 php-fpm的pool pool是PHP-fpm的资源池,如果多个站点共用一个pool,则可能造成资源池中的资源耗尽,最终访问网站时出现502。 为了解决上述问题,我们可以配置多个pool,不同的站点使用...

影夜Linux ⋅ 35分钟前 ⋅ 0

微服务 WildFly Swarm 管理

Expose Application Metrics and Information 要公开关于我们的微服务的有用信息,我们需要做的就是将监视器模块添加到我们的pom.xml中: 这将使在管理和监视功能得到实现。从监控角度来看,...

woshixin ⋅ 35分钟前 ⋅ 0

java连接 mongo伪集群部署遇到的坑

部署mongo伪集群 #创建mongo数据存放文件地址mkdir -p /usr/local/config1/datamkdir -p /usr/local/config2/data mkdir -p /usr/local/config3/data mkdir -p /usr/local/config1/l......

努力爬坑人 ⋅ 36分钟前 ⋅ 0

React Native & Weex 区别

JS引擎 Weex使用V8, React native使用JSCore JS开发框架 ( Js Framework ) Weex基于vue.js(2W+ star)。小巧轻量的前端开发框架,组件化,数据绑定,2.0引入virtual dom。 ReactNative使用...

东东笔记 ⋅ 44分钟前 ⋅ 1

UIkit 分页组件动态加载简单实现

1. 问题描述 使用过UIkit分页组件的都清楚,UIkit的分页不能动态刷新数据,也就是不能在点击下一页的时候,动态从后台加载数据,并且刷新页数以及该页数上的数据,下面是一个简单实现,没有做...

影狼 ⋅ 45分钟前 ⋅ 0

Mobx入门之三:Provider && inject

上一节中<App/>组件传递状态temperatures给children -- <TemperatureInput />,如果组建是一个tree, 那么属性的传递则会非常繁琐。redux使用Provider给子组件提供store, connect将子组件和s...

pengqinmm ⋅ 47分钟前 ⋅ 0

魔兽世界 7.0版本 S23/S24/S25全职业普通+精锐套

  死亡骑士   (联盟)   (部落)   (精锐)   恶魔猎手   (联盟)   (部落)   (精锐)   德鲁伊   (联盟)   (部落)   (精锐)   猎人   (联盟) ...

wangchen1999 ⋅ 54分钟前 ⋅ 0

maven顶级pom和子pom的版本号批量修改

当一个版本发布,新起一个版本时,我们只需要手动修改一下项目中pom.xml的版本号就可以了。但是如果这个maven项目有很多的子模块项目,那么一个个手动的去改就显得费时费力又繁琐了。还好,m...

ArlenXu ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部