1. 程式人生 > >圖片驗證碼,簡訊驗證碼,檔案上傳

圖片驗證碼,簡訊驗證碼,檔案上傳

1.圖片驗證碼的實現

註冊、下單、支付

目的: 1) 驗證操作者是否是人 2) 防止表單重複提交 生成驗證碼的要點: 1) 使用java程式碼生成圖片物件 BufferedImage 2) 使用Random生成隨機字串 3) 將圖片物件用 ImageIO.write(圖片物件, “jpeg|png”, 響應位元組輸出流) 返回給客戶端瀏覽器 驗證驗證碼: 要點: 1) 將驗證碼文字存入session作用域 2) 表單提交時,對比session中的驗證碼和表單中的驗證碼

2. 簡訊驗證碼

呼叫第三方的簡訊服務 阿里雲的簡訊服務使用方法: https://www.aliyun.com/ 官方網站 產品和服務=> 雲通訊=> 簡訊服務

  1. 充值
  2. 下載簡訊的sdk (軟體開發包)
  3. 生成開發者的id 和 secret 管理控制檯=>使用者資訊管理=>建立AccessKEY LTAIgtvrBBoNLvQi qv1pZHbudbqeg5hvvq7lvwc0futduw
  4. 設定簡訊模板和簡訊簽名 簡訊服務=>國內訊息 簡訊簽名:傳送者是誰 簡訊模板:規定了簡訊的內容

3. 動態include和靜態include

靜態include <%@ include file=“目標檔案” %> 1.jsp+2.jsp 合併在一起 => 一個servlet

動態include <jsp:include page=“目標檔案” /> 1.jsp 生成servlet1, 2.jsp 生成servlet2 把servlet1生成的結果和servlet2的結果合併在一起

另外注意page和file的區別 file後只能是jsp(實際存在的檔案) page除了可以是一個jsp以外,還可以是一個servlet的地址

4. jsp動作

<!-- 等價於 request.setAttribute("stu", new Student()); -->
<jsp:useBean id="stu" class="entity.Student" scope="request"/>

<!-- stu.setName("張三"); -->
<jsp:setProperty name="stu" property="name" value=
"張三"/> <!-- stu.getName(); --> <jsp:getProperty name="stu" property="name"/> <!-- 動態include --> <%--<jsp:include page="2.jsp"/>--%> <!-- 轉發 --> <%--<jsp:forward page="1.jsp"/>--%>

4. 檔案上傳

注意: 1) method必須是post 2) 必須採用複雜的格式,不能是name=value的引數格式, 必須是multipart/form-data的格式

apache提供了 commons-fileupload.jar 專門用來解析multipart/form-data的格式 commons-io.jar

// 通過程式建立目錄 new File(“e:\images”).mkdirs()