标签:
一 、
博主正在教大家如何开发一个javaEE框架(Jvn框架),博客里有完整的开发视频,每一篇博文都是一个知识点,帮助大家理解框架:
博客首页:http://www.cnblogs.com/everxs/
本次内容视频以及源码下载地址:http://pan.baidu.com/s/1pJsoGDd
1,为什么要使用java的框架,以及框架能带来什么好处。 2,帮助你们理解框架的原理。
3,框架是如何实现的。 4,怎样去开发一个属于自己的java框架。
二、
目前开发的框架名字叫Jvn框架,本博主的名字:八哥解说,带领大家入门开发框架。
Jvn框架包含了以下特点:
1,mvc框架,类似StringMvc或者是struts那样的web框架,从此不在写servlet,从此不用在web.xml写servlet配置。
2,orm框架,类似hibernate或者ibatis那样的框架,从此不在为复杂的jdbc操作烦恼。
3,spring框架,类似spring的框架,从此不在为bean的管理烦恼;
4,cache缓存机制。
5,定时调度。
6,自动生成在线文档。
7,拦截器
三、
每一篇博文都有视频详细解以及对应的源码,而且视频是连续的,想学习Jvn框架是如何开发的,建议从第一篇博文 Jvn入门读起。
Recall:上节课讲到到了如何自定义Annotation和实现拦截器
这节课我们来实现:
1,文件的上传封装,已经上传文件中表单普通参数的封装。
2,常用方法的封装
实现的思路:
1,先导入 commons-fileupload-1.3.1.jar,commons-io-2.4.jar这两个包。
2,然后在JvnController里面编写getFile()和getFiles()方法。
3,传进 保存目录 ,保存文件名 进行文件的保存。
4,将表单中的普通参数放进paramMap里面。
5,通过getFormParam()获取上传文件时的普通参数。
以下是内容的视频下载地址,以及源码地址:
http://pan.baidu.com/s/1pJsoGDd
Ps:视频跟代码都会持续更新,希望大家喜欢,多多支持。
QQ:245223343 永远的八哥
下面附上我写的代码:
记住先倒入Jar包:commons-fileupload-1.3.1.jar,commons-io-2.4.jar。我的源码里面有可以直接下载。
以下是JvnController 类代码:
package com.jvn.core; import java.io.File; import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import com.jvn.kit.FileKit; import com.jvn.kit.MapKit; import com.jvn.kit.StrKit; /** * controller的父类 * @author Administrator * */ public class JvnController { /** * 创建Controller对象的时候注入两个属性 */ private HttpServletRequest request; private HttpServletResponse response; private SimpleDateFormat SDF_DATE_TIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); private SimpleDateFormat SDF_DATE = new SimpleDateFormat("yyyy-MM-dd"); private Map<String,String> paramMap = new HashMap<String, String>(); public HttpServletRequest getRequest() { return request; } public void setRequest(HttpServletRequest request) { this.request = request; } public HttpServletResponse getResponse() { return response; } public void setResponse(HttpServletResponse response) { this.response = response; } /** * 下面是一些输入的方法 */ /** * 转int * @param paramName * @param defaultValue * @return */ public int getInt(String paramName,int defaultValue){ int result = defaultValue; try{ result = Integer.parseInt(getParam(paramName)); }catch(Exception e){ } return result; } /** * 转int * @param paramName * @return */ public int getInt(String paramName){ int result = Integer.parseInt(getParam(paramName)); return result; } /** * 转double * @param paramName * @param defaultValue * @return */ public double getDouble(String paramName,double defaultValue){ double result = defaultValue; try{ result = Double.parseDouble(getParam(paramName)); }catch(Exception e){ } return result; } /** * 转double * @param paramName * @param defaultValue * @return */ public double getDouble(String paramName){ double result = Double.parseDouble(getParam(paramName)); return result; } /** * 转float * @param paramName * @param defaultValue * @return */ public float getFloat(String paramName,float defaultValue){ float result = defaultValue; try{ result = Float.parseFloat(getParam(paramName)); }catch(Exception e){ } return result; } /** * 转float * @param paramName * @param defaultValue * @return */ public float getFloat(String paramName){ float result = Float.parseFloat(getParam(paramName)); return result; } /** * 转boolen * @param paramName * @param defaultValue * @return */ public boolean getBoolean(String paramName){ boolean result = Boolean.parseBoolean(getParam(paramName)); return result; } /** * 转boolean * @param paramName * @param defaultValue * @return */ public boolean getBoolean(String paramName,boolean defaultValue){ boolean result = defaultValue; try{ result = Boolean.parseBoolean(getParam(paramName)); }catch(Exception e){ } return result; } /** * 转date * @param paramName * @param defaultValue * @return */ public Date getDate(String paramName ,Date defaultValue){ Date date = defaultValue; try{ date = SDF_DATE.parse(getParam(paramName)); }catch(Exception e){ } return date; } /** * 转date * @param paramName * @param defaultValue * @return */ public Date getDate(String paramName){ Date date = null; try { date = SDF_DATE.parse(getParam(paramName)); } catch (ParseException e) { e.printStackTrace(); throw new RuntimeException(e); } return date; } /** * 转date * @param paramName * @param defaultValue * @return */ public Date getDateTime(String paramName ,Date defaultValue){ Date date = defaultValue; try{ date = SDF_DATE_TIME.parse(getParam(paramName)); }catch(Exception e){ } return date; } /** * 转date * @param paramName * @param defaultValue * @return */ public Date getDateTime(String paramName){ Date date = null; try { date = SDF_DATE_TIME.parse(getParam(paramName)); } catch (ParseException e) { e.printStackTrace(); throw new RuntimeException(e); } return date; } public String getParam(String paramName){ return request.getParameter(paramName); } public String getParam(String paramName,String defaultValue){ if(request.getParameter(paramName)==null){ return defaultValue; }else{ return request.getParameter(paramName); } } /** * 取出request的paramMap转成 key -->value[0]的map * @return */ public Map<String,String> getMap(){ Map<String,String[]> map = request.getParameterMap(); Map<String,String> _map = new HashMap<String, String>(); for(String s : map.keySet()){ String[] values = map.get(s); _map.put(s, values[0]); } return _map; } /** * 传进clazz返回对象 * @param clazz * @return */ public Object getObject(Class clazz){ Object object = MapKit.mapToObject(getMap(), clazz); return object; } /** * 返回String * @param content */ public void renderString(String content){ try { response.getWriter().write(content); } catch (IOException e) { e.printStackTrace(); } } /** * 返回一个页面 */ public void render(String view){ try { getRequest().getRequestDispatcher(view).forward(getRequest(),getResponse()); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } } /** * 重定向到一个Url * @param actionName */ public void redirect(String actionName){ try { getResponse().sendRedirect(actionName); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 获取上传过来的文件,此处需要增加 commons-fileupload.jar,commons-io.jar * @param dirPath * @param fileName * @param maxSize 1024*1024*1M * @return */ public void getFile(String dirPath,String fileNamePrefix,int maxSize){ try{ DiskFileItemFactory diskFactory = new DiskFileItemFactory(); // threshold 极限、临界值,即硬盘缓存 1M diskFactory.setSizeThreshold(40 * 1024 * 1024); String temPath = request.getRealPath("/tmpFile"); File dir = new File(temPath); if(!dir.exists()){ dir.mkdirs(); } System.out.println("临时文件夹路径"+temPath); // repository 贮藏室,即临时文件目录 diskFactory.setRepository(new File(temPath)); ServletFileUpload upload = new ServletFileUpload(diskFactory); upload.setHeaderEncoding(JvnConfig.CONSTANT.getEncoding()); // 设置允许上传的最大文件大小 4M 4 * 1024 * 1024 upload.setSizeMax(maxSize); // 解析HTTP请求消息头 List fileItems = upload.parseRequest(request); Iterator iter = fileItems.iterator(); List<Object> list =new ArrayList<Object>(); while(iter.hasNext()) { FileItem item = (FileItem)iter.next(); if(item.isFormField()) { //表单内容 String name = item.getFieldName().trim(); String value = item.getString(JvnConfig.CONSTANT.getEncoding()); paramMap.put(name, value); }else{ //文件内容 String type = StrKit.getEndType(item.getName(),"\\."); FileKit.saveFile(dirPath+fileNamePrefix+"."+type, item.getInputStream()); } /** * 这里将数据保存到数据库 */ } }catch(Exception e){ e.getStackTrace(); throw new RuntimeException(e); } } /** * 获取上传过来的文件,此处需要增加 commons-fileupload.jar,commons-io.jar * @param dirPath * @param fileName * @param maxSize 1024*1024*1M * @return */ public void getFiles(String dirPath,String []fileNamePrefix,int maxSize){ try{ DiskFileItemFactory diskFactory = new DiskFileItemFactory(); // threshold 极限、临界值,即硬盘缓存 1M diskFactory.setSizeThreshold(40 * 1024 * 1024); String temPath = request.getRealPath("/tmpFile"); File dir = new File(temPath); if(!dir.exists()){ dir.mkdirs(); } System.out.println("临时文件夹路径"+temPath); // repository 贮藏室,即临时文件目录 diskFactory.setRepository(new File(temPath)); ServletFileUpload upload = new ServletFileUpload(diskFactory); upload.setHeaderEncoding(JvnConfig.CONSTANT.getEncoding()); // 设置允许上传的最大文件大小 4M 4 * 1024 * 1024 upload.setSizeMax(maxSize); // 解析HTTP请求消息头 List fileItems = upload.parseRequest(request); Iterator iter = fileItems.iterator(); List<Object> list =new ArrayList<Object>(); int count = 0; while(iter.hasNext()) { FileItem item = (FileItem)iter.next(); if(item.isFormField()) { //表单内容 String name = item.getFieldName().trim(); String value = item.getString(JvnConfig.CONSTANT.getEncoding()); paramMap.put(name, value); }else{ //文件内容 String type = StrKit.getEndType(item.getName(),"\\."); if(count>(fileNamePrefix.length-1)){ count = 0; } FileKit.saveFile(dirPath+fileNamePrefix[count]+"."+type, item.getInputStream()); count++; } /** * 这里将数据保存到数据库 */ } }catch(Exception e){ e.getStackTrace(); throw new RuntimeException(e); } } /** * 获取上传文件,表单的普通参数 * @param attr * @return */ public String getFormParm(String attr){ return paramMap.get(attr); } }
如何开发一个java开源框架-----Jvn框架之实现文件的上传以及方法封装(第六讲)八哥实力讲解
标签:
原文地址:http://www.cnblogs.com/everxs/p/4536727.html