[JSP] 2021.02.08. DAY_73 form태그

2021. 2. 8. 20:51Web_Back-end/JSP

게시판 만들기_form 태그 사용

board 테이블을 생성해서, 게시판을 작성해보자

create table board(
	no number primary key,
	writer varchar2(30),
	pwd varchar2(30),
	title varchar2(50),
	content varchar2(3000),
	ip varchar2(50),
	regdate date,
	hit number
);
commit;

create sequence seq_board;
commit;

 

  1. 사용자에게 게시물 등록에 대한 form 을 제공해주는 문서
  2. DB에 insert 해주는 문서
  3. 게시물을 나타내주는 문서
  ㄴ---> 하나의 페이지로 작성해보기

 

boardTest.jsp
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<%
		request.setCharacterEncoding("UTF-8");
	
		String method = request.getMethod();
		System.out.println(method);	
		if(method.equals("POST")){
			String title = request.getParameter("title");
			String writer = request.getParameter("writer");
			String pwd = request.getParameter("pwd");
			String content = request.getParameter("content");
			String ip = request.getRemoteAddr();//ip주소를 가져오는 method를 호출
			
			String sql = "insert into board values(seq_board.nextval, ?, ?, ?, ?, ?, sysdate, 0)";
			
			Connection con = null;
			PreparedStatement pstmt = null;
			try{
				Class.forName("oracle.jdbc.driver.OracleDriver");
				
				con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "tiger");
				pstmt = con.prepareStatement(sql);
				pstmt.setString(1, writer);
				pstmt.setString(2, pwd);
				pstmt.setString(3, title);
				pstmt.setString(4, content);
				pstmt.setString(5, ip);
				int re = pstmt.executeUpdate();
				if(re == 1){
					out.print("<font color='blud'>게시물등록에 성공하였습니다</font>");
				}else{
					out.print("<font color='blud'>게시물등록에 실패하였습니다</font>");
				}
				
			}catch(Exception e){
				System.out.println("예외발생 : " + e.getMessage());
			}finally{
				if(pstmt != null){
					pstmt.close();
				}
				if(con != null){
					con.close();
				}
			}
			
			
		}
		
	
	%>

	<form action="boardTest.jsp" method="post">
		글제목 : <input type="text" name="title"><br>
		작성자 : <input type="text" name="writer"><br>
		암호 : <input type="text" name="pwd"><br>
		글내용 : <br>
		<textarea rows="10" cols="80" name="content"></textarea>
		<input type="submit" value="등록">
	</form>
</body>
</html>

DAO, VO를 따로 생성하지 않고, jsp 파일 하나로 DB에 insert를 해주는 코드

CharacterSet을 해주지 않으면, 한글깨짐 오류가 발생한다

request.setCharacterEncoding("UTF-8");