반응형
대학생을 위한 웹 페이지 제작
사용 언어 : java (jdk 12.0.2), JavaScript, css, html
사용 툴 : Eclipse
데이터베이스 : Mysql
서버 : Tomcat
테스트 브라우저 : Chrome, Edge
파일 : jsp
학교 프로젝트로 만든 대학생을 위한 학교 웹 페이지입니다.
기능
1. 자유 게시판, 중고책, 분실물 게시판 등 운영 ( 이미지 첨부, 댓글 달기, 수정 등 가능 )
2. 학교 공지사항 게시
3. 기타 대외활동 포스터 게시
4. 학점 계산기, 자신만의 시간표, 건물 정보, 주차 구역 확인
5. 회원가입시 AES 암호화 + salt 값을 추가하여 비밀번호를 해쉬값으로 저장하여 암호화
6. 카카오 지도 API
시스템 구성도
데이터베이스에 댓글 TABLE 'COMMENT' 추가
글쓰기와 마찬가지로 commentDAO.java 코드 작성
public class CommentDAO {
private Connection conn;
private ResultSet rs;
public CommentDAO( ) { //DB 연결
try {
String dbURL = "jdbc:mysql://localhost/bbs";
String dbID = "root";
String dbPassword = "1234";
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(dbURL, dbID, dbPassword);
} catch (Exception e) {
e.printStackTrace();
}
}
public String getDate() { // 댓글 작성 시간 SELECT
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 "";
}
public int getNext() { 댓글 입력시 댓글 번호 부여를 위한 댓글 번호 SELECT
String SQL = "SELECT commentID FROM comment ORDER BY commentID 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;
}
//댓글 작성시 INSERT문으로 레코드 삽입
public int write(int boardID, int bbsID, String userID, String commentText) {
String SQL = "INSERT INTO comment VALUES(?, ?, ?, ?, ?, ?, ?)";
try {
PreparedStatement pstmt = conn.prepareStatement(SQL);
pstmt.setInt(1, boardID);
pstmt.setInt(2, getNext());
pstmt.setInt(3, bbsID);
pstmt.setString(4, userID);
pstmt.setString(5, getDate());
pstmt.setString(6, commentText);
pstmt.setInt(7, 1);
return pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
return -1;
}
//리스트에 있는 댓글을 SELECT
public ArrayList<Comment> getList(int boardID, int bbsID){
String SQL = "SELECT * FROM comment WHERE boardID = ? AND bbsID= ? AND commentAvailable = 1 ORDER BY bbsID DESC";
ArrayList<Comment> list = new ArrayList<Comment>();
try {
PreparedStatement pstmt = conn.prepareStatement(SQL);
pstmt.setInt(1, boardID);
pstmt.setInt(2, bbsID);
rs = pstmt.executeQuery();
while (rs.next()) {
Comment cmt = new Comment();
cmt.setBoardID(rs.getInt(1));
cmt.setCommentID(rs.getInt(2));
cmt.setBbsID(rs.getInt(3));
cmt.setUserID(rs.getString(4));
cmt.setCommentDate(rs.getString(5));
cmt.setCommentText(rs.getString(6));
cmt.setCommentAvilable(rs.getInt(7));
list.add(cmt);
}
}catch(Exception e) {
e.printStackTrace();
}
return list;
}
public Comment getComment(int commentID) {
String SQL = "SELECT * FROM comment WHERE commentID = ? ORDER BY commentID DESC";
try {
PreparedStatement pstmt = conn.prepareStatement(SQL);
pstmt.setInt(1, commentID);
rs = pstmt.executeQuery();
while (rs.next()) {
Comment cmt = new Comment();
cmt.setBoardID(rs.getInt(1));
cmt.setCommentID(rs.getInt(2));
cmt.setBbsID(rs.getInt(3));
cmt.setUserID(rs.getString(4));
cmt.setCommentDate(rs.getString(5));
cmt.setCommentText(rs.getString(6));
cmt.setCommentAvilable(rs.getInt(7));
return cmt;
}
}catch(Exception e) {
e.printStackTrace();
}
return null;
}
public int delete(int commentID) {
String SQL = "DELETE FROM comment WHERE commentID = ?";
try {
PreparedStatement pstmt = conn.prepareStatement(SQL);
pstmt.setInt(1, commentID);
return pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
return -1; //
}
}
Comment.jsp 파일
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="comment.CommentDAO" %>
<%@ page import="java.io.PrintWriter" %>
<%@ page import="java.io.File" %>
<% request.setCharacterEncoding("UTF-8"); %>
<jsp:useBean id="comment" class="comment.Comment" scope="page" />
<jsp:setProperty name="comment" property="commentText" />
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>게시판</title>
</head>
<body>
<%
String userID = null;
if(session.getAttribute("userID") != null){
userID = (String) session.getAttribute("userID");
}
int boardID = 0;
if (request.getParameter("boardID") != null){
boardID = Integer.parseInt(request.getParameter("boardID"));
}
String commentText = request.getParameter("commentText");
if(userID == null){
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('로그인을 해주세요.')");
script.println("location.href = 'login.jsp'");
script.println("</script>");
}
else{
int bbsID = 0;
if (request.getParameter("bbsID") != null){
bbsID = Integer.parseInt(request.getParameter("bbsID"));
}
if (request.getParameter("bookID") != null){
bbsID = Integer.parseInt(request.getParameter("bookID"));
}
if (request.getParameter("lostID") != null){
bbsID = Integer.parseInt(request.getParameter("lostID"));
}
if (request.getParameter("postID") != null){
bbsID = Integer.parseInt(request.getParameter("postID"));
}
if (request.getParameter("commentText") == null){
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('입력이 안된 사항이 있습니다.')");
script.println("history.back()");
script.println("</script>");
} else {
CommentDAO commentDAO = new CommentDAO();
int commentID = commentDAO.write(boardID, bbsID, userID, request.getParameter("commentText"));
if (commentID == -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("alert('댓글 작성이 완료 되었습니다. ')");
script.println("location.href=document.referrer;");
script.println("</script>");
}
}
}
%>
</body>
</html>
'JSP 웹 프로젝트' 카테고리의 다른 글
JSP 웹 프로젝트 (8) 게시글 삭제하기 (0) | 2023.01.03 |
---|---|
JSP 웹 프로젝트 (7) 게시글 수정하기 (0) | 2023.01.03 |
JSP 웹 프로젝트 (6) 작성된 게시판 불러오기 (0) | 2023.01.03 |
JSP 웹 프로젝트 (5) 게시판 글 작성 (0) | 2023.01.03 |
JSP 웹 프로젝트 (4) 세션 (0) | 2023.01.03 |