프로그래밍/JSP
JSP 게시판 만들기(5)
하와이블루
2022. 12. 8. 20:23
728x90
글 상세보기 페이지(view.jsp)에서 게시글을 수정하는 기능을 추가해보자.
게시글 수정 페이지(edit.jsp) 작성
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="com.koreait.db.Dbconn"%>
<%
request.setCharacterEncoding("UTF-8");
String userid = (String)session.getAttribute("userid");
if(userid == null){
%>
<script>
alert('로그인 후 이용하세요');
location.href='../login.jsp';
</script>
<%
}else{
String b_idx = request.getParameter("b_idx");
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String b_title = "";
String b_content = "";
String sql = "";
try{
conn = Dbconn.getConnection();
if(conn != null){
sql = "select b_title, b_content from tb_board where b_idx=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, b_idx);
rs = pstmt.executeQuery();
if(rs.next()){
b_title = rs.getString("b_title");
b_content = rs.getString("b_content");
}
}
}catch (Exception e) {
e.printStackTrace();
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>커뮤니티 - 글수정</title>
</head>
<body>
<h2>커뮤니티 - 글수정</h2>
<form method="post" action="./edit_ok.jsp">
<input type="hidden" name="b_idx" value="<%=b_idx%>">
<p>작성자 : <%=userid%></p>
<p>제목<input type="text" name="b_title" value="<%=b_title%>"></p>
<p>내용</p>
<p><textarea name="b_content" rows="5" column="40"><%=b_content%></textarea></p>
<p><input type="submit" value="수정"> <input type="reset" value="다시작성"> <input type="button" value="리스트" onclick="location.href='list.jsp'"></p>
</form>
</body>
</html>
<%
}
%>
해당 페이지는 게시글 수정 페이지(edit.jsp)로 게시글의 데이터를 수정할 수 있다. view.jsp에서 글번호를 request.getParameter로 받아와서 글번호와 맞는 데이터를 받아온 뒤 수정 페이지 양식에 맞게 데이터를 보여준다.

수정할 게시글의 정보를 보여주고 수정을 완료하기 위해 수정 버튼을 클릭하면 POST방식으로 edit_ok.jsp로 데이터를 보낸다.
데이터 수정 처리 페이지(edit_ok.jsp) 작성
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="com.koreait.db.Dbconn"%>
<%
request.setCharacterEncoding("UTF-8");
String userid = (String)session.getAttribute("userid");
if(userid == null){
%>
<script>
alert('로그인 후 이용하세요');
location.href='../login.jsp';
</script>
<%
}else{
String b_idx = request.getParameter("b_idx");
String b_title = request.getParameter("b_title");
String b_content = request.getParameter("b_content");
Connection conn = null;
PreparedStatement pstmt = null;
String sql = "";
try{
conn = Dbconn.getConnection();
if(conn != null){
sql = "update tb_board set b_title = ?, b_content = ? where b_idx=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, b_title);
pstmt.setString(2, b_content);
pstmt.setString(3, b_idx);
pstmt.executeUpdate();
}
}catch (Exception e) {
e.printStackTrace();
}
%>
<script>
alert('게시글이 수정되었습니다.');
location.href='./view.jsp?b_idx=<%=b_idx%>';
</script>
<%
}
%>
edit.jsp에서 받은 데이터들은 쿼리문을 통해 갱신(update)되고 다시 글 상세보기 페이지로 이동하게된다. 이때 글 수정이 완료된 것을 확인 할 수 있다.

728x90