## 步驟 1 : 編輯頁面提交數據
編輯頁面提交數據到admin_category_update
~~~
<form method="post" id="editForm" action="admin_category_update"
enctype="multipart/form-data">
~~~
1. method="post" 用于提交中文
2. enctype="multipart/form-data" 用于提交二進制文件

# 步驟 2 : 調用CategoryServlet.update()方法
CategoryServlet.update() 方法和CategoryServlet.add()方法的處理很類似,有所不同之處在于增加操作一定會提交圖片,而修改不一定提交圖片。
在update()方法中做了如下操作:
1. parseUpload 獲取上傳文件的輸入流
2. parseUpload 方法會修改params 參數,并且把瀏覽器提交的name信息放在其中
3. 從params 中取出id和name信息,并根據這個id,name信息,創建新的Category對象,并借助categoryDAO,向數據庫中更新數據。
4. 根據request.getServletContext().getRealPath( "img/category"),定位到存放分類圖片的目錄
5. 文件命名以保存到數據庫的分類對象的id+".jpg"的格式命名
6. 如果通過parseUpload 獲取到的輸入流是空的,或者其中的可取字節數為0,那么就不進行上傳處理
```
if(null!=is && 0!=is.available())
```
7. 根據步驟1獲取的輸入流,把瀏覽器提交的文件,復制到目標文件
8. 借助ImageUtil.change2jpg()方法把格式真正轉化為jpg,而不僅僅是后綴名為.jpg
9. 最后客戶端跳轉到admin_category_list
```
public String update(HttpServletRequest request, HttpServletResponse response) {
Map<String, String> params = new HashMap<>();
InputStream is = super.parseUpload(request, params);
System.out.println(params);
String name = params.get("name");
int id = Integer.parseInt(params.get("id"));
Category c = new Category();
c.setId(id);
c.setName(name);
categoryDao.update(c);
File imageFolder = new File(request.getSession().getServletContext().getRealPath("img/category"));
File file = new File(imageFolder, c.getId() + ".jpg");
file.getParentFile().mkdirs();
try {
if (null != is && 0 != is.available()) {
try (FileOutputStream fos = new FileOutputStream(file)) {
byte b[] = new byte[1024 * 1024];
int length = 0;
while (-1 != (length = is.read(b))) {
fos.write(b, 0, length);
}
fos.flush();
BufferedImage img = ImageUtil.change2jpg(file);
ImageIO.write(img, "jpg", file);
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "@admin_category_list";
}
```
- 項目簡介
- 功能一覽
- 前臺
- 后臺
- 開發流程
- 需求分析-展示
- 首頁
- 產品頁
- 分類頁
- 搜索結果頁
- 購物車查看頁
- 結算頁
- 確認支付頁
- 支付成功頁
- 我的訂單頁
- 確認收貨頁
- 評價頁
- 頁頭信息展示
- 需求分析-交互
- 分類頁排序
- 立即購買
- 加入購物車
- 調整訂單項數量
- 刪除訂單項
- 生成訂單
- 訂單頁功能
- 確認付款
- 確認收貨
- 提交評價信息
- 登錄
- 注冊
- 退出
- 搜索
- 前臺需求列表
- 需求分析后臺
- 分類管理
- 屬性管理
- 產品管理
- 產品圖片管理
- 產品屬性設置
- 用戶管理
- 訂單管理
- 后臺需求列表
- 表結構設計
- 數據建模
- 表與表之間的關系
- 實體類設計
- DAO類設計
- 工具類
- CategoryDao設計
- Service業務類設計
- 后臺-分類管理
- 可運行的項目
- 靜態資源
- FILTER配合SERVLET
- JSP包含關系
- 查詢
- 分頁
- 增加
- 刪除
- 編輯
- 修改
- 后臺其他管理
- 屬性管理
- 產品管理
- 產品圖片管理
- 產品屬性值設置
- 用戶管理
- 訂單管理