Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.sample;
- import java.io.BufferedReader;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.UnsupportedEncodingException;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import javax.servlet.RequestDispatcher;
- import javax.servlet.ServletContext;
- import javax.servlet.ServletException;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.json.JSONArray;
- import org.json.JSONObject;
- @WebServlet("/ReadJSONFile1")
- public class ReadJSONFile1 extends HttpServlet {
- private static final long serialVersionUID = 1L;
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- // response.getWriter().append("Served at: ").append(request.getContextPath());
- processRequest(request, response);
- }// end of doPost method
- @Override
- protected void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- // doGet(request, response);
- processRequest(request, response);
- }// end of doPost method
- private void processRequest(HttpServletRequest request, HttpServletResponse response) throws IOException {
- /* Setting the Encoding of Input Data */
- request.setCharacterEncoding("UTF-8");
- /* Setting the encoding of the output data to the web page */
- response.setContentType("text/html; charset=UTF-8");
- // @SuppressWarnings("unused")
- // PrintWriter out = response.getWriter();
- FileInputStream fileInputStream = null;
- InputStreamReader inputStreamReader = null;
- BufferedReader bufferedReader = null;
- try {
- String input = "";
- String filePath = "/resources/productsData.json";
- ServletContext servletContext = request.getServletContext();
- String realFilePath = servletContext.getRealPath(filePath);
- fileInputStream = new FileInputStream(realFilePath);
- inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");// 用UTF-8編碼格式讀檔案
- bufferedReader = new BufferedReader(inputStreamReader);
- StringBuilder stringBuilder = new StringBuilder();
- while ((input = bufferedReader.readLine()) != null) {
- stringBuilder.append(input);
- }
- String output = stringBuilder.toString();
- JSONObject json = new JSONObject(output);
- JSONArray jsonArray = json.getJSONArray("products");
- List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>();
- Map<String, Object> item = null;
- for (int i = 0; i < jsonArray.length(); i++) {
- // 取得jsonArray的物件轉成JSONObject
- JSONObject jsonItem = jsonArray.getJSONObject(i);
- // 將jsonItem內的name和type塞到Map中
- item = new HashMap<String, Object>();
- item.put("title", jsonItem.getString("title"));
- item.put("price", jsonItem.getInt("price"));
- resultList.add(item);// 將item存入List
- item = null;
- } // end of for-loop
- // resultList
- request.setAttribute("resultList", resultList);
- RequestDispatcher requestDispatcher = request.getRequestDispatcher("/showProduct.jsp");
- requestDispatcher.forward(request, response);
- } catch (UnsupportedEncodingException e) {
- System.out.println("#1");
- e.printStackTrace();
- } catch (FileNotFoundException e) {
- System.out.println("#2");
- e.printStackTrace();
- } catch (IOException e) {
- System.out.println("#3");
- e.printStackTrace();
- } catch (ServletException e) {
- System.out.println("#4");
- e.printStackTrace();
- } finally {
- if (bufferedReader != null) {
- try {
- bufferedReader.close();
- bufferedReader = null;
- } catch (IOException e) {
- System.out.println("#5");
- e.printStackTrace();
- }
- }
- if (inputStreamReader != null) {
- try {
- inputStreamReader.close();
- inputStreamReader = null;
- } catch (IOException e) {
- System.out.println("#6");
- e.printStackTrace();
- }
- }
- if (fileInputStream != null) {
- try {
- fileInputStream.close();
- fileInputStream = null;
- } catch (IOException e) {
- System.out.println("#7");
- e.printStackTrace();
- }
- }
- } // end of finally
- }// end of processRequest method
- }// end of ReadJSONFile1 Servlet class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement