게시판
게시글 불러오기
게시글 작성하기
게시글 인덱스 주기(알고리즘)
페이지번호 주기(알고리즘)
한페이지당 10개씩만 보이게하기(알고리즘)
조회수늘리기(한명당 하나의 게시글에 하나의 조회수만 늘리기가능)
좋아요누르기(누르기,취소하기 가능)
좋아요누르면 아이콘 변경
본인이쓴 게시글만 수정 및 삭제 버튼생성
댓글 작성
본인이쓴 댓글만 삭제
최종 db 테이블 목록
tb_board
create table tb_board(
b_idx int auto_increment primary key,
b_userid varchar(20) unique not null,
b_name varchar(20) not null,
b_title varchar(100) not null,
b_content text not null,
b_hit int default 0,
b_regdate datetime default now(),
b_like int default 0,
foreign key (b_userid,b_name) references tb_member(mem_userid,mem_username) on update cascade on delete cascade
);
tb_like
create table tb_like(
l_idx int auto_increment primary key,
l_boardidx int,
l_userid varchar(20) not null,
foreign key(l_boardidx) references tb_board(b_idx) on update cascade on delete cascade
);
tb_reply
create table tb_reply(
re_idx int auto_increment primary key,
re_userid varchar(20) not null,
re_name varchar(20) not null,
re_content varchar(2000) not null,
re_regdate datetime default now(),
re_boardidx int,
foreign key (re_boardidx) references tb_board(b_idx) on update cascade on delete cascade,
foreign key (re_userid,re_name) references tb_member(mem_userid,mem_username) on update cascade on delete cascade
);
tb_visited
create table tb_visited(
v_idx int auto_increment primary key,
v_boardidx int,
v_userid varchar(20) not null,
foreign key(v_boardidx) references tb_board(b_idx) on update cascade on delete cascade
);
list.jsp(게시글 목록)
<%@page import="java.util.Set"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="../include/sessioncheck.jsp"%>
<%@page import="com.koreait.db.Dbconn"%>
<%@ page import="java.sql.*"%>
<%
/*
1 0 9
2 10 19
n (n-1)*10 (n-1)*10+9
*/
String pageNum = request.getParameter("pageNum");
if (pageNum == null) {
pageNum = "1";
}
int pagePerCount = 10;
int pageEnd = 0;
int index = 0 + ((Integer.parseInt(pageNum) - 1) * 10);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
table {
width: 800px;
border: 1px solid black;
border-collapse: collapse;
}
th, td {
border: 1px solid black;
padding: 10px;
}
.bottom {
}
.totalnum {
margin-left: 600px;
}
</style>
</head>
<body>
<h2>리스트</h2>
<table>
<tr>
<th>번호</th>
<th>제목</th>
<th>글쓴이</th>
<th>조회수</th>
<th>날짜</th>
<th>좋아요</th>
</tr>
<%
request.setCharacterEncoding("UTF-8");
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String userid = (String) session.getAttribute("userid");
String name = (String) session.getAttribute("name");
String title = request.getParameter("b_title");
String content = request.getParameter("b_content");
String b_idx = "";
String b_title = "";
String b_userid = "";
String b_hit = "";
String b_regdate = "";
String b_like = "";
String b_name = "";
String cnt = "";
int total_cnt = 0;
String nnn = "";
try {
conn = Dbconn.getConnection();
if (conn != null) {
/* System.out.println("DB연결 성공!"); */
String sql = "select * from tb_board order by b_idx desc LIMIT ?, ?";
pstmt = conn.prepareStatement(sql); //컴파일하고 나서 set 설정해줘야함!
pstmt.setInt(1, (Integer.parseInt(pageNum) - 1) * pagePerCount);
pstmt.setInt(2, pagePerCount);
rs = pstmt.executeQuery();
while (rs.next()) {
b_idx = rs.getString("b_idx");
b_title = rs.getString("b_title");
b_userid = rs.getString("b_userid");
b_hit = rs.getString("b_hit");
b_regdate = rs.getString("b_regdate");
b_like = rs.getString("b_like");
b_name = rs.getString("b_name");
%>
<tr>
<td>
<%index += 1;%> <%=index%></td>
<td><a href="./view.jsp?b_idx=<%=b_idx%>"><%=b_title%> <%
try {
conn = Dbconn.getConnection();
if (conn != null) {
ResultSet re_rs = null;
/* System.out.println("DB연결 성공!"); */
String re_sql = "select count(*) as cnt from tb_reply where re_boardidx=?;";
pstmt = conn.prepareStatement(re_sql); //컴파일하고 나서 set 설정해줘야함!
pstmt.setString(1, b_idx);
re_rs = pstmt.executeQuery();
re_rs.next();
cnt = re_rs.getString("cnt");
}
} catch (Exception e) {
e.printStackTrace();
}
%>
<!-- 댓글갯수 -->
<%
if (cnt.equals("0")) {
%> <%
} else {
%> [<%=cnt%>] <%
}
%>
<!-- 3일이내 올라온 글들은 new -->
<%
try {
conn = Dbconn.getConnection();
if (conn != null) {
ResultSet re_rs = null;
/* System.out.println("DB연결 성공!"); */
String re_sql = "select b_idx from tb_board where b_regdate >= (select date_sub(now(),interval 3 day)) and b_idx=?";
pstmt = conn.prepareStatement(re_sql); //컴파일하고 나서 set 설정해줘야함!
pstmt.setString(1, b_idx);
re_rs = pstmt.executeQuery(); // 값이 존재하지 않으면 에러가니면서 catch로
re_rs.next();
nnn = re_rs.getString("b_idx");
}
} catch (Exception e) {
nnn = null;
e.printStackTrace();
}
if (nnn != null) {
%> <img alt="" style="width: 20px;"
src="https://ncrefuge.org/wp-content/uploads/2019/11/new-icon.png">
<%
}
%> </a></td>
<td><%=b_userid%>(<%=b_name%>)</td>
<td><%=b_hit%></td>
<td><%=b_regdate%></td>
<td><%=b_like%></td>
</tr>
<%
}
}
} catch (Exception e) {
e.printStackTrace();
}
%>
<%
try {
conn = Dbconn.getConnection();
if (conn != null) {
ResultSet re_rs = null;
/* System.out.println("DB연결 성공!"); */
String re_sql = "select count(*) as cnt from tb_board";
pstmt = conn.prepareStatement(re_sql); //컴파일하고 나서 set 설정해줘야함!
re_rs = pstmt.executeQuery();
while (re_rs.next()) {
total_cnt = re_rs.getInt("cnt"); //전체 게시글
}
}
} catch (Exception e) {
e.printStackTrace();
}
%>
<tr>
<td colspan="6">
<%
if (total_cnt % pagePerCount == 0)
pageEnd = total_cnt / pagePerCount;
else {
pageEnd = (total_cnt / pagePerCount) + 1;
}
for (int i = 1; i <= pageEnd; i++) {
%> <a href='./list.jsp?pageNum=<%=i%>'> [<%=i%>]
</a> <%
}
%>
</tr>
</td>
</table>
<p class="bottom">
<a href='write.jsp'> 글쓰기</a> <a href="../login.jsp">돌아가기</a> <span
class="totalnum">글 전체수 : <%=total_cnt%>개
</span>
</p>
</body>
</html>
view.jsp (게시물페이지)
<%@page import="java.io.Console"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="../include/sessioncheck.jsp"%>
<%@page import="com.koreait.db.Dbconn"%>
<%@ page import="java.sql.*"%>
<%
request.setCharacterEncoding("UTF-8");
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String num = request.getParameter("b_idx");
String userid = (String) session.getAttribute("userid");
String name = (String) session.getAttribute("name");
String b_idx = "";
String b_title = "";
String b_userid = "";
String b_hit = "";
String b_regdate = "";
String b_like = "";
String b_name = "";
String b_content = "";
String re_idx = "";
String re_userid = "";
String re_name = "";
String re_content = "";
String re_regdate = "";
String re_boardidx = "";
boolean visited =false;
//조회수 올리기
try {
conn = Dbconn.getConnection();
if (conn != null) {
/* 먼저 조회한적있는지 체크 */
String sql = "select * from tb_visited where v_boardidx=? and v_userid=? ";
pstmt = conn.prepareStatement(sql); //컴파일하고 나서 set 설정해줘야함!
pstmt.setString(1, num);
pstmt.setString(2, userid);
rs = pstmt.executeQuery();
while(rs.next()) {visited=true;}
/* 조회한적있다면 */
if(visited){
sql = "select * from tb_board where b_idx=? ";
pstmt = conn.prepareStatement(sql); //컴파일하고 나서 set 설정해줘야함!
pstmt.setString(1, num);
rs = pstmt.executeQuery();
while(rs.next()){
b_idx = rs.getString("b_idx");
b_title = rs.getString("b_title");
b_userid = rs.getString("b_userid");
b_hit = rs.getString("b_hit");
b_regdate = rs.getString("b_regdate");
b_like = rs.getString("b_like");
b_name = rs.getString("b_name");
b_content = rs.getString("b_content");
}
}else{
/* 조회한적없다면 */
//tb_visited테이블에 등
sql = "insert into tb_visited(v_boardidx,v_userid) values(?,?)";
pstmt = conn.prepareStatement(sql); //컴파일하고 나서 set 설정해줘야함!
pstmt.setString(1, num);
pstmt.setString(2, userid);
pstmt.executeUpdate();
sql = "update tb_board set b_hit=b_hit+1 where b_idx=? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, num);
pstmt.executeUpdate();
sql = "select * from tb_board where b_idx=? ";
pstmt = conn.prepareStatement(sql); //컴파일하고 나서 set 설정해줘야함!
pstmt.setString(1, num);
rs = pstmt.executeQuery();
while(rs.next()){
b_idx = rs.getString("b_idx");
b_title = rs.getString("b_title");
b_userid = rs.getString("b_userid");
b_hit = rs.getString("b_hit");
b_regdate = rs.getString("b_regdate");
b_like = rs.getString("b_like");
b_name = rs.getString("b_name");
b_content = rs.getString("b_content");
}
}
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>글보기</title>
<script>
function like(){
/* 하트버튼의 속성값들을변경하여 하트전환 */
const isHeart = document.querySelector("img[title=on]");
if(isHeart){
document.getElementById('heart').setAttribute('src', 'https://www.iconpacks.net/icons/2/free-heart-icon-3510-thumb.png')
document.getElementById('heart').setAttribute('title', 'off')
}else{
document.getElementById('heart').setAttribute('src', 'https://cdn-icons-png.flaticon.com/512/105/105220.png')
document.getElementById('heart').setAttribute('title', 'on')
}
const xhr = new XMLHttpRequest(); //0번
xhr.open('get', 'like.jsp?idx=<%=num%>&userid=<%=userid%>',true); //1번
xhr.send(); //2번 ->3번(불러오는 로딩) ->4번(다불러오면 완료상태로 변경!)
// XMLHttpRequest.DONE -> readyState: 4)
xhr.onreadystatechange = function(){
if(xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200){
document.getElementById('likenum').innerText= xhr.responseText.trim();
}
}
}
/* 게시글삭제 */
function del(idx){
const yn = confirm('게시글을 삭제하시겠습니까?');
if(yn) location.href='../delete_ok.jsp?b_idx='+idx;
}
/* 댓글삭제 */
function replyDel(re_idx,b_idx){
const yn = confirm('해당댓글을 삭제하시겠습니까?');
if(yn)location.href= '../reply_del_ok.jsp?re_idx='+re_idx + "&b_idx=" + b_idx;
}
</script>
<style type="text/css">
table {
width: 800px;
border: 1px solid black;
border-collapse: collapse;
}
th, td {
border: 1px solid black;
padding: 10px;
}
</style>
</head>
<body>
<h2>글보기</h2>
<table>
<tr>
<th>제목
<td><%=b_title%></td>
</tr>
<tr>
<th>날짜
<td><%=b_regdate%></td>
</tr>
<tr>
<th>작성자
<td><%=b_name%></td>
</tr>
<tr>
<th>조회수
<td><%=b_hit%></td>
</tr>
<tr>
<th>좋아요
<td id="likenum"><%=b_like%></td>
</tr>
<tr>
<th>내용
<td><%=b_content%></td>
</tr>
<tr>
<td colspan="2">
<%
if (b_userid.equals(userid)) {
%>
<input type="button" value="수정" onclick="location.href='edit.jsp?b_idx=<%=b_idx%>'">
<%-- <input type="button" value="삭제" onclick="location.href='delete_ok.jsp?b_idx=<%=b_idx%>'"> --%>
<input type="button" value="삭제" onclick="del(<%=b_idx%>)">
<%
}
%>
<input type="button" value="리스트" onclick="location.href='./list.jsp'">
<!-- <input type="button" id="like" value="좋아요" onclick="like()"> -->
<%
boolean isLike = false;
String sql="";
try{
conn = Dbconn.getConnection();
if(conn != null){
/* System.out.println("DB연결 성공!"); */
sql = "select * from tb_like where l_boardidx = ? and l_userid = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, num);
pstmt.setString(2, userid);
rs = pstmt.executeQuery();
while(rs.next()){
isLike = true;
}
if(isLike){
%>
<button onclick="like()">
<img title="on" value="true" id="heart" src="https://cdn-icons-png.flaticon.com/512/105/105220.png" width="20px" id="like" />
</button>
<%
}else{%>
<button onclick="like()">
<img title="off" value="false" id="heart" src="https://www.iconpacks.net/icons/2/free-heart-icon-3510-thumb.png" width="20px" id="notlike" />
</button>
<%
}
%>
<%
}
}
catch(Exception e){
e.printStackTrace();
}
%>
</td>
</tr>
</table>
<hr>
<form method="post" action="../re_write_ok.jsp">
<input type="hidden" name="b_username" value=<%=name%>>
<input type="hidden" name="b_userid" value=<%=userid%>>
<input type="hidden" name="b_idx" value="<%=b_idx%>">
<p>
<%=userid%>(<%=b_name%>):<input type="text" name="re_content">
<button>확인</button>
</p>
</form>
<hr>
<%
conn = Dbconn.getConnection();
sql = "";
if (conn != null) {
sql = "select * from tb_reply where re_boardidx=? order by re_idx desc;";
pstmt = conn.prepareStatement(sql); //컴파일하고 나서 set 설정해줘야함!
pstmt.setString(1, num);
rs = pstmt.executeQuery();
}
while (rs.next()) {
re_idx = rs.getString("re_idx");
re_userid = rs.getString("re_userid");
re_name = rs.getString("re_name");
re_content = rs.getString("re_content");
re_regdate = rs.getString("re_regdate");
re_boardidx = rs.getString("re_boardidx");
if(userid.equals(re_userid)){
%>
<p>
☻ <%=re_name%>:
<%=re_content%>(<%=re_regdate%>)
<input type="button" value="삭제" onclick="replyDel('<%=re_idx%>','<%=b_idx%>')">
</p>
<%
}else{
%>
<p>
☻ <%=re_name%>:
<%=re_content%>(<%=re_regdate%>)
</p>
<%
}
}
%>
</body>
</html>
<%
} catch (Exception e) {
e.printStackTrace();
}
%>
write.jsp(게시글작성 페이지)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file = "../include/sessioncheck.jsp"%>
<%
String userid = (String)session.getAttribute("userid");
String name = (String)session.getAttribute("name");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>글쓰기</title>
</head>
<body>
<h2>글쓰기</h2>
<form method="post" action="../write_ok.jsp">
<p>작성자: <%=name %>(<%=userid%>)</p>
<p>제목: <input type="text" name="b_title"></p>
<p>내용</p>
<p><textarea style="width: 300px; height: 200px; resize: none;" name="b_content"></textarea></p>
<p><button>등록</button>
<button type = "reset">재작성</button>
<button type = "button" onclick = "location.href='list.jsp'"> 리스트 </button>
</p>
</form>
</body>
</html>
write_ok.jsp
<%@page import="com.koreait.db.Dbconn"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%@ page import="java.sql.*" %>
<%@ include file="../include/sessioncheck.jsp" %>
<%
request.setCharacterEncoding("UTF-8");
Connection conn = null;
PreparedStatement pstmt = null;
String userid = (String)session.getAttribute("userid");
String name = (String)session.getAttribute("name");
String title = request.getParameter("b_title");
String content = request.getParameter("b_content");
try{
conn = Dbconn.getConnection();
if(conn != null){
/* System.out.println("DB연결 성공!"); */
String sql = "insert into tb_board(b_userid,b_name,b_title,b_content) values(?,?,?,?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, userid);
pstmt.setString(2, name);
pstmt.setString(3, title);
pstmt.setString(4, content);
pstmt.executeUpdate();
}
}catch(Exception e){
e.printStackTrace();
}
%>
<script>
alert('등록되었습니다');
location.href='./list.jsp';
</script>
edit.jsp(게시글수정 페이지)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file = "../include/sessioncheck.jsp"%>
<%@ page import="com.koreait.db.Dbconn"%>
<%@ page import="java.sql.*" %>
<%
String userid = (String)session.getAttribute("userid");
String name = (String)session.getAttribute("name");
String num = request.getParameter("b_idx");
request.setCharacterEncoding("UTF-8");
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String b_title ="";
String b_content = "";
try{
conn = Dbconn.getConnection();
if(conn != null){
/* System.out.println("DB연결 성공!"); */
String sql = "select * from tb_board where b_idx = ?";
pstmt = conn.prepareStatement(sql); //컴파일하고 나서 set 설정해줘야함!
pstmt.setString(1, num );
rs = pstmt.executeQuery();
rs.next();
b_title = rs.getString("b_title");
b_content = rs.getString("b_content");
}
%>
<!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="<%=num%>">
<p>작성자: <%=name %>(<%=userid%>)</p>
<p>제목: <input type="text" name="b_title" value=<%=b_title%>></p>
<p>내용</p>
<p><textarea style="width: 300px; height: 200px; resize: none;" name="b_content" ><%=b_content%></textarea></p>
<p><button>수정</button>
<button type = "reset">재작성</button>
<button type = "button" onclick = "history.back()"> 뒤로 </button>
</p>
</form>
</body>
</html>
<%
}catch(Exception e){
e.printStackTrace();
}
%>
edit_ok.jsp(게시글수정)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file = "../include/sessioncheck.jsp"%>
<%@ page import="com.koreait.db.Dbconn"%>
<%@ page import="java.sql.*" %>
<%
request.setCharacterEncoding("UTF-8");
String b_idx = request.getParameter("b_idx");
String b_title = request.getParameter("b_title");
String b_content = request.getParameter("b_content");
String b_userid =(String)session.getAttribute("userid");
String b_name =(String)session.getAttribute("name");
Connection conn = null;
PreparedStatement pstmt = null;
try{
conn = Dbconn.getConnection();
if(conn != null){
String sql = "update tb_board set b_title=?, b_content=?, b_userid=?, b_name=? where b_idx =?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, b_title);
pstmt.setString(2, b_content);
pstmt.setString(3, b_userid);
pstmt.setString(4, b_name);
pstmt.setString(5, b_idx);
pstmt.executeUpdate();
}
}catch(Exception e){
e.printStackTrace();
}
%>
<script>
alert('수정되었습니다');
location.href='view.jsp?b_idx=<%=b_idx%>';
</script>
delete_ok.jsp (게시글삭제)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file = "../include/sessioncheck.jsp"%>
<%@ page import="com.koreait.db.Dbconn"%>
<%@ page import="java.sql.*" %>
<%
request.setCharacterEncoding("UTF-8");
String b_idx = request.getParameter("b_idx");
String userid = (String)session.getAttribute("userid");
Connection conn = null;
PreparedStatement pstmt = null;
try{
conn = Dbconn.getConnection();
if(conn != null){
String sql = "delete from tb_board where b_idx =? and b_userid=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, b_idx);
pstmt.setString(2,userid);
pstmt.executeUpdate();
}
}catch(Exception e){
e.printStackTrace();
}
%>
<script>
alert('삭제되었습니다');
location.href= 'list.jsp';
</script>
like.jsp(좋아요)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file = "../include/sessioncheck.jsp"%>
<%@page import="com.koreait.db.Dbconn"%>
<%@ page import="java.sql.*" %>
<%
String num = request.getParameter("idx");
String userid = request.getParameter("userid");
String likenum ="";
boolean isLike = false;
request.setCharacterEncoding("UTF-8");
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql="";
try{
conn = Dbconn.getConnection();
if(conn != null){
/* System.out.println("DB연결 성공!"); */
sql = "select * from tb_like where l_boardidx = ? and l_userid = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, num);
pstmt.setString(2, userid);
rs = pstmt.executeQuery();
while(rs.next()){
isLike = true;
}
if(isLike){
String hitminus = "update tb_board set b_like=b_like-1 where b_idx=? ";
pstmt = conn.prepareStatement(hitminus);
pstmt.setString(1, num );
pstmt.executeUpdate();
hitminus = "delete from tb_like where l_boardidx = ? and l_userid = ? ";
pstmt = conn.prepareStatement(hitminus);
pstmt.setString(1, num );
pstmt.setString(2, userid);
pstmt.executeUpdate();
sql = "select * from tb_board where b_idx=? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, num );
rs = pstmt.executeQuery();
while(rs.next()){
likenum=rs.getString("b_like");
out.print(likenum);}
}else{
String hitplus = "update tb_board set b_like=b_like+1 where b_idx=? ";
pstmt = conn.prepareStatement(hitplus);
pstmt.setString(1, num );
pstmt.executeUpdate();
hitplus = "insert into tb_like(l_boardidx,l_userid) values(?,?)";
pstmt = conn.prepareStatement(hitplus);
pstmt.setString(1, num );
pstmt.setString(2, userid);
pstmt.executeUpdate();
sql = "select * from tb_board where b_idx=? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, num );
rs = pstmt.executeQuery();
while(rs.next()){
likenum=rs.getString("b_like");
out.print(likenum);
}
}
}
}catch(Exception e){
e.printStackTrace();
}
%>
re_write_ok.jsp (댓글작성)
<%@page import="com.koreait.db.Dbconn"%>
<%@page import="com.mysql.cj.xdevapi.PreparableStatement"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file = "../include/sessioncheck.jsp"%>
<%@page import="com.koreait.db.Dbconn"%>
<%@ page import="java.sql.*" %>
<%
request.setCharacterEncoding("UTF-8");
String userid = (String)session.getAttribute("userid");
String name = (String)session.getAttribute("name");
String re_content = request.getParameter("re_content");
String b_idx = request.getParameter("b_idx");
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try{
conn = Dbconn.getConnection();
if(conn != null){
String sql ="insert into tb_reply(re_userid, re_name, re_content, re_boardidx) values(?,?,?,?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, userid);
pstmt.setString(2, name);
pstmt.setString(3, re_content);
pstmt.setString(4, b_idx);
pstmt.executeUpdate();
}
}catch(Exception e){
e.printStackTrace();
System.out.println("dddddd");
}
%>
<script>
alert('등록되었습니다');
location.href = 'view.jsp?b_idx=<%=b_idx%>';
</script>
reply_del_ok(댓글삭제)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file = "../include/sessioncheck.jsp"%>
<%@ page import="com.koreait.db.Dbconn"%>
<%@ page import="java.sql.*" %>
<%
request.setCharacterEncoding("UTF-8");
String b_idx = request.getParameter("b_idx");
String re_idx = request.getParameter("re_idx");
String re_userid = request.getParameter("re_userid");
String userid = (String)session.getAttribute("userid");
Connection conn = null;
PreparedStatement pstmt = null;
try{
conn = Dbconn.getConnection();
if(conn != null){
String sql = "delete from tb_reply where re_idx =? and re_userid=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, re_idx);
pstmt.setString(2,userid);
pstmt.executeUpdate();
}
}catch(Exception e){
e.printStackTrace();
}
%>
<script>
alert('삭제되었습니다');
location.href= 'view.jsp?b_idx=<%=b_idx%>';
</script>
반응형
'웹 개발 > 🎆 JSP' 카테고리의 다른 글
JSP | JSP영역,EL표현식,JSTL,Maven,fileupload (0) | 2022.11.30 |
---|---|
JSP | JavaBean,DAO,DTO (0) | 2022.11.29 |
JSP | JSP를이용한 홈페이지구현 - 세션체크, 회원정보수정 (0) | 2022.11.27 |
JSP | JSP를이용한 홈페이지구현 - 로그인,회원가입,로그아웃 (0) | 2022.11.27 |
JSP | include,exception,pageContext,ajax (0) | 2022.11.21 |