09(maven+SSH)網上商城項目實戰之使用jersey實現應用服務器和圖片服務器分離

1.模擬應用服務器(客戶端):

所需jar:

commons-io-1.3.2.jar,
jersey-client-1.8.jar,
jersey-core-1.8.jar


編輯客戶端代碼:

       // 圖片名稱生成策略
        DateFormat df = new SimpleDateFormat("yyyyMMddHHmmssSSS");
        // 圖片名稱一部分
        String format = df.format(new Date());
        // 隨機三位數
        Random r = new Random();
        // n 1000 0-999 99
        for (int i = 0; i < 3; i++) {
            format += r.nextInt(10);
        }
        // 保存數據庫
        String path = "upload/" + format + ".jpg";
        // 實例化一個Jersey
        Client client = new Client();
        // 另一臺服務器的請求路徑是?
        String url = "http://localhost:9999/imaweb/" + path;
        // 設置請求路徑
        WebResource resource = client.resource(url);
        try {
            byte[] buf = FileUtils.readFileToByteArray(new File("D:\\01.jpg"));
            resource.put(String.class, buf);
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("發送完畢");


2. 創建一個WEB(imaweb)工程:

     創建一個upload 文件夾,用於存儲圖片

     工程發佈的前,修改tomcat配置文件web.xml:

PUT,向指定的目錄上傳附加文件;

DELETE,刪除指定的資源;

COPY,將指定的資源複製到Destination消息頭指定的位置;

MOVE,將指定的資源移動到Destination消息頭指定的位置;

SEARCH,在一個目錄路徑中搜索資源。

PROPFIND,獲取與指定資源有關的信息,如作者、大小與內容類型。

TRACE,在響應中返回服務器收到的原始請求。可以使用這種方法避開阻止跨站點腳本的防禦。


 在tomcat web.xml文件中配置org.apache.catalina.servlets.DefaultServlet的 

  1. <init-param>   
       <param-name>readonly</param-name>   
       <param-value>false</param-value>   
    </init-param>
  2. readonly參數默認是true,即不允許delete和put操作,
  3. 所以通過XMLHttpRequest對象的put或者delete方法訪問就會報告http 403錯誤。
  4. 爲REST服務起見,應該設置該屬性爲false。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章