@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); }
@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); }