婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > JSP+Servlet實(shí)現(xiàn)文件上傳到服務(wù)器功能

JSP+Servlet實(shí)現(xiàn)文件上傳到服務(wù)器功能

熱門標(biāo)簽:自動(dòng)外呼系統(tǒng)怎么防止封卡 電話機(jī)器人案例 vue 地圖標(biāo)注拖拽 土地證宗地圖標(biāo)注符號(hào) 鎮(zhèn)江云外呼系統(tǒng)怎么樣 客服外呼系統(tǒng)呼叫中心 保定電銷機(jī)器人軟件 成都銷售外呼系統(tǒng)公司 電話機(jī)器人銷售公司嗎

本文實(shí)例為大家分享了JSP+Servlet實(shí)現(xiàn)文件上傳到服務(wù)器功能的具體代碼,供大家參考,具體內(nèi)容如下

項(xiàng)目目錄結(jié)構(gòu)大致如下:

正如我在上圖紅線畫的三個(gè)東西:Dao、service、servlet 這三層是主要的結(jié)構(gòu),類似 MVC 架構(gòu),Dao是模型實(shí)體類(邏輯層),service是服務(wù)層,servlet是視圖層,三者協(xié)作共同完成項(xiàng)目。

這里的User是由user表來定義的一個(gè)類,再封裝增刪改查等操作,實(shí)現(xiàn)從數(shù)據(jù)庫查詢與插入,修改與刪除等操作,并實(shí)現(xiàn)了分頁操作,也實(shí)現(xiàn)了將圖片放到服務(wù)器上運(yùn)行的效果。

Dao層:主要實(shí)現(xiàn)了User類的定義,接口IUserDao的定義與實(shí)現(xiàn)(UserDaoImpl);

service層:直接定義一個(gè)接口類IUserService,與IUserDao相似,再實(shí)現(xiàn)其接口類UserServiceImpl,直接實(shí)例化UserDaoImpl再調(diào)用其方法來實(shí)現(xiàn)自己的方法,重用了代碼。詳見代碼吧;

servlet層:起初是將表User 的每個(gè)操作方法都定義成一個(gè)servlet 去實(shí)現(xiàn),雖然簡單,但是太多了,不好管理,于是利用 基類BaseServlet 實(shí)現(xiàn)了“反射機(jī)制”,通過獲取的 action 參數(shù)自己智能地調(diào)用對(duì)應(yīng)的方法,而UserServlet則具體實(shí)現(xiàn)自己的方法,以供調(diào)用,方便許多,詳見之前的博文或下述代碼。

將文件上傳到 tomcat 服務(wù)器的編譯后運(yùn)行的過程的某個(gè)文件關(guān)鍵要在每次編譯后手動(dòng)為其創(chuàng)建該文件夾來存放相應(yīng)的上傳文件,否則會(huì)導(dǎo)致每次重啟 tomcat 服務(wù)器后該編譯后的工程覆蓋了原先的,導(dǎo)致上傳文件存放的文件夾不存在,導(dǎo)致代碼找不到該文件夾而報(bào)錯(cuò),即上傳不成功。如下圖所示:

主要是考慮圖片路徑的問題,手工設(shè)置路徑肯定不能保證不重復(fù),所以取到上傳圖片的后綴名后利用隨機(jī)生成的隨機(jī)數(shù)作為圖片名,這樣就不會(huì)重復(fù)名字了:

String extendedName = picturePath.substring(picturePath.lastIndexOf("."),// 截取從最后一個(gè)'.'到字符串結(jié)束的子串。
 picturePath.length());
 // 把文件名稱重命名為全球唯一的文件名
 String uniqueName = UUID.randomUUID().toString();
 saveFileName = uniqueName + extendedName;// 拼接路徑名

增加用戶時(shí)代碼如下:

 // 增
 public void add(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
 System.out.println("add方法被調(diào)用");
 // 獲取數(shù)據(jù)
 int id = 0;
 String username = null;
 String password = null;
 String sex = null;
 Date birthday = null;
 String address = null;
 String saveFileName = null;
 String picturePath = null;
 // 得到表單是否以enctype="multipart/form-data"方式提交
 boolean isMulti = ServletFileUpload.isMultipartContent(request);
 if (isMulti) {
 // 通過FileItemFactory得到文件上傳的對(duì)象
 FileItemFactory fif = new DiskFileItemFactory();
 ServletFileUpload upload = new ServletFileUpload(fif);
 
 try {
 ListFileItem> items = upload.parseRequest(request);
 for (FileItem item : items) {
 // 判斷是否是普通表單控件,或者是文件上傳表單控件
 boolean isForm = item.isFormField();
 if (isForm) {// 是普通表單控件
 String name = item.getFieldName();
 if ("id".equals(name)) {
 id = Integer.parseInt(item.getString("utf-8"));
 System.out.println(id);
 }
 if ("sex".equals(name)) {
 sex = item.getString("utf-8");
 System.out.println(sex);
 }
 if ("username".equals(name)) {
 username = item.getString("utf-8");
 System.out.println(username);
 }
 if ("password".equals(name)) {
 password = item.getString("utf-8");
 System.out.println(password);
 }
 if ("birthday".equals(name)) {
 String birthdayStr = item.getString("utf-8");
 SimpleDateFormat sdf = new SimpleDateFormat(
  "yyyy-MM-dd");
 try {
 birthday = sdf.parse(birthdayStr);
 } catch (ParseException e) {
 e.printStackTrace();
 }
 System.out.println(birthday);
 }
 if ("address".equals(name)) {
 address = item.getString("utf-8");
 System.out.println(address);
 }
 if ("picturePath".equals(name)) {
 picturePath = item.getString("utf-8");
 System.out.println(picturePath);
 }
 } else {// 是文件上傳表單控件
 // 得到文件名 xxx.jpg
 String sourceFileName = item.getName();
 // 得到文件名的擴(kuò)展名:.jpg
 String extendedName = sourceFileName.substring(
 sourceFileName.lastIndexOf("."),
 sourceFileName.length());
 // 把文件名稱重命名為全球唯一的文件名
 String uniqueName = UUID.randomUUID().toString();
 saveFileName = uniqueName + extendedName;
 // 得到上傳到服務(wù)器上的文件路徑
 // C:\\apache-tomcat-7.0.47\\webapps\\taobaoServlet4\\upload\\xx.jpg
 String uploadFilePath = request.getSession()
 .getServletContext().getRealPath("upload/");
 File saveFile = new File(uploadFilePath, saveFileName);
 // 把保存的文件寫出到服務(wù)器硬盤上
 try {
 item.write(saveFile);
 } catch (Exception e) {
 e.printStackTrace();
 }
 }
 }
 } catch (NumberFormatException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 } catch (FileUploadException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 }
 // 2、封裝數(shù)據(jù)
 User user = new User(id, username, password, sex, birthday, address,
 saveFileName);
 // 3、調(diào)用邏輯層API
 IUserService iUserService = new UserServiceImpl();
 // 4、控制跳轉(zhuǎn)
 HttpSession session = request.getSession();
 if (iUserService.save(user) > 0) {
 System.out.println("添加新用戶成功!");
 ListUser> users = new ArrayListUser>();
 users = iUserService.listAll();
 session.setAttribute("users", users);
 response.sendRedirect("UserServlet?action=getPage");
 } else {
 System.out.println("添加新用戶失敗!");
 PrintWriter out = response.getWriter();
 out.print("script type='text/javascript'>");
 out.print("alert('添加新用戶失??!請(qǐng)重試!');");
 out.print("/script>");
 }
 }

修改用戶時(shí)注意考慮圖片更改和沒更改這兩種情況,圖片更改時(shí)要先獲取原圖片并刪除其在服務(wù)器上的圖片,再添加新圖片到服務(wù)器;圖片不更改時(shí)則無需更新圖片路徑。

 // 改
 public void update(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
 System.out.println("update方法被調(diào)用");
 HttpSession session = request.getSession();
 // 獲取數(shù)據(jù)
 int id = (int)session.getAttribute("id");
 String username = null;
 String password = null;
 String sex = null;
 Date birthday = null;
 String address = null;
 String saveFileName = null;
 String picturePath = null;
 IUserService iUserService = new UserServiceImpl();
 // 得到表單是否以enctype="multipart/form-data"方式提交
 boolean isMulti = ServletFileUpload.isMultipartContent(request);
 if (isMulti) {
 // 通過FileItemFactory得到文件上傳的對(duì)象
 FileItemFactory fif = new DiskFileItemFactory();
 ServletFileUpload upload = new ServletFileUpload(fif);
 try {
 ListFileItem> items = upload.parseRequest(request);
 for (FileItem item : items) {
 // 判斷是否是普通表單控件,或者是文件上傳表單控件
 boolean isForm = item.isFormField();
 if (isForm) {// 是普通表單控件
 String name = item.getFieldName();
 if ("sex".equals(name)) {
 sex = item.getString("utf-8");
 System.out.println(sex);
 }
 if ("username".equals(name)) {
 username = item.getString("utf-8");
 System.out.println(username);
 }
 if ("password".equals(name)) {
 password = item.getString("utf-8");
 System.out.println(password);
 }
 if ("birthday".equals(name)) {
 String birthdayStr = item.getString("utf-8");
 SimpleDateFormat sdf = new SimpleDateFormat(
  "yyyy-MM-dd");
 try {
 birthday = sdf.parse(birthdayStr);
 } catch (ParseException e) {
 e.printStackTrace();
 }
 System.out.println(birthday);
 }
 if ("address".equals(name)) {
 address = item.getString("utf-8");
 System.out.println(address);
 }
 if ("picturePath".equals(name)) {
 picturePath = item.getString("utf-8");
 System.out.println(picturePath);
 }
 } else {// 是文件上傳表單控件
 // 得到文件名 xxx.jpg
 picturePath = item.getName();
 if (picturePath != "") {// 有選擇要上傳的圖片
 // 得到文件名的擴(kuò)展名:.jpg
 String extendedName = picturePath.substring(
  picturePath.lastIndexOf("."),// 截取從最后一個(gè)'.'到字符串結(jié)束的子串。
  picturePath.length());
 // 把文件名稱重命名為全球唯一的文件名
 String uniqueName = UUID.randomUUID().toString();
 saveFileName = uniqueName + extendedName;// 拼接路徑名
 // 得到上傳到服務(wù)器上的文件路徑
 // C:\\apache-tomcat-7.0.47\\webapps\\CommonhelloWorldServlet\\upload\\xx.jpg
 String uploadFilePath = request.getSession()
  .getServletContext().getRealPath("upload/");
 File saveFile = new File(uploadFilePath,
  saveFileName);
 // 把保存的文件寫出到服務(wù)器硬盤上
 try {
 item.write(saveFile);
 } catch (Exception e) {
 e.printStackTrace();
 }
 // 3、調(diào)用邏輯層 API
 // 根據(jù)id查詢用戶并獲取其之前的圖片
 User user = iUserService.getUserById(id);
 String oldPic = user.getPicturePath();
 String oldPicPath = uploadFilePath + "\\" + oldPic;
 File oldPicTodelete = new File(oldPicPath);
 oldPicTodelete.delete();// 刪除舊圖片
 }
 }
 }
 } catch (NumberFormatException e) {
 e.printStackTrace();
 } catch (FileUploadException e) {
 e.printStackTrace();
 }
 }
 System.out.println(id + "\t" + username + "\t" + password + "\t" + sex
 + "\t" + address + "\t" + picturePath + "\t" + birthday);
 
 // 2、封裝數(shù)據(jù)
 User user = new User(id, username, password, sex, birthday, address,
 saveFileName);
 
 if (iUserService.update(user) > 0) {
 System.out.println("修改數(shù)據(jù)成功!");
 ListUser> users = new ArrayListUser>();
 users = iUserService.listAll();
 session.setAttribute("users", users);
 // 4、控制跳轉(zhuǎn)
 response.sendRedirect("UserServlet?action=getPage");
 } else {
 System.out.println("修改數(shù)據(jù)失??!");
 PrintWriter out = response.getWriter();
 out.print("script type='text/javascript'>");
 out.print("alert('修改數(shù)據(jù)失??!請(qǐng)重試!');");
 out.print("/script>");
 }
 }

刪除的話就比較簡單了,直接獲取原圖片路徑并刪除,則原圖片在服務(wù)器上被刪除。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • js實(shí)現(xiàn)圖片上傳到服務(wù)器和回顯
  • Node.js HTTP服務(wù)器中的文件、圖片上傳的方法
  • NodeJs實(shí)現(xiàn)簡易WEB上傳下載服務(wù)器
  • 詳解Node.js一行命令上傳本地文件到服務(wù)器
  • js實(shí)現(xiàn)圖片粘貼上傳到服務(wù)器并展示的實(shí)例
  • 基于HTML5+js+Java實(shí)現(xiàn)單文件文件上傳到服務(wù)器功能
  • 利用nodejs監(jiān)控文件變化并使用sftp上傳到服務(wù)器
  • NodeJS與HTML5相結(jié)合實(shí)現(xiàn)拖拽多個(gè)文件上傳到服務(wù)器的實(shí)現(xiàn)方法
  • Ajax上傳實(shí)現(xiàn)根據(jù)服務(wù)器端返回?cái)?shù)據(jù)進(jìn)行js處理的方法
  • js實(shí)現(xiàn)上傳圖片到服務(wù)器

標(biāo)簽:麗江 成都 臺(tái)灣 內(nèi)江 懷化 天津 重慶 公主嶺

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《JSP+Servlet實(shí)現(xiàn)文件上傳到服務(wù)器功能》,本文關(guān)鍵詞  JSP+Servlet,實(shí)現(xiàn),文件,上,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《JSP+Servlet實(shí)現(xiàn)文件上傳到服務(wù)器功能》相關(guān)的同類信息!
  • 本頁收集關(guān)于JSP+Servlet實(shí)現(xiàn)文件上傳到服務(wù)器功能的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    成人三级在线视频| 久久久亚洲高清| 色婷婷精品大视频在线蜜桃视频| 日韩在线一区二区| 欧美精选午夜久久久乱码6080| 精品国产一区二区国模嫣然| 日韩电影免费在线看| 91精品久久久久久蜜臀| 日本免费在线视频不卡一不卡二| 欧美午夜精品久久久久久超碰| 亚洲激情六月丁香| 在线精品国精品国产尤物884a| 亚洲国产日韩a在线播放性色| 欧美日韩国产片| 免费的成人av| 国产无遮挡一区二区三区毛片日本| 久久久久国产免费免费 | 91网址在线看| 欧美精品一区二区三区久久久| 捆绑调教美女网站视频一区| 久久这里只有精品6| 成人免费毛片app| 一区2区3区在线看| 日韩欧美色综合网站| 成人午夜电影久久影院| 蜜桃一区二区三区在线观看| 国内成+人亚洲+欧美+综合在线 | 亚洲国产欧美日韩另类综合 | 欧美电影在哪看比较好| 日韩精品一级中文字幕精品视频免费观看| 欧美日韩国产免费一区二区| 成人免费视频国产在线观看| 爽好多水快深点欧美视频| 国产日韩精品久久久| 在线观看国产91| 国产盗摄视频一区二区三区| 午夜欧美在线一二页| 国产精品久久久久久久久久久免费看 | 欧美男生操女生| 成人晚上爱看视频| 久久99精品国产麻豆不卡| 亚洲免费观看高清完整版在线观看熊| 色婷婷久久久亚洲一区二区三区| 在线观看日韩电影| 国产99精品视频| 国产精品乱码妇女bbbb| 欧美日韩在线播放| 99精品偷自拍| 国产一区二区三区观看| 视频一区视频二区中文| 亚洲欧洲综合另类| 久久久一区二区| 久久综合久久鬼色| 欧美va亚洲va香蕉在线| 欧美久久一二区| 色94色欧美sute亚洲线路一ni| 国产不卡免费视频| 激情综合网最新| 久久精品免费看| 免费观看日韩av| 久久精品噜噜噜成人88aⅴ| 欧美精品少妇一区二区三区| 欧美日韩黄视频| 欧美三区在线视频| 欧美曰成人黄网| 欧美羞羞免费网站| 色天天综合色天天久久| 欧美影院一区二区三区| 在线免费观看一区| 欧美日韩高清一区二区三区| 欧美日本免费一区二区三区| 国产精品美女一区二区| 亚洲成人免费av| 亚洲va欧美va人人爽| 蜜臀精品一区二区三区在线观看 | 亚洲欧美一区二区三区孕妇| 亚洲三级视频在线观看| 一区二区三区精品视频在线| 亚洲永久精品国产| 午夜欧美2019年伦理| 午夜精品免费在线观看| 另类调教123区| 精品一区二区三区在线视频| 国产欧美一区二区三区网站| 国产精品天天看| 一区二区成人在线观看| 亚洲不卡av一区二区三区| 极品少妇xxxx精品少妇| 91色porny在线视频| 欧美日韩成人一区| 精品国产1区2区3区| 国产精品三级在线观看| 五月天激情综合网| 国产揄拍国内精品对白| 欧美色视频一区| 99久久精品免费看| 777午夜精品免费视频| 久久亚洲一级片| 另类小说视频一区二区| 欧美亚洲精品一区| 久久综合久久综合九色| 亚洲一区在线电影| 极品少妇xxxx精品少妇| 91视频.com| 久久久久亚洲蜜桃| 亚洲午夜免费福利视频| 高清国产一区二区| 欧美精品色一区二区三区| 国产精品天美传媒沈樵| 捆绑紧缚一区二区三区视频| 在线亚洲+欧美+日本专区| www国产成人免费观看视频 深夜成人网| 91免费看片在线观看| 日韩一级成人av| 亚洲图片欧美色图| 成人黄色片在线观看| 日韩视频一区在线观看| 一区二区三区日韩| 成人手机电影网| 久久久久久免费| 美日韩黄色大片| 欧美三级电影在线看| 中文字幕日韩欧美一区二区三区| 极品少妇xxxx偷拍精品少妇| 欧美精品一区二区三区高清aⅴ | 日韩欧美高清在线| 自拍偷拍欧美精品| 国产电影一区在线| 精品国产伦一区二区三区观看方式 | 成人小视频在线| 精品人伦一区二区色婷婷| 亚洲成国产人片在线观看| 色菇凉天天综合网| 亚洲免费av高清| 91片黄在线观看| 久久久精品日韩欧美| 国产麻豆一精品一av一免费| 国产一区二区毛片| 精品久久久久久久久久久久包黑料| 洋洋av久久久久久久一区| 91视视频在线直接观看在线看网页在线看 | 日韩一区二区精品| 秋霞午夜av一区二区三区| 欧美日韩三级视频| 亚洲大片在线观看| 欧美日韩久久一区二区| 日韩经典一区二区| 51精品秘密在线观看| 国产综合成人久久大片91| 国产精品一区专区| 久久久亚洲国产美女国产盗摄| 国产成人精品aa毛片| 久久精品一二三| 成人av动漫在线| 国产精品毛片久久久久久 | 精品在线观看免费| www国产成人| 91亚洲男人天堂| 一二三区精品视频| 欧美一区二区国产| 国产揄拍国内精品对白| 另类中文字幕网| 欧美成人三级电影在线| 成人美女在线视频| 一区二区在线观看免费视频播放| 欧美中文字幕久久| 另类小说色综合网站| 欧美亚洲一区二区在线| 视频一区视频二区中文| 国产亚洲欧美色| 欧洲另类一二三四区| 久久精品免费观看| 亚洲精品国产无天堂网2021| 日韩一区二区三区电影在线观看| 国模大尺度一区二区三区| 中文字幕欧美一区| 欧美一区二区三区四区久久| 国产精品伊人色| 亚洲国产中文字幕在线视频综合| 日韩女优毛片在线| 国产三级欧美三级日产三级99| 欧美激情综合在线| 欧美日韩国产影片| 成人高清av在线| 老司机精品视频在线| 亚洲美女在线国产| 日韩欧美一区二区在线视频| 91婷婷韩国欧美一区二区| 精品制服美女丁香| 亚洲成人激情自拍| 久久久91精品国产一区二区三区| 97精品久久久午夜一区二区三区| 看片的网站亚洲| 亚洲成人免费视频| 亚洲欧美二区三区| 国产婷婷色一区二区三区四区 | 亚洲成人动漫av| 日韩avvvv在线播放| 国产精品福利影院| 久久综合给合久久狠狠狠97色69|