- <form method="post" action="writeAction.jsp">
- td 속 tr로 한 줄씩 표현
- input type="text" || textarea
[화면]
<div class="container">
<div class="row">
<form method="post" action="writeAction.jsp">
<table class="table table-striped" style="text-align; center; border: 1px solid #dddddd">
<thead>
<tr>
<th colspan="2" style="background-color: #eeeeee; text-aligh: center;">게시판 글쓰기 양식</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="text" class="form-control" placeholder="글 제목" name="bbsTitle" maxlength="50"></td>
</tr>
<tr>
<td><textarea class="form-control" placeholder="글 내용" name="bbsContent" maxlength="2048" style="height:350px;"></textarea></td>
</tr>
</tbody>
</table>
<input type="submit" class="btn btn-primary pull-right" value="글쓰기">
</form>
</div>
</div>
BbsDAO 객체 생성
DAO: 데이터 접근 객체
DB 연결, 게시글 번호와 현재 시간 호출 함수, INSERT 실행함수
package bbs;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class BbsDAO {
private Connection conn; //Connection 객체는 데이터베이스와의 연결
private ResultSet rs; //데이터베이스에서 가져온 결과를 저장하고 조회하는 데 사용
public BbsDAO() {
try {
String dbURL = "jdbc:mysql://localhost:3306/BBS";
String dbID ="root";
String dbPassword="";
Class.forName("com.mysql.jdbc.Driver"); //mysql에 접속할 수 있도록 매개체 역할을 하는 하나의 라이브러리 = 드라이바
conn = DriverManager.getConnection(dbURL, dbID, dbPassword); //conn 안에 접속 정보담음
} catch (Exception e) {
e.printStackTrace();
}
}
public String getDate() {
//현재 시간을 가져오는 함수
String SQL = "SELECT NOW()";
try {
PreparedStatement pstmt = conn.prepareStatement(SQL);
rs=pstmt.executeQuery();
if(rs.next()) {
return rs.getString(1);
}
} catch (Exception e) {
e.printStackTrace();
}
return ""; //db error
}
public int getNext() {
//게시글 번호
String SQL = "SELECT bbsID FROM BBS ORDER BY bbsID DESC";
try {
PreparedStatement pstmt = conn.prepareStatement(SQL);
rs=pstmt.executeQuery();
if(rs.next()) {
return rs.getInt(1) + 1;
}
return 1; // 첫 번째 게시물인 경우
} catch (Exception e) {
e.printStackTrace();
}
return -1; //db error
}
public int write(String bbsTitle, String userID, String bbsContent) {
String SQL = "INSERT INTO BBS VALUE(?,?,?,?,?,?)";
try {
PreparedStatement pstmt = conn.prepareStatement(SQL);
pstmt.setInt(1, getNext());
pstmt.setString(2, bbsTitle);
pstmt.setString(3, userID);
pstmt.setString(4, getDate());
pstmt.setString(5, bbsContent);
pstmt.setInt(6, 1);
rs=pstmt.executeQuery();
return pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
return -1; //db error
}
}
writeAction.jsp
BbsDAO 클래스 import 후
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="bbs.BbsDAO"%>
<!-- bbsdao의 클래스 가져옴 -->
<%@ page import="java.io.PrintWriter"%>
<!-- 자바 클래스 사용 -->
<%
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
%>
<!-- 게시글 내용을 담는 bbs클래스를 자바 빈즈로 사용 / scope:페이지 현재의 페이지에서만 사용-->
<jsp:useBean id="bbs" class="bbs.Bbs" scope="page" />
<jsp:setProperty name="bbs" property="bbsTitle" />
<jsp:setProperty name="bbs" property="bbsContent" />
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>jsp 게시판 웹사이트</title>
</head>
<body>
<%
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 (bbs.getBbsTitle() == null || bbs.getBbsContent() == null) {
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('입력이 안된 사항이 있습니다')");
script.println("history.back()");
script.println("</script>");
} else {
BbsDAO BbsDAO = new BbsDAO();
int result = BbsDAO.write(bbs.getBbsTitle(), userID, bbs.getBbsContent());
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='bbs.jsp'");
script.println("</script>");
}
}
}
%>
</body>
</html>
'강의 > JSP 게시판 만들기' 카테고리의 다른 글
[JSP 게시판 만들기] 12. 게시판 보기 기능 구현하기 (0) | 2023.12.10 |
---|---|
[JSP 게시판 만들기] 11. 게시판 글 목록 기능 구현하기 (0) | 2023.12.08 |
[JSP 게시판 만들기] 9. 게시판 데이터베이스 구축하기 (1) | 2023.12.08 |
[JSP 게시판 만들기] 8. 게시판 메인 페이지 디자인 (1) | 2023.12.08 |
[JSP 게시판 만들기] 7. 접속한 회원 세션 관리하기 (1) | 2023.12.08 |