자바46일차

달달한스위츠·2024년 4월 18일

자바배우기

목록 보기
43/43

오늘의코드
로그인시 댓글 작성 및 수정 및 삭제 가능하도록 수정

<%@page import="edu.web.domain.BoardVO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script src="https://code.jquery.com/jquery-3.7.1.js">
</script>
<%
BoardVO boardvo = (BoardVO) request.getAttribute("boardvo");
%>
<title>게시글 상세조회</title>
</head>
<body>
<form id="updateForm" action="" method="post">
<input type="hidden" id="boardId" name="boardId" value="${boardvo.boardId }">
	<h2>게시글 상세조회 <button onclick="listForm()">뒤로가기</button></h2>
	<label for="memberId">게시글 작성자:</label>
		<input type="text" name="memberId" value="${boardvo.memberId }" readonly required> <br> 
	<label for="boardtitle">게시글 제목:</label>
		<input type="text" id="boardtitle" name="boardtitle" value="${boardvo.boardTitle }" readonly required> <br> 
		<label for="boardcontent">게시글 내용:</label><br>
		<textarea id="boardcontent" name="boardcontent" rows="4" cols="50" readonly>${boardvo.boardContent }</textarea>
		<br> 
		<label for="boardDate">게시및수정 된 날짜:</label><br>
		<input type="text" id="boardDate" name="boardDate" value="${boardvo.boardDateCreated }" readonly="readonly" required> <br> 
		<br>
		<c:if test="${sessionScope.memberId == boardvo.memberId }">
		<button onclick="updateForm()">게시글 수정하기</button> 
		<button onclick="deleteForm()">게시글 삭제하기</button>
		</c:if>
		</form> <br>
		
		
		<c:if test="${empty sessionScope.memberId }">
			* 댓글은 로그인이 필요한 서비스입니다.
			<a href="login.go?boardId=${boardvo.boardId }">로그인하기</a>
		</c:if>
		
		<c:if test="${not empty sessionScope.memberId }">
		${sessionScope.memberId }님, 이제 댓글을 작성할 수 있어요!
		<div style="text-align: center;">
			<input type="text" id="memberId" value="${sessionScope.memberId }" readonly>
			<input type="text" id="replyContent">
			<button id="btnAdd">작성</button>
		</div>
		</c:if>
		
		<hr>
		<div style="text-align: center;">
			<div id="replies"></div>
		</div>
		
		<div>
			<br><br><br><br><br><br><br><br>
		</div>
		
		<script type="text/javascript">
			$(document).ready(function(){
				getAllReplies(); // 함수 호출 코드 추가
				
				$('#btnAdd').click(function(){
					let boardId = $('#boardId').val(); // 게시판 번호 데이터
					let memberId = $('#memberId').val(); // 작성자 데이터
					let replyContent = $('#replyContent').val(); // 댓글 내용
					let obj = {
							'boardId' : boardId,
							'memberId' : memberId,
							'replyContent' : replyContent
					};
					console.log(obj);
					
					// $.ajax로 송수신
					$.ajax({
						type : 'POST',
						url : 'replies/add',
						data : {'obj' : JSON.stringify(obj)}, // JSON으로 변환
						success : function(result) {
							console.log(result);
							getAllReplies(); // 함수 호출 코드 추가
						}
					});
				});
				
				
				// 게시판 댓글 전체 가져오기
				function getAllReplies() {
					// 댓글을 가져오기 위해 boardId 필요
					let boardId = $('#boardId').val();
					
					// url에 boardId 전송
					let url = 'replies/all?boardId=' + boardId;
					let memberId = "${sessionScope.memberId }";
					
					// 가져올 데이터가 JSON이므로
					// getJSON으로 파싱하는게 편리함
					$.getJSON(
						url, 
						function(data) {
							// data : 서버에서 전송받은 list 데이터가 저장되어 있음.
							// getJSON()에서 json 데이터는
							// javascript object로 자동 parsing됨
							console.log(data); // data의 타입은 object
						
							let list = ''; // 댓글 데이터를 HTML에 표현할 문자열 변수
							
							// $(컬렉션).each() : 컬렉션데이터를 반복문으로 꺼내는 함수
							$(data).each(function(){
								// this : 컬렉션의 각 인덱스 데이터를 의미
								console.log(this);
							
								// String을 date 타입으로 변경
								let replyDataCreated = new Date(this.replyDateCreated);
								
								let disabled = '';
								let readonly = '';
								
								if(memberId != this.memberId) {
									disabled = 'disabled';
									readonly = 'readonly';
								}
								
								list += '<div class="reply_item">'
								+ '<pre>'
								+ '<input type="hidden" id="replyId" value="' + this.replyId +'">'
								+ this.memberId
								+ '&nbsp;&nbsp;' // 공백
								+ '<input type="text" id="replyContent" '+ readonly +' value="' + this.replyContent + '">'
								+ '&nbsp;&nbsp;'
								+ replyDataCreated
							    + '<button class="btn_update" '+disabled+'>수정</button>'
							    + '<button class="btn_delete" '+disabled+'>삭제</button>'
							    + '</pre>'
							    + '</div>';
								
							}); // end each()
							
							$('#replies').html(list);
							
						}
					); // end getJSON
					
				} // end getAllReplies()
				
				// 수정 버튼을 클릭하면 선택된 댓글 수정
				// on메서드를 사용해서 class이름이 같아도 찾아감
				$('#replies').on('click', '.reply_item .btn_update', function(){
					console.log(this);
					// 선택된 댓글의 replyId, replyContent 값을 저장
					// prevAll() : 선택된 노드 이전에 있는 모든 형제 노드를 접근
					let replyId = $(this).prevAll('#replyId').val();
					let replyContent = $(this).prevAll('#replyContent').val();
					console.log("선택된 댓글 번호 : " + replyId + ",  댓글 내용 : " + replyContent);
					
					
					// ajax로 데이터 전송하여
					// 댓글 수정 기능 수행하고
					// 수행 결과를 리턴하는 코드
					// ajax 요청
					$.ajax({
						type : 'POST',
						url : 'replies/update',
						data : {
							'replyId' : replyId,
							'replyContent' : replyContent
						},
						success : function(result) {
							console.log(result);
							getAllReplies();
						}
						
					}); // end ajax()
					
				}); // end #replies.on()
				
				// 삭제 버튼을 클릭하면 선택된 댓글 삭제
				$('#replies').on('click', '.reply_item .btn_delete', function(){
					console.log(this);
					// 선택된 댓글의 replyId, replyContent 값을 저장
					// prevAll() : 선택된 노드 이전에 있는 모든 형제 노드를 접근
					let replyId = $(this).prevAll('#replyId').val();
					
					$.ajax({
						type : 'POST',
						url : 'replies/delete',
						data : {
							'replyId' : replyId,
						},
						success : function(result) {
							console.log(result);
							getAllReplies();
						}
						
					}); // end ajax()
					
				}); // end #replies.on()
				
				
			}); // end document 
		
			function listForm() {
				let form = document.getElementById("updateForm");
				form.method = "GET";
				form.action = "list.do";
				form.submit();
			}
			
			function updateForm() {
				let form = document.getElementById("updateForm");
				form.method = "GET";
				form.action = "update.do";
				form.submit();
			}

			function deleteForm() {
				if (confirm('정말로 삭제 하시겠습니까?')) {
					let form = document.getElementById("updateForm");
					form.method = "POST";
					form.action = "delete.do";
					form.submit();
				} else {
					form.method = "GET";
					location.href = "detail.do";
				}
			}
			
		</script>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.List" %>
<%@ page import="edu.web.domain.BoardVO" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<meta charset="UTF-8">
<style type="text/css">
table, th, td {
   border-style : solid;
   border-width : 1px;
   text-align : center;
}

ul {
   list-style-type : none;
}

li {
   display : inline-block;
}
</style>
<head>
    <title>게시판 목록</title>
</head>
<body>
    <h1>게시판 목록 &nbsp; <button onclick="location.href='register.do'">글 작성하기</button></h1>
    <c:if test="${empty sessionScope.memberId }">
    	<a href="login.go"><input type="button" value="로그인"></a>
    </c:if>
    <c:if test="${not empty sessionScope.memberId }">
    	 <a href="logout.go"><input type="button" value="로그아웃"></a>
    </c:if>
    
    <a href="register.do"><input type="button" value="글 작성"></a>
    <table>
        <thead>
            <tr>
                <th>ID</th>
                <th>제목</th>
                <th>작성자</th>
                <th>작성일</th>
            </tr>
        </thead>
        <tbody>
        <c:forEach var="vo" items="${boardList }">
        	<tr>
        		<td>${vo.boardId }</td>
        		<td><a href="detail.do?boardId=${vo.boardId }">${vo.boardTitle }</a></td>
        		<td>${vo.memberId }</td>
        		<td>${vo.boardDateCreated }</td>
        	</tr>
        </c:forEach>
           <%--  <% 
            List<BoardVO> boardList = (List<BoardVO>) request.getAttribute("boardList");
            if (boardList != null) {
                for (BoardVO board : boardList) {
            %>
                <tr>
                    <td><%= board.getBoardId() %></td>
                    <td><a href="detail.do?boardId=<%=board.getBoardId() %>"> <%=board.getBoardTitle() %> </a></td>
                    <td><%= board.getMemberId() %></td>
                    <td><%= board.getBoardDateCreated() %></td>
                </tr>
            <% 
                }
            }
            %> --%>
        </tbody>
    </table>
    
    <ul>
    <c:if test="${pageMaker.hasPrev }">
    	<li><a href="list.do?page=${pageMaker.startPageNo - 1 }">이전</a></li>
    </c:if>
    	<c:forEach begin="${pageMaker.startPageNo }" end="${pageMaker.endPageNo }"
    		var="num">
	    	<li><a href="list.do?page=${num }">${num }</a></li>
    	</c:forEach>
    <c:if test="${pageMaker.hasNext }">
    	<li><a href="list.do?page=${pageMaker.endPageNo + 1 }">다음</a></li>
    </c:if>
    </ul>
    
</body>
</html>
package edu.web.controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import edu.web.domain.BoardVO;
import edu.web.persistence.BoardDAO;
import edu.web.persistence.BoardDAOImple;
import edu.web.util.PageCriteria;
import edu.web.util.PageMaker;

@WebServlet("*.do") // *.do : ~.do로 선언된 HTTP 호출에 대해 반응
public class BoardController extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private static final String BOARD_URL = "WEB-INF/board/";
	private static final String MAIN = "index";
	private static final String LIST = "list";
	private static final String REGISTER = "register";
	private static final String DETAIL = "detail";
	private static final String UPDATE = "update";
	private static final String DELETE = "delete";

	private static final String EXTENSION = ".jsp";
	private static final String SERVER_EXTENSION = ".do";

	private static BoardDAO dao;

	public BoardController() {
		dao = BoardDAOImple.getInstance();
	}

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String requestURI = request.getRequestURI();
		String requestMethod = request.getMethod();
		System.out.println("호출 경로 : " + requestURI);
		System.out.println("호출 방식 : " + requestMethod);

		if (requestURI.contains(LIST + SERVER_EXTENSION)) {
			System.out.println("list 호출 확인");
			list(request, response);
		} else if (requestURI.contains(REGISTER + SERVER_EXTENSION)) {
			System.out.println("register 호출 확인");
			if (requestMethod.equals("GET")) { // GET 방식(페이지 불러오기)
				registerGET(request, response);
			} else if (requestMethod.equals("POST")) { // POST 방식(DB에 저장)
				registerPOST(request, response);
			}
		} else if (requestURI.contains(DETAIL + SERVER_EXTENSION)) {
			System.out.println("detail 호출 확인");
			detail(request, response);
		} else if (requestURI.contains(UPDATE + SERVER_EXTENSION)) {
			System.out.println("update 호출 확인");
			if (requestMethod.equals("GET")) { // GET 방식(페이지 불러오기)
				updateGET(request, response);
			} else if (requestMethod.equals("POST")) { // POST 방식(DB에 저장)
				updatePOST(request, response);
			}
		} else if (requestURI.contains(DELETE + SERVER_EXTENSION)) {
			System.out.println("delete 호출 확인");
			if (requestMethod.equals("POST")) {
				deletePOST(request, response);
			}
		}

	} // end service()

	// TODO : 전체 게시판 내용(list)을 DB에서 가져오고, 그 데이터를 list.jsp 페이지에 전송
	private void list(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html; charset=UTF-8");
		System.out.println("list()");
		String path = BOARD_URL + LIST + EXTENSION;

//		List<BoardVO> boardList = dao.select();
//		List<BoardVO> boardList = dao.select(1, 3);
//		int page = Integer.parseInt(request.getParameter("page"));
		// null이여도 상관이 없게 된다.
		String page = request.getParameter("page");

		PageCriteria criteria = new PageCriteria();
		if (page != null) {
			criteria.setPage(Integer.parseInt(page));
		}

		List<BoardVO> boardList = dao.select(criteria);

		request.setAttribute("boardList", boardList);

		PageMaker pageMaker = new PageMaker();
		pageMaker.setCriteria(criteria);
		int totalCount = dao.getTotalCount();
		pageMaker.setTotalCount(totalCount);
		pageMaker.setPageData();
		System.out.println("전체 게시글 수 : " + pageMaker.getTotalCount());
		System.out.println("현제 선택된 페이지 : " + criteria.getPage());
		System.out.println("한 페이지당 게시글 수 : " + criteria.getNumsPerPage());
		System.out.println("페이지 링크 번호 개수 : " + pageMaker.getNumsOfPageLinks());
		System.out.println("시작 페이지 링크 번호 : " + pageMaker.getStartPageNo());
		System.out.println("끝 페이지 링크 번호 : " + pageMaker.getEndPageNo());

		request.setAttribute("pageMaker", pageMaker);
		RequestDispatcher dis = request.getRequestDispatcher(path);
		dis.forward(request, response);

	} // end list()

	// TODO : register.jsp 페이지 호출
	private void registerGET(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html; charset=UTF-8");
		PrintWriter out = response.getWriter();
		
		// 로그인 세션 체크
		HttpSession session = request.getSession();
		String memberId = (String) session.getAttribute("memberId");
		
		if(memberId != null) { // 로그인 상태
			System.out.println("registerGET()");
			String path = BOARD_URL + REGISTER + EXTENSION;
			RequestDispatcher dis = request.getRequestDispatcher(path);
			dis.forward(request, response);
		} else { // 로그아웃 상태
			// 쿠키에 targetURL 정보를 저장
			// targetURL = register.do
			// Cookie urlCookie = new Cookie("targetURL", REGISTER + SERVER_EXTENSION);
			// response.addCookie(urlCookie);
			// 로그인 페이지로 이동
			 response.sendRedirect("login.go?targetURL="+ REGISTER + SERVER_EXTENSION);
		}
		
		
	} // end registerGET()

	// TODO : register.jsp form으로 전송된 데이터를 DB 테이블에 등록
	// TODO : index.jsp로 이동
	private void registerPOST(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html; charset=UTF-8");
		System.out.println("registerPOST()");
		String memberid = request.getParameter("memberid");
		String boardtitle = request.getParameter("boardtitle");
		String boardcontent = request.getParameter("boardcontent");

		BoardVO board = new BoardVO(0, boardtitle, boardcontent, memberid, null);

		int result = dao.insert(board);
		System.out.println(result);
		response.sendRedirect("index.jsp");

	} // end registerPOST()

	// TODO : DB 테이블에서 상세 조회 데이터를 가져와서, detail.jsp로 전송 및 페이지 출력
	private void detail(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html; charset=UTF-8");
		System.out.println("detail()");
		String path = BOARD_URL + DETAIL + EXTENSION;

		int boardId = Integer.parseInt(request.getParameter("boardId"));

		System.out.println(boardId);
		BoardVO boardvo = dao.select(boardId);

		request.setAttribute("boardvo", boardvo);
		RequestDispatcher dis = request.getRequestDispatcher(path);
		dis.forward(request, response);
	} // end detail()

	// TODO : DB 테이블에서 상세 조회한 게시글 데이터를 전송하고, update.jsp 페이지로 호출
	private void updateGET(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html; charset=UTF-8");
		System.out.println("updateGET()");
		String path = BOARD_URL + UPDATE + EXTENSION;

		int boardId = Integer.parseInt(request.getParameter("boardId"));

		System.out.println(boardId);
		BoardVO boardvo = dao.select(boardId);

		request.setAttribute("boardvo", boardvo);
		RequestDispatcher dis = request.getRequestDispatcher(path);
		dis.forward(request, response);
	} // end updateGET()

	// TODO : update.jsp에서 전송된 수정할 데이터를 DB로 전송하여 테이블 수정 수행
	// TODO : 수정이 완료되면, detail.jsp로 이동(이동할 때 어떤 값을 전송해야 할걸?ㅎ)
	private void updatePOST(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html; charset=UTF-8");
		System.out.println("updatePOST()");

		String path = DETAIL + SERVER_EXTENSION;

		int boardId = Integer.parseInt(request.getParameter("boardId"));

		String boardtitle = request.getParameter("boardtitle");
		String boardcontent = request.getParameter("boardcontent");
		String memberId = request.getParameter("memberId");

		BoardVO board = new BoardVO(boardId, boardtitle, boardcontent, memberId, null);

		System.out.println(boardId);
		int result = dao.update(board);

		if (result == 1) {
			System.out.println(result);
			request.setAttribute("boardId", boardId);
			RequestDispatcher dis = request.getRequestDispatcher(path);
			dis.forward(request, response);
		}

	} // end updatePOST()

	// TODO : 게시글 번호를 전송받아서, DB 테이블에서 데이터 삭제
	// TODO : 삭제가 완료되면, index.jap로 이동
	private void deletePOST(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html; charset=UTF-8");
		System.out.println("deletePOST()");
		String path = MAIN + EXTENSION;

		int boardId = Integer.parseInt(request.getParameter("boardId"));

		int result = dao.delete(boardId);
		if (result == 1) {
			RequestDispatcher dis = request.getRequestDispatcher(path);
			dis.forward(request, response);
		}
	} // end deletePOST()

}
package edu.web.controller;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@WebServlet("*.go")
public class LoginController extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private static final String LOGIN_URL = "WEB-INF/login/";
	private static final String LOGIN = "login";
	private static final String LOGOUT = "logout";
	private static final String BOARD = "board";

	private static final String EXTENSION = ".jsp";
	private static final String SERVER_EXTENSION = ".go";

	public LoginController() {

	}

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String requestURI = request.getRequestURI();
		String requestMethod = request.getMethod();
		System.out.println("호출 경로 : " + requestURI);
		System.out.println("호출 방식 : " + requestMethod);

		if (requestURI.contains(LOGIN)) {
			System.out.println("login 호출 확인");
			if (requestMethod.equals("GET")) { // GET 방식(페이지 불러오기)
				loginGET(request, response);
			} else if (requestMethod.equals("POST")) { // POST 방식(DB에 저장)
				loginPOST(request, response);
			}
		} else if (requestURI.contains(LOGOUT)) {
				System.out.println("logout 호출 확인");
					logout(request, response);
		} else if (requestURI.contains(BOARD)) {
			System.out.println("board 호출 확인");
			if (requestMethod.equals("POST")) { // GET 방식(페이지 불러오기)
				boardPOST(request, response);
			}
}

	} // end service()

	private void boardPOST(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		System.out.println("loginboardPOST()");
		HttpSession session = request.getSession();

		String memberId = request.getParameter("memberId");
		String password = request.getParameter("password");
		String boardId = request.getParameter("boardId");
		

		System.out.println("memberId : " + memberId);
		System.out.println("password : " + password);
		
		// * loginPOST를 수행하는 상황
		// - index.jsp에서 login 버튼 클릭 - 로그인 페이지 - 로그인 성공 - index.jsp 이동
		// - 글 작성 버튼(register.do) 클릭 - 로그인 페이지 - 로그인 성공 - register.do 이동
		if (memberId.contains("test") && password.equals("1234")) { // 포함 되면 => contains
			session.setAttribute("memberId", memberId);
			session.setMaxInactiveInterval(60); // 60초
		request.setAttribute("boardId", boardId);
		String path = "detail.do";
		request.getRequestDispatcher(path).forward(request, response);
		}
		
	}

	private void logout(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		System.out.println("loginPOST()");
		HttpSession session = request.getSession();
		if(session.getAttribute("memberId") != null) {
			session.removeAttribute("memberId");
			response.sendRedirect("index.jsp");
		}
	}

	private void loginGET(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		System.out.println("loginGET() 호출");
		String boardId = request.getParameter("boardId");
		String targetURL = request.getParameter("targetURL");
		request.setAttribute("targetURL", targetURL);
		request.setAttribute("boardId", boardId);
		String path = LOGIN_URL + LOGIN + EXTENSION;

		request.getRequestDispatcher(path).forward(request, response);

	} // end loginGET()

	private void loginPOST(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		System.out.println("loginPOST()");
		HttpSession session = request.getSession();

		String memberId = request.getParameter("memberId");
		String password = request.getParameter("password");
		String targetURL = request.getParameter("targetURL");
		

		System.out.println("memberId : " + memberId);
		System.out.println("password : " + password);
		
		// * loginPOST를 수행하는 상황
		// - index.jsp에서 login 버튼 클릭 - 로그인 페이지 - 로그인 성공 - index.jsp 이동
		// - 글 작성 버튼(register.do) 클릭 - 로그인 페이지 - 로그인 성공 - register.do 이동
		if (memberId.contains("test") && password.equals("1234")) { // 포함 되면 => contains
			session.setAttribute("memberId", memberId);
			session.setMaxInactiveInterval(60); // 60초
			
//			Cookie[] cookies = request.getCookies();
//			
//			// targetURL 존재 유무에 따른 경로 설정
//			if(cookies != null) {
//				targetURL = "index.jsp";
//				for(Cookie cookie : cookies) {
//					if(cookie.getName().equals("targetURL")) {
//						// targetURL 정보를 가져와서
//						// index.jsp => targetURL(register.do)로 변경
//						// targetURL 정보는 삭제
//						targetURL = cookie.getValue();
//						cookie.setMaxAge(0);
//						response.addCookie(cookie);
//					}
//				}
//			}
			
			if(!targetURL.equals("") && targetURL != null) {
				response.sendRedirect(targetURL);				
			} else {
				response.sendRedirect("index.jsp");	
			}
			
		} else  {
			System.out.println("아이디나 비번이 틀렸습니다.");
			response.sendRedirect("login.go");

		}

	}

}

마지막으로 로그인 페이지

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script src="https://code.jquery.com/jquery-3.7.1.js">
</script>
<title>Insert title here</title>
</head>
<body>
	<form action="" method="post" id="loginboardForm">
		<input type="hidden" name="boardId" id="boardId" value="${boardId }"> 
		<input type="hidden" name="targetURL" id="targetURL" value="${targetURL }"> 
		id : <input type="text" name="memberId" required autofocus> 
		pw : <input type="text" name="password" required><br>
		<br> <input type="button" value="확인" id="check">
	</form>

	<script type="text/javascript">
		$(document).ready(function() {
			
			$('#check').click(function() {
				console.log(this);
				
				if("${boardId }" == "") {
					loginForm();
				} else {
					boardForm();
				}
				
			}); // end #replies.on()
		}); // end document 

		function loginForm() {
			let form = document.getElementById("loginboardForm");
			form.method = "POST";
			form.action = "login.go";
			form.submit();
		}
		
		function boardForm() {
			let form = document.getElementById("loginboardForm");
			form.method = "POST";
			form.action = "board.go";
			form.submit();
		}
	</script>
</body>
</html>

0개의 댓글