Advertisement
KuoHsiangYu

ReadJSONFile1

Aug 25th, 2019
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.42 KB | None | 0 0
  1. package com.sample;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.FileInputStream;
  5. import java.io.FileNotFoundException;
  6. import java.io.IOException;
  7. import java.io.InputStreamReader;
  8. import java.io.UnsupportedEncodingException;
  9. import java.util.ArrayList;
  10. import java.util.HashMap;
  11. import java.util.List;
  12. import java.util.Map;
  13.  
  14. import javax.servlet.RequestDispatcher;
  15. import javax.servlet.ServletContext;
  16. import javax.servlet.ServletException;
  17. import javax.servlet.annotation.WebServlet;
  18. import javax.servlet.http.HttpServlet;
  19. import javax.servlet.http.HttpServletRequest;
  20. import javax.servlet.http.HttpServletResponse;
  21.  
  22. import org.json.JSONArray;
  23. import org.json.JSONObject;
  24.  
  25. @WebServlet("/ReadJSONFile1")
  26. public class ReadJSONFile1 extends HttpServlet {
  27.     private static final long serialVersionUID = 1L;
  28.  
  29.     @Override
  30.     protected void doGet(HttpServletRequest request, HttpServletResponse response)
  31.             throws ServletException, IOException {
  32. //      response.getWriter().append("Served at: ").append(request.getContextPath());
  33.         processRequest(request, response);
  34.     }// end of doPost method
  35.  
  36.     @Override
  37.     protected void doPost(HttpServletRequest request, HttpServletResponse response)
  38.             throws ServletException, IOException {
  39. //      doGet(request, response);
  40.         processRequest(request, response);
  41.     }// end of doPost method
  42.  
  43.     private void processRequest(HttpServletRequest request, HttpServletResponse response) throws IOException {
  44.         /* Setting the Encoding of Input Data */
  45.         request.setCharacterEncoding("UTF-8");
  46.  
  47.         /* Setting the encoding of the output data to the web page */
  48.         response.setContentType("text/html; charset=UTF-8");
  49.  
  50. //      @SuppressWarnings("unused")
  51. //      PrintWriter out = response.getWriter();
  52.  
  53.         FileInputStream fileInputStream = null;
  54.         InputStreamReader inputStreamReader = null;
  55.         BufferedReader bufferedReader = null;
  56.         try {
  57.  
  58.             String input = "";
  59.             String filePath = "/resources/productsData.json";
  60.             ServletContext servletContext = request.getServletContext();
  61.             String realFilePath = servletContext.getRealPath(filePath);
  62.  
  63.             fileInputStream = new FileInputStream(realFilePath);
  64.             inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");// 用UTF-8編碼格式讀檔案
  65.             bufferedReader = new BufferedReader(inputStreamReader);
  66.             StringBuilder stringBuilder = new StringBuilder();
  67.             while ((input = bufferedReader.readLine()) != null) {
  68.                 stringBuilder.append(input);
  69.             }
  70.             String output = stringBuilder.toString();
  71.             JSONObject json = new JSONObject(output);
  72.             JSONArray jsonArray = json.getJSONArray("products");
  73.             List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>();
  74.             Map<String, Object> item = null;
  75.             for (int i = 0; i < jsonArray.length(); i++) {
  76.                 // 取得jsonArray的物件轉成JSONObject
  77.                 JSONObject jsonItem = jsonArray.getJSONObject(i);
  78.  
  79.                 // 將jsonItem內的name和type塞到Map中
  80.                 item = new HashMap<String, Object>();
  81.                 item.put("title", jsonItem.getString("title"));
  82.                 item.put("price", jsonItem.getInt("price"));
  83.                 resultList.add(item);// 將item存入List
  84.                 item = null;
  85.             } // end of for-loop
  86.                 // resultList
  87.             request.setAttribute("resultList", resultList);
  88.  
  89.             RequestDispatcher requestDispatcher = request.getRequestDispatcher("/showProduct.jsp");
  90.             requestDispatcher.forward(request, response);
  91.         } catch (UnsupportedEncodingException e) {
  92.             System.out.println("#1");
  93.             e.printStackTrace();
  94.         } catch (FileNotFoundException e) {
  95.             System.out.println("#2");
  96.             e.printStackTrace();
  97.         } catch (IOException e) {
  98.             System.out.println("#3");
  99.             e.printStackTrace();
  100.         } catch (ServletException e) {
  101.             System.out.println("#4");
  102.             e.printStackTrace();
  103.         } finally {
  104.             if (bufferedReader != null) {
  105.                 try {
  106.                     bufferedReader.close();
  107.                     bufferedReader = null;
  108.                 } catch (IOException e) {
  109.                     System.out.println("#5");
  110.                     e.printStackTrace();
  111.                 }
  112.             }
  113.             if (inputStreamReader != null) {
  114.                 try {
  115.                     inputStreamReader.close();
  116.                     inputStreamReader = null;
  117.                 } catch (IOException e) {
  118.                     System.out.println("#6");
  119.                     e.printStackTrace();
  120.                 }
  121.             }
  122.             if (fileInputStream != null) {
  123.                 try {
  124.                     fileInputStream.close();
  125.                     fileInputStream = null;
  126.                 } catch (IOException e) {
  127.                     System.out.println("#7");
  128.                     e.printStackTrace();
  129.                 }
  130.             }
  131.         } // end of finally
  132.     }// end of processRequest method
  133.  
  134. }// end of ReadJSONFile1 Servlet class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement