미미의 메모장

#4 자바+JSP로 메모장 만들기_메인 화면 구현+메모 리스트 데이터베이스 구축 본문

memo/Project🎨

#4 자바+JSP로 메모장 만들기_메인 화면 구현+메모 리스트 데이터베이스 구축

mimi memo 2024. 12. 16. 14:59

디자인을 수정했다

 

우선 메모장에만 집중 하기로.

 

디비에 메모 테이블을 추가해 준다

 CREATE TABLE MEMO(
    -> memoID INT,
    -> memoTitle VARCHAR(50),
    -> memoContent VARCHAR(2048),
    -> memoAvailable INT,
    -> userId VARCHAR(20),
    -> date TIMESTAMP,
    -> PRIMARY KEY (memoID)
    -> );

 

write.jsp 에 간단하게 form 을 만들어준다.

<form  method="post" action="writeAction.jsp">
<input type="text" class="form-control" placeholder="글 제목" name="memoTitle" maxlength="50">
<textarea  placeholder="글 내용" name="memoContent"></textarea>
<button type="submit" >글쓰기</button>
</form>

 

글쓰기를 누르면 writeAction.jsp로 이동한다.

writeAction페이지에서는 session 체크 하고, 아이디가 없으면 로그인 페이지로 이동하고,

title, content를 입력 안하면 입력하라고 팝업을 뛰운다.

다 입력이 되면, momoDAO에 write 함수를 호출시킨다.

String userId= null;
	if(session.getAttribute("userId")!=null){
		userId = (String) session.getAttribute("userId");
	}
	if(userId == null){
		PrintWriter script = response.getWriter();
		script.println("<script>");
		script.println("alert('로그인 하세요')");
		script.println("location.href='login.jsp'");
		script.println("</script>");
	}else{
		if( memo.getMemoTitle()==null|| memo.getMemoContent()==null){
			PrintWriter script = response.getWriter();
			script.println("<script>");
			script.println("alert('모두 입력해 주세요')");
			script.println("history.back()");
			script.println("</script>");
		}else{
			MemoDAO memoDAO = new MemoDAO();
	        int result = memoDAO.write(memo.getMemoTitle(),userId,memo.getMemoContent());
	        if(result == -1) {
	        	PrintWriter script = response.getWriter();
				script.println("<script>");
				script.println("alert('글쓰기에 실패했습니다.')");
				script.println("history.back()");
				script.println("</script>");
		
				
			}
			else{
				
				PrintWriter script = response.getWriter();
				script.println("<script>");
				script.println("location.href='main.jsp'");
				script.println("</script>");
				
			}
		}
	}

 

write 함수는 title, content 를 받아서 DB에 값을 insert 한다.

	public int write(String memoTitle, String userId, String memoContent) {
		String SQL = "INSERT INTO MEMO VALUES(?,?,?,?,?,?)";
		try {
			PreparedStatement pstmt = conn.prepareStatement(SQL);
			pstmt.setInt(1, getNext());
			pstmt.setString(2, memoTitle);
			pstmt.setString(3, memoContent);
			pstmt.setInt(4, 1);
			pstmt.setString(5, userId);
			pstmt.setString(6, getDate());

			return pstmt.executeUpdate();

		} catch (Exception e) {
			e.printStackTrace();
		}
		return -1;// 데이터베이스오류
	}

 

DB에 입력 하면, main.jsp로 이동시킨다.

DB에 insert 된것 확인 후,

 

main.jsp에서 DB값을 가져와서 보여주도록 만든다. 

MemoDAO memoDAO = new MemoDAO();
			ArrayList<Memo> list = memoDAO.getList(pageNumber);
			
			for(int i = 0; i < list.size(); i++){
            
			<div>
				<a href="view.jst?memoID=<%= list.get(i).getMemoID() %>">
					<strong><%= list.get(i).getMemoTitle() %> </strong>
					<span><%= list.get(i).getMemoContent() %> </span>
				</a>
				</div>	
			
				}

스타일 적용을 안 한 상태지만, 리스트가 잘 나오고 있다!