일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- jsp연결
- 네트워크
- sql
- 정보처리기사
- 참조타입
- ospf
- Java
- 라우터
- NCS
- jsp
- 오라클
- 자바
- javaee
- rinux
- 원형그래프
- VLAN
- 버추얼머신
- cisco packet
- ciscopacket
- 정처기필기
- 이것이 자바다
- 리눅스
- autoset
- php
- w3school
- Cisco
- html
- Oracle
- 데이터베이스
- 네트워크관리사
- Today
- Total
기록해! 정리해!
JSP - 답변형 게시판 본문
3개의 컬럼을 더 사용한다
1. ref (그룹)
2. re_step (그룹안에서의 순서)
3. re_level (답글의 레벨)
1. 오라클 테이블 생성
Create table member0819(
idx int not null primary key,
name nvarchar2(10) not null,
title nvarchar2(100),
ref number(6),
re_step number(6),
re_level number(6)
);
Create sequence member
Increment by 1 start with 1001
maxvalue 999999;
2. Top 절대경로, 네비에 링크 추가
String path = request.getContextPath();
3. Controller는 서블릿
4. Vo 추가 - 게터세터
5. 메소드 만들기 (Dao / Service)
6. Impl (Dao / Service)
7. ReDaoImpl 에 생성자 만들고 데이터베이스커넥션하기
순서 : 생성자 - 디비커넥션 - SQL
- try/catch
: idx는 자동증가 nextval
: ref는 그룹번호니까 idx랑 같게 써주면 되고
: re_step, re_level은 초기값 1
: 받아올 값은 name과 title 뿐
+ 기존의 DBConnection
package dbpkg;
import java.sql.*;
public class DBConnection {
Connection con = null;
PreparedStatement stmt = null;
ResultSet rs = null;
String url = "jdbc:oracle:thin:@//localhost:1521/xe";
String userId = "system";
String pass = "1234";
private static DBConnection db = new DBConnection();
private DBConnection() { }
public static DBConnection getInstance() {
return db;
}
public Connection getConnection() {
try {
Class.forName("oracle.jdbc.OracleDriver");
con = DriverManager.getConnection(url, userId, pass);
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
public void close1(PreparedStatement stmt, Connection con) {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public void close2(ResultSet rs, PreparedStatement stmt, Connection con) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
8.
form.jsp
: sw 스위치 hidden 히든으로 잡아서 넘기기
list.jsp
9. ReBoardController 서블릿
10. 이미지 첨부
re_level이 1보다 크면 댓글이 있는 거니까 이미지가 나오게 하기.
11 . 제목 title 링크걸어서 답변 쓰기
-- edit
0) list.jsp에 링크걸기
1) edit.jsp
2) 메소드 만들기 (Dao / Service)
3) ServiceImpl
4) DaoImpl
-edit
-reInsert
-reUpdate
5) ReBoardController 서블릿
6) 내림차순 정렬 ReDaoImpl
(최신답글이 위로 오게끔)
7) 결과
땅콩 - 손님2 에 답글로 방랑자3 적기
ㄴ space 이미지로 답글의 답글은 하나씩 옆칸으로 가게 됨
12. 삭제 (delete)
1) delete 메소드 추가
2) ServiceImpl
3) DaoImpl
4) Controller
5) 링크걸기
6) 결과
컬럼 etc 추가하기
1. 오라클 컬럼 추가
alter table member0819 add etc nvarchar2(200) default ' ' not null;
2. form.jsp
<textarea> </textarea> 이렇게 사이에 띄워쓰면
etc 칸에 들여쓰기 되어지니까
붙여써주기
3. edit.jsp
4. Vo 에 etc 추가 - 게터세터
5.ReDaoImpl 에 etc 추가
- insert
- edit
- reInsert
6. ReBoardController 에 etc 추가
- 전역
- insert
- update
7. 결과
+ 3. edit.jsp 수정하기버튼
1. re_edit / up_edit 만들기
- edit.jsp
-re_edit.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page import="dbpkg.reboard.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.net.URLEncoder"%>
<%@ include file="../top.jsp" %>
<section>
<%
ReBoardVo m = (ReBoardVo)request.getAttribute("m");
int idx = m.getIdx();
int ref = m.getRef();
int re_step = m.getRe_step();
int re_level = m.getRe_level();
String title = m.getTitle();
String etc = m.getEtc();
%>
<br> <br>
<div align="center" > <h2> 답변 상세보기 </h2> </div>
<div align="center" >
<form action="<%=path %>/ReBoardController" method=get>
<input type=hidden name=sw value="rewrite" >
<table border=1 width=450 height=150>
<tr> <td>idx</td> <td> <input type=text name=idx value=<%=idx %> > </td> </tr>
<tr> <td>ref</td> <td> <input type=text name=ref value=<%=ref %> > </td> </tr>
<tr> <td>re_step</td> <td> <input type=text name=re_step value=<%=re_step %> > </td> </tr>
<tr> <td>re_level</td> <td> <input type=text name=re_level value=<%=re_level %> > </td> </tr>
<tr> <td>이 름</td> <td> <input type=text name=name > </td> </tr>
<tr> <td>제 목</td> <td> <input type=text name=title size=50 value="<%=title %>" > </td> </tr>
<tr> <td>제 목</td> <td> <textarea cols=40 rows=5 name=etc ><%=etc %></textarea> </td> </tr>
<tr> <td colspan=2 align="center" >
<input type=submit value="답글쓰기"> </td> </tr>
</table>
</form>
</div>
<br>
</section>
<%@ include file="../bottom.jsp" %>
-up_edit.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page import="dbpkg.reboard.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.net.URLEncoder"%>
<%@ include file="../top.jsp" %>
<section>
<%
ReBoardVo m = (ReBoardVo)request.getAttribute("m");
int idx = m.getIdx();
int ref = m.getRef();
int re_step = m.getRe_step();
int re_level = m.getRe_level();
String title = m.getTitle();
String name = m.getName();
String etc = m.getEtc();
%>
<br> <br>
<div align="center" > <h2> 수정 상세보기 </h2> </div>
<div align="center" >
<form action="<%=path %>/ReBoardController" method=get>
<input type=hidden name=sw value="update" >
<table border=1 width=450 height=150>
<tr> <td>idx</td> <td> <input type=text name=idx value=<%=idx %> > </td> </tr>
<tr> <td>ref</td> <td> <input type=text name=ref value=<%=ref %> > </td> </tr>
<tr> <td>re_step</td> <td> <input type=text name=re_step value=<%=re_step %> > </td> </tr>
<tr> <td>re_level</td> <td> <input type=text name=re_level value=<%=re_level %> > </td> </tr>
<tr> <td>이 름</td> <td> <input type=text name=name value=<%=name %> > </td> </tr>
<tr> <td>제 목</td> <td> <input type=text name=title size=50 value="<%=title %>" > </td> </tr>
<tr> <td>제 목</td> <td> <textarea cols=40 rows=5 name=etc ><%=etc %></textarea> </td> </tr>
<tr> <td colspan=2 align="center" >
<input type=submit value="수정하기"> </td> </tr>
</table>
</form>
</div>
<br>
</section>
<%@ include file="../bottom.jsp" %>
2. 메소드 update 추가하기
-Dao / Service
- ServiceImpl
- DaoImpl
3. Controller
4. 결과
조회수 cnt 추가하기
1. 오라클 컬럼 추가
alter table member0819 add cnt int default 1 not null;
2. Vo추가 - 게터세터
3. 메소드 cnt 추가하기
4. ServiceImpl
5. DaoImpl
+ selectAll 에 cnt 추가하고 close2로 바꾸기
(edit도 close2로 바꾸기)
6. Controller
title 눌렀을 때 조회수 올라가게 하기
7. list.jsp에 조회수 추가하기
.
.
8. 결과
'JAVA > JSP' 카테고리의 다른 글
JSP - 답변형 게시판(2) (0) | 2022.08.22 |
---|---|
JSP - 자료실 (0) | 2022.08.08 |
데이터베이스와 JSP 연동 (0) | 2022.08.04 |
JSP 교재(3) - 액션태그 (include / forward ), MVC (0) | 2022.08.04 |
JSP 교재 (2) (0) | 2022.08.03 |