Ejemplo n.º 1
0
  @Override
  public void execute(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {

    HttpSession session = request.getSession();
    String url = "/error.jsp";
    String[] oneDiaryContents = null;
    List<DiaryDTO> dlist = null;
    BoardDTO oneDiary = null;
    DiaryDTO diaryDTO = null;
    BoardDTO tmpDiary = null;
    String oneDiaryImg = null;
    String userid = null;
    UserDTO user = null;
    String index = null;
    int indexInt = 0;

    // 14-05-14 성훈 추가 일기접근 번호(게시판번호, 전체일기 인덱스번호)
    if (request.getParameter("index") != null) index = request.getParameter("index");
    try {
      user = (UserDTO) session.getAttribute("user");
      userid = user.getUserid();
      // 다른 아이디를 클릭할 때
      if (request.getParameter("userid") != null) { // 만약 userid 파라미터를 넘겨 받았다면
        if (userid != request.getParameter("userid")) { // 그리고 만약 세션 userid와 파라미터userid가 다르다면
          userid = request.getParameter("userid"); // userid에 파라미터userid를 저장하기
          user = UserDAO.logCheck(userid);
        }
      }
      dlist = DiaryDAO.selectAllDiary(user); // user정보를 이용하여 전체 일기 리스트받아오기

      /**
       * 14-05-14 성훈 추가: 일기접근 번호(게시판번호, 일기번호) 이전글, 다음글로 액션에 들어올 땐 if문으로 메인, 달력 페이지의 미리보기 버튼으로 액션들어올
       * 땐 else if 문으로 접근
       *
       * <p>14-05-21 성훈 수정: 기존에 일기번호로 접근했던 것을 user에 해당하는 전체일기의 index로 접근
       */
      if (index != null) { // 이전글, 다음글 클릭하여 들어올 경우
        if (Integer.parseInt(index) < 0 || Integer.parseInt(index) > dlist.size() - 1)
          throw new IndexOutOfBoundsException("페이지의 끝입니다.");
        // 이전글, 다음글 클릭하여 얻은 index가 정해진 범위를 초과하면 Exception발생!
        // diaryDTO =
        // TestDAO.getOneDiary(dlist.get(Integer.parseInt(index)).getDbrdno(),user.getUserno());
        diaryDTO = dlist.get(Integer.parseInt(index));
        // 이전글, 다음글 클릭하여 얻은 index와 현재 user정보에 해당하는 diaryDTO가져오기
      } else if (request.getParameter("brdno") != null) // 미리보기 버튼 클릭하여 들어올 경우
      diaryDTO = DiaryDAO.getJustDiary(Integer.parseInt(request.getParameter("brdno")));
      for (DiaryDTO dto : dlist)
        if (dto.getBrdno() == diaryDTO.getBrdno()) indexInt = dlist.indexOf(dto);
      // 전체 일정중 현재 보여지는 일기에 해당하는 index를 구함

      oneDiary = DiaryDAO.selectOneDiary(diaryDTO.getBrdno());
      // 14-05-26 성훈수정: 다이어리 컨텐츠 줄바꿈 추가
      oneDiaryContents = oneDiary.getBrdcontent().replaceAll("\r\n", "<br/>").split("!split!");

      // 14-05-13 성훈 수정: 이미지 경로가 null인지 확인하는 조건 수정
      if (oneDiaryContents[0].equals(null) || oneDiaryContents[0].trim().length() == 0) {
        request.setAttribute("oneDiaryImg", null);
      } else {
        oneDiaryImg = oneDiaryContents[0];
        request.setAttribute("oneDiaryImg", oneDiaryImg);
      }

      // 14-05-14 성훈 수정: diarydto를 받는 tmpDiary를 만들어서 content에 이미지 경로 제외시키도록 설정
      tmpDiary = oneDiary;
      tmpDiary.setBrdcontent(oneDiaryContents[1]);

      request.setAttribute("user", user);
      request.setAttribute("index", indexInt); // 현재 보여지는 일정의 index 번호 setAttribute
      request.setAttribute("oneDiary", tmpDiary); // 선택된 일정의 전체정보 setAttribute
      url = "miniHome/oneDiary.jsp";

    } catch (SQLException e) {
      request.setAttribute("errorMsg", e.getMessage());
    } catch (Exception e) {
      request.setAttribute("errorMsg", e.getMessage());
      e.printStackTrace();
    }
    request.getRequestDispatcher(url).forward(request, response);
  }
Ejemplo n.º 2
0
  @Override
  public void execute(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    HttpSession session = request.getSession();
    String url = "/error.jsp";
    UserDTO user = null;
    String userid = null;
    List<VisitDTO> visitList = null;
    List<VisitDTO> myList = null;
    List<CommentDTO> myOneCmtList = null;
    List<List<CommentDTO>> myWholeCmtList = null;
    List<VisitDTO> yourList = null;
    List<CommentDTO> yourOneCmtList = null;
    List<List<CommentDTO>> yourWholeCmtList = null;
    try {
      user = (UserDTO) session.getAttribute("user");
      userid = user.getUserid();
      // 다른 아이디를 클릭할 때
      if (request.getParameter("userid") != null) { // 만약 userid 파라미터를 넘겨 받았다면
        if (userid != request.getParameter("userid")) { // 그리고 만약 세션 userid와 파라미터userid가 다르다면
          userid = request.getParameter("userid"); // userid에 파라미터userid를 저장하기
          user = UserDAO.logCheck(userid);
        }
      }

      visitList = VisitDAO.selectVisit(user); // 페이지 주인인 user의 방명록을 가져옴 거기엔 작성자인 userid도 있음.

      myList = new ArrayList<VisitDTO>();
      myOneCmtList = new ArrayList<CommentDTO>();
      myWholeCmtList = new ArrayList<List<CommentDTO>>(); // 내가 올린 게시글별 댓글리스트를 담은 리스트

      yourList = new ArrayList<VisitDTO>();
      yourOneCmtList = new ArrayList<CommentDTO>();
      yourWholeCmtList = new ArrayList<List<CommentDTO>>(); // 방문객이 쓴 게시글별 댓글리스트를 담은 리스트

      for (VisitDTO dto : visitList) {
        if ((dto.getUserid())
            .trim()
            .equals(((UserDAO.selectOne(dto.getUserno())).getUserid()).trim())) { // 내가쓴글이면
          myList.add(dto);
          myOneCmtList = VisitDAO.getCommentList(dto.getBrdno()); // 방명록하나에 해당하는 댓글리스트
          if (!myOneCmtList.isEmpty()) myWholeCmtList.add(myOneCmtList);
        } else {
          yourList.add(dto);
          yourOneCmtList = VisitDAO.getCommentList(dto.getBrdno());
          if (!yourOneCmtList.isEmpty()) yourWholeCmtList.add(yourOneCmtList);
        }
      }
      request.setAttribute("user", user);
      request.setAttribute("myList", myList);
      request.setAttribute("yourList", yourList);
      request.setAttribute("myComments", myWholeCmtList);
      request.setAttribute("yourComments", yourWholeCmtList);
      request.setAttribute("user", user);
      url = "miniHome/visitbook.jsp";
    } catch (SQLException e) {
      request.setAttribute("errorMsg", e.getMessage());
      e.printStackTrace();
    } catch (Exception e) {
      e.printStackTrace();
      request.setAttribute("errorMsg", e.getMessage());
    }
    request.getRequestDispatcher(url).forward(request, response);
  }