< BbsDAO.java >
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
package bbs;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class BbsDAO {
private Connection conn;
private PreparedStatement pstmt;
private ResultSet rs;
public BbsDAO() {
try {
String dbURL = "jdbc:mysql://127.0.0.1:3306/BBS?autoReconnect=true&&serverTimezone=UTC";
String dbID = "root";
String dbPassword = "root";
Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection(dbURL, dbID, dbPassword);
} 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오류
}
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오류
}
public int write(String bbsTitle, String userID, String bbsContent) {
String SQL = "INSERT INTO BBS VALUES (?, ?, ?, ?, ?, ?)";
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);
return pstmt.executeUpdate();
} catch(Exception e) {
e.printStackTrace();
}
return -1; // db오류
}
}
|
cs |
< write.jsp >
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.PrintWriter" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width" initial-scale="1">
<link rel="stylesheet" href="css/bootstrap.min.css">
<title>Kanari 웹 사이트</title>
</head>
<body>
<%
String userID = null;
if(session.getAttribute("userID") != null){
userID = (String) session.getAttribute("userID");
}
%>
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<ul class="navbar-nav navbar-white">
<li class="nav-item"><a class="nav-link" href="main.jsp">메인</a></li>
<li class="nav-item active"><a class="nav-link" href="bbs.jsp">게시판</a></li>
<%
if(userID == null){
%>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown"> Sign in </a>
<div class="dropdown-menu">
<a class="dropdown-item" href="login.jsp">로그인</a>
<a class="dropdown-item" href="join.jsp">회원가입</a>
</div>
</li>
<%
} else{
%>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown"> 회원관리 </a>
<div class="dropdown-menu">
<a class="dropdown-item" href="logoutAction.jsp">로그아웃</a>
</div>
</li>
<%
}
%>
</ul>
</nav>
<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-align: 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="2020" style="height: 350px;"></textarea></td>
</tr>
</tbody>
</table>
<input type="submit" class="btn btn-primary pull-right" value="글 쓰기">
</form>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="js/bootstrap.js"></script>
</body>
</html>
|
cs |
< writeAction.jsp >
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="bbs.BbsDAO" %>
<%@ page import="java.io.PrintWriter" %>
<% request.setCharacterEncoding("UTF-8"); %> <!-- 받는 모든 문자열을 UTF-8로 인코딩한다. -->
<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>Kanari 웹 사이트</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>
|
cs |
작성한 글이 DB에 입력되는지 확인해보자.
'JSP' 카테고리의 다른 글
커뮤니티 게시판 만들기 10 - 글 보기 (0) | 2020.07.29 |
---|---|
커뮤니티 게시판 만들기 09 - 글 목록, 페이징 (0) | 2020.07.29 |
커뮤니티 게시판 만들기 07 - 게시판 DB 구축 (0) | 2020.07.22 |
커뮤니티 게시판 만들기 06 - 세션 (0) | 2020.07.21 |
커뮤니티 게시판 만들기 05 - 회원가입 구현 (0) | 2020.07.21 |
댓글