푸들푸들

[Error] 오류메세지X, 404 본문

구디아카데미/Error

[Error] 오류메세지X, 404

COCO_develop 2024. 10. 24. 17:11

2024/10/24

p1

게시글 수정 시 내용을 입력하지 않았을 때

에러메세지를 표시되게 설정했는데

404 오류가 뜸

 

UpdateArticleServlet.java

package controller;

@WebServlet("/board/updateArticle")
public class UpdateArticleServlet extends HttpServlet{
	// -> V: /board/updateArticle.jsp
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// 폼
		HttpSession session = request.getSession();
		String loginId = (String)session.getAttribute("loginId");
		if(loginId == null) { // 로그인이 안됐다면
			response.sendRedirect(request.getContextPath()+"/login");
			return;
		}
		
		int articleNo = Integer.parseInt(request.getParameter("articleNo"));
	    Connection conn = null;
	    try {
	        conn = DBUtil.getConnection();
	        BoardArticleDao boardArticleDao = new BoardArticleDao();
	        BoardArticle ba = boardArticleDao.selectArticleOne(conn, articleNo); // 게시글 조회
	        
	        request.setAttribute("ba", ba); // 조회한 데이터를 JSP로 데이터 전달
	        request.getRequestDispatcher("/WEB-INF/view/board/updateArticle.jsp").forward(request, response);
	    } catch (Exception e) {
	        e.printStackTrace();
	    } finally {
	    	try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
	    }
	}
	
	// -> C: /board/boardOne
	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// 액션
		HttpSession session = request.getSession();
		String loginId = (String)session.getAttribute("loginId");
		if(loginId == null) { // 로그인이 안됐다면
			response.sendRedirect(request.getContextPath()+"login");
			return;
		}
		
		int articleNo = Integer.parseInt(request.getParameter("articleNo"));
		String category = request.getParameter("category");
		String articleTitle = request.getParameter("articleTitle");
		String articleContent = request.getParameter("articleContent");
		
		if(category == null || category.equals("")) {
			String errMsg = "카테고리를 선택하세요";
			request.setAttribute("errMsg", errMsg);
			request.getRequestDispatcher("/WEB-INF/board/updateArticle.jsp?").forward(request, response);
			return;
		}
		if(articleTitle == null || articleTitle.equals("")) {
			String errMsg = "제목을 입력하세요";
			request.setAttribute("errMsg", errMsg);
			request.getRequestDispatcher("/WEB-INF/view/board/updateArticle.jsp?").forward(request, response);
			return;
		}
		if(articleContent == null || articleContent.equals("")) {
			String errMsg = "내용을 입력하세요";
			request.setAttribute("errMsg", errMsg);
			request.getRequestDispatcher("/WEB-INF/board/updateArticle.jsp?").forward(request, response);
			return;
		}
		
		BoardArticle ba = new BoardArticle();
		ba.setArticleNo(articleNo);
		ba.setMemberId(loginId);
		ba.setCategory(category);
		ba.setArticleTitle(articleTitle);
		ba.setArticleContent(articleContent);
		
		Connection conn = null;
		try {
			conn = DBUtil.getConnection();
			conn.setAutoCommit(false); // 트랙잭션
			BoardArticleDao boardArticleDao = new BoardArticleDao();
			int row = boardArticleDao.updateArticle(conn, ba);
			if(row==1) {
				System.out.println(articleNo+"번 article update 성공");
			}
			conn.commit();
			response.sendRedirect(request.getContextPath()+"/board/boardOne?articleNo="+articleNo);
		} catch (Exception e) {
			try {
				System.out.println(articleNo+"번 article update 실패");
				conn.rollback();
			} catch (SQLException e1) {
				e1.printStackTrace();
			} 
			e.printStackTrace();
		} finally {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}

 

 

updateArticle.jsp

<%@ 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">
<title>UpdateArticle</title>
</head>
<body>
	<h1>Update Article</h1>
	
	<div>${errMsg}</div>
	<form action="${pageContext.request.contextPath}/board/updateArticle" method="post">
		<table border="1">
			<tr>
				<td>No</td>
				<td><input type="text"name="articleNo"  value="${ba.articleNo}" readonly></td>
			</tr>
			<tr>
				<td>Id</td>
				<td><input type="text" name="memberId" value="${ba.memberId}" readonly></td>
			</tr>
			<tr>
				<td>Categoty</td>
				<td><select name="category" value="${ba.category}">
						<option value="">::::선택::::</option>
						<option value="영화">영화</option>
						<option value="드라마">드라마</option>
						<option value="만화">만화</option>
						<option value="오락">오락</option>
						<option value="다큐">다큐</option>
						<option value="기타">기타</option>
					</select>
				</td>
			</tr>
			<tr>
				<td>Title</td>
				<td><input type="text" name="articleTitle" placeholder="${ba.articleTitle}"></td>
			</tr>
			<tr>
				<td>Content</td>
				<td><input type="text" name="articleContent" placeholder="${ba.articleContent}"></td>
			</tr>
			<tr>
				<td>Create date</td>
				<td><input type="text" name="createdate" value="${ba.createdate}"></td>
			</tr>
		</table>
		<button type="submit">수정</button>
	</form>

	<div>
		<a href="${pageContext.request.contextPath}/board/boardOne?articleNo=${ba.articleNo}">뒤로</a>
	</div>
</body>
</html>

 

 

또 사소한 오류!

경로 실수!

updateArticle.jsp의 경로 잘못 입력

/WEB-INF/board/updateArticle.jsp --> /WEB-INF/view/board/updateArticle.jsp 수정

if(category == null || category.equals("")) {
			String errMsg = "카테고리를 선택하세요";
			request.setAttribute("errMsg", errMsg);
			request.getRequestDispatcher("/WEB-INF/view/board/updateArticle.jsp").forward(request, response);
			return;
}
if(articleTitle == null || articleTitle.equals("")) {
    String errMsg = "제목을 입력하세요";
    request.setAttribute("errMsg", errMsg);
    request.getRequestDispatcher("/WEB-INF/view/board/updateArticle.jsp").forward(request, response);
    return;
}
if(articleContent == null || articleContent.equals("")) {
    String errMsg = "내용을 입력하세요";
    request.setAttribute("errMsg", errMsg);
    request.getRequestDispatcher("/WEB-INF/view/board/updateArticle.jsp").forward(request, response);
    return;
}

오류 메세지는 뜨는데 No, Id, CreateDate값이 넘어오지 않는다!  -- 아직 해결못함

'구디아카데미 > Error' 카테고리의 다른 글

[Error] 500 오류  (3) 2024.11.07
[Error] 압축해제 오류 0x80010135  (0) 2024.11.02
[Error] 댓글 삭제  (1) 2024.10.23
[Error] Sql 쿼리 INSERT문  (0) 2024.10.23
[Error] 빈 화면  (0) 2024.10.23