国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

如何開發一個java開源框架-----Jvn框架之實現文件的上傳以及方法封裝(第六講)八哥實力講解

2019-11-15 00:21:40
字體:
來源:轉載
供稿:網友
如何開發一個java開源框架-----Jvn框架之實現文件的上傳以及方法封裝(第六講)八哥實力講解前言

一、

博主正在教大家如何開發一個javaEE框架(Jvn框架),博客里有完整的開發視頻,每一篇博文都是一個知識點,幫助大家理解框架:

博客首頁:http://m.survivalescaperooms.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 blocke.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(),"http://.");                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(),"http://.");                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);}}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 建湖县| 赤水市| 治县。| 黄陵县| 西乡县| 宜丰县| 永寿县| 临猗县| 安吉县| 舟山市| 诏安县| 晋宁县| 扎囊县| 娄底市| 五莲县| 乐安县| 景东| 滦平县| 内江市| 政和县| 辰溪县| 疏勒县| 湖口县| 扎兰屯市| 达州市| 望都县| 罗源县| 威远县| 巫山县| 微博| 闻喜县| 正镶白旗| 八宿县| 东明县| 四川省| 论坛| 丰县| 泊头市| 玉田县| 建德市| 濮阳县|