본문 바로가기

jsp 프로젝트 V2 post

JSP게시판 만들기 10강 - 글쓰기

글쓰기를 하려면 인증이 되어야 가능

그렇기 때문에 글쓰기 관련 request는 모두 seeeion을 확인 해야함

 

1. post/saveForm.jsp

글쓰기를 할 때 누가 글을 썻는지 알아야 하기 때문에 hidden 값으로 넘겨준다.

한번에 넘겨서 한번에 받아서 처리하는게 좋아요. 여기저기서 받으면 복잡해짐. 요청시에 필요한 데이터를 한방에 보내기 위해! 

<form action="/apple/post?cmd=saveProc" method="post">
	<input type="hidden" value="${sessionScope.principal.id}" name="memberId">
	<table border="1">
		<tr>
			<th>제목</th>
			<td><input type="text" name="title" /></td>
		</tr>
		<tr>
			<th>내용</th>
			<td><textarea rows="3" cols="22" name="content"></textarea></td>
		</tr>
	</table>
	<button>글쓰기완료</button>
	</form>

 

 

2. PostDao.java

public int 글쓰기(int memerId, String title, String content) {
		try {
			String sql = "INSERT INTO post VALUES(post_seq.nextval, ?, ?, ?, sysdate)";
			conn = DBConn.getConnection();
			pstmt = conn.prepareStatement(sql);
			pstmt.setInt(1, memerId);
			pstmt.setString(2, title);
			pstmt.setString(3, content);

			return pstmt.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return -1;
	}

 

3. PostSaveProcAction.java

package com.cos.apple.db.action.post;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.cos.apple.db.action.Action;
import com.cos.apple.db.dao.PostDao;

public class PostSaveProcAction implements Action{

	@Override
	public void execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		HttpSession session = request.getSession();
		if(session.getAttribute("principal")==null) {
			response.sendRedirect("member/loginForm.jsp");
			return;
		}
		
		int memberId = Integer.parseInt(request.getParameter("memberId"));
		String title = request.getParameter("title");
		String content = request.getParameter("content");
		
		PostDao postDao = new PostDao();
		int result = postDao.글쓰기(memberId, title, content);
		
		if(result == 1) {
			response.sendRedirect("index.jsp");
		}else {
			response.sendRedirect("post/saveForm.jsp");
		}
	}

}