{Java}
21.06.28{코딩일기} 동빈나 유튜버 JSP게시판 만들기 (13) | 전자정부프레임워크 eclipse 게시판 만들기{day8}
Davey
2021. 6. 28. 12:02
728x90
게시판 코드작성완료 후기 생생하게 공유드립니다. 많이 놀러와주세여:)
https://www.youtube.com/watch?v=P5s5JwvZjBA&t=27s&pp=sAQA
# 기존 String처리 안된 게시글 삭제
하지만 게시글 번호가 맞지 않아 보기좋게 이쁘게 출력되도록 추후
기능개선이 요구된다.
# update.jsp code
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.PrintWriter"%>
<%@ page import="list.Board"%>
<%@ page import="list.ListDAO"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width" , initial-scale="1">
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<title>BluevulpeBoard</title>
</head>
<body style="background-color: lightblue;">
<%
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>");
}
int listID = 0;
if (request.getParameter("listID") != null) {
listID = Integer.parseInt(request.getParameter("listID"));
}
if (listID == 0) {
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('유효하지 않은 글입니다.')");
script.println("location.href = 'list.jsp'");
script.println("</script>");
}
//현재 넘어온 id값을 가지고 세션에 있는 값과 이 글을 작성한 사람의 값을 서로 비교및 id값 동일여부 체크
Board bbs = new ListDAO().getBbs(listID);
if (!userID.equals(bbs.getUserID())) {
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('권한이 없습니다.')");
script.println("location.href = 'list.jsp'");
script.println("</script>");
}
%>
<nav class="navbar navbar-default">
<!-- navbar-색상(inverse = 검은색, default = 색x) -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed"
data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"
aria-expanded="false">
<!-- class="navbar-toggle collapsed"=>네비게이션의 화면 출력유무
data-toggle="collapse" : 모바일 상태에서 클릭하면서 메뉴가 나오게 설정 -->
<span class="icon-bar"></span> <span class="icon-bar"></span> <span
class="icon-bar"></span>
<!-- 아이콘 이미지 -->
</button>
<a class="navbar-brand" href="main.jsp">BluevulpeBoard</a>
<!-- Bootstrap navbar 기본 메뉴바 -->
</div>
<div class="collapse navbar-collapse"
id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<!-- navbar-nav => 네비게이션 바의 메뉴 -->
<li><a href="main.jsp">메인</a></li>
<li class="active"><a href="list.jsp">게시판</a></li>
<!-- 메뉴, 게시판의 main.jsp와 bbs.jsp의 파일로 각각 이동 -->
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown"><a href="#" class="dropdown-toggle"
data-toggle="dropdown" role="button" aria-haspopup="true"
aria-expanded="false">회원관리<span class="caret"></span></a>
<!-- caret = creates a caret arrow icon (▼) -->
<ul class="dropdown-menu">
<li><a href="logout.jsp">로그아웃</a></li>
</ul></li>
</div>
</nav>
<div class="container">
<div class="row">
<form method="post" accept-charset="utf-8" action="updateGo.jsp?listID=<%= listID %>">
<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="listTitle" maxlength="50" value="<%= bbs.getListTitle()%>"></td></tr>
<tr>
<td>
<textarea class="form-control" placeholder="글내용" name="listContent" maxlength="2048" style="height: 350px;">
<%= bbs.getListContent()%></textarea></td>
</tr>
</tbody>
</table>
<input type="submit" class="btn btn-primary pull-right" value="글수정">
</form>
</div>
</div>
</body>
</html>
# udateGo.jsp code
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.PrintWriter"%>
<%@ page import="list.ListDAO"%>
<%@ page import="list.Board"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width" , initial-scale="1">
<title>BluevulpeBoard</title>
</head>
<body style="background-color: lightblue;">
<%
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("");
script.println("location.href = 'login.jsp'");
script.println("</script>");
}
int listID = 0;
if (request.getParameter("listID") != null) {
listID = Integer.parseInt(request.getParameter("listID"));
}
if (listID == 0) {
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('유효하지 않은 글입니다.')");
script.println("location.href = 'list.jsp'");
script.println("</script>");
}
//현재 넘어온 id값을 가지고 세션에 있는 값과 이 글을 작성한 사람의 값을 서로 비교및 id값 동일여부 체크
Board bbs = new ListDAO().getBbs(listID);
if (!userID.equals(bbs.getUserID())) {
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('권한이 없습니다.')");
script.println("location.href = 'list.jsp'");
script.println("</script>");
} else { //listTitle이라는 이름으로 매개변수로 넘어온 값들을 확인한다. 빈값이나 null값이 입력된 경우 체크한다.
if (request.getParameter("listTitle") == null || request.getParameter("listContent") == null
|| request.getParameter("listTitle").equals("") || request.getParameter("listContent").equals("")) {
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('입력이 안된 사항이 있습니다.')");
script.println("history.back()");
script.println("</script>");
} else { //모든내용이 다 잘 작성되었는지 확인하는 예외처리문
ListDAO listDAO = new ListDAO();
int result = listDAO.update(listID, request.getParameter("listTitle"), request.getParameter("listContent"));
if (result == -1) {
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('글수정에 실패했습니다.');");
script.println("alert('"+bbs.getListTitle().toString()+"');");
script.println("history.back();");
script.println("</script>");
} else {
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("location.href = 'list.jsp'");
script.println("</script>");
}
}
}
%>
</body>
</html>
# ListDAO.java 클래스 수정
# 삭제기능구현 에러
삭제버튼을 누르고 나면 아래와 같이 404상태 에러메시지가 출력되었다.
삭제요청을 보내는 버튼이 있는 view.jsp파일에 코드를 확인해보니 deleteGo.jsp파일로 post요청을
보내주어야 되는데 deleteAction.jsp파일로 요청을 보내고 있어서 404상태에러메세지가 출력된것이었다.
# 삭제확인알림창 생성
삭제버튼을 누르면 잘 삭제가 되지만, 한번더 확인차 '삭제하시겠습니까?'
알림창을 띄우는 코드를 view.jsp 파일의 <a .. >수정</a> 다음에 아래와 같이 추가했다.
<a href="update.jsp?listID=<%= listID %>" class="btn btn-primary">수정</a>
<a onclick="return confirm('정말로 삭제하시겠습니까?') href="deleteGo.jsp?listID=<%= listID %>" class="btn btn-primary">삭제</a>
Copyright ⓒ 2021 by bluevulpe All Contents cannot be copied without permission.
728x90