- 2019/09/06 미니 프로젝트 bbs 게시판2019년 11월 22일
- 조별하
- 작성자
- 2019.11.22.:42
7. 게시판 목록과 글쓰기
템플릿으로 게시판을 만들기위해 목록을 볼수 있는 bbsList 와 bbsForm 파일을 생성하자
게시판 목록
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="../header.jsp"%> <!-- 본문시작 bbsList.jsp--> <h3>* 게시판 목록 *</h3> <p><a href="bbsForm.jsp">[글쓰기]</a></p> <!-- 본문 끝 --> <%@ include file="../footer.jsp"%>
게시판 Form
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="../header.jsp"%> <!-- 본문시작 bbsForm.jsp--> <h3>* 글쓰기 *</h3> <p><a href="bbsForm.jsp">[글목록]</a></p> <form name="bbsfrm" method="post" action="bbslns.jsp" onsubmit="return bbsCheck(this)"> <div class="container"> <table class="table table-striped"> <tr> <th>작성자</th> <td><input type="text" name="wname" size="10" maxlength="20" required class="form-control"></td> <!-- required 는 input창에 데이터를 입력하지 않으면 form 을 보낼수 없는 속성이다 --> </tr> <tr> <th>제목</th> <td><input type="text" name="subject" size="30" maxlength="100" required class="form-control"></td> </tr> <tr> <th>내용</th> <td><textarea rows="5" cols="30" name="content" class="form-control"></textarea></td> </tr> <tr> <th>비밀번호</th> <td><input type="password" name="passwd" size="10" maxlength="10" required class="form-control"></td> </tr> <tr> <td colspan="2"> <input type="submit" name="btn1" value="쓰기" class="btn btn-warning"> <input type="reset" name="btn1" value="취소" class="btn btn-warning"> </td> </tr> </table> </div> <!--회원가입 처럼 여러번 코딩을 해보고 숙달하기 --> </form> <!-- 본문 끝 --> <%@ include file="../footer.jsp"%>
1) 테이블 bootstrap
<table class="table table-striped">
2) 폼양식 bootstrap
<input type="text" name="wname" size="10" maxlength="20" required class="form-control">
3)버튼 bootstrap
<input type="submit" name="btn1" value="쓰기" class="btn btn-warning">
8. Server 단 페이지 만들기
DBOpen.java 드라이버 연결
package DBPKG; import java.sql.Connection; import java.sql.DriverManager; public class DBOpen { public static Connection getConnection() throws Exception { Class.forName("oracle.jdbc.OracleDriver"); Connection con=DriverManager.getConnection("jdbc:oracle:thin:@//localhost:1521/xe","system","1234"); return con; } }
DbsDTO
package net.bbs; public class BbsDTO{ //Data Transfer Object 데이터 전송 객체 private int bbsno; private String wname; private String subject; private String content; private String passwd; private int readcnt; private String regdt; private int grpno; private int indent; private int ansnum; private String ip; public BbsDTO() {} public int getBbsno() { return bbsno; } public void setBbsno(int bbsno) { this.bbsno = bbsno; } public String getWname() { return wname; } public void setWname(String wname) { this.wname = wname; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getPasswd() { return passwd; } public void setPasswd(String passwd) { this.passwd = passwd; } public int getReadcnt() { return readcnt; } public void setReadcnt(int readcnt) { this.readcnt = readcnt; } public String getRegdt() { return regdt; } public void setRegdt(String regdt) { this.regdt = regdt; } public int getGrpno() { return grpno; } public void setGrpno(int grpno) { this.grpno = grpno; } public int getIndent() { return indent; } public void setIndent(int indent) { this.indent = indent; } public int getAnsnum() { return ansnum; } public void setAnsnum(int ansnum) { this.ansnum = ansnum; } public String getIp() { return ip; } public void setIp(String ip) { this.ip = ip; } @Override public String toString() { return "BbsDTO [bbsno=" + bbsno + ", wname=" + wname + ", subject=" + subject + ", content=" + content + ", passwd=" + passwd + ", readcnt=" + readcnt + ", regdt=" + regdt + ", grpno=" + grpno + ", indent=" + indent + ", ansnum=" + ansnum + ", ip=" + ip + "]"; } }//class end
9. bbsIns (게시판 Insert)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="ssi.jsp" %> <%--공통페이지 이기 때문에 import 나 usebean 인코딩 을 한페이지에 넣어 놨다 --%> <%@ include file="../header.jsp"%>
공통페이지 이기 때문에 import 나 usebean 인코딩 을 한페이지에 넣어 놨다
1) 사용자가 입력한 정보를 변수에 담기
<% String wname= request.getParameter("wname").trim(); String subject= request.getParameter("subject").trim(); String content= request.getParameter("content").trim(); String passwd= request.getParameter("passwd").trim(); String ip= request.getRemoteAddr();//요청 PC 의 IP 주소 %>
2) 1) 의 내용을 dto 객체에 담기
dto.setWname(wname); dto.setSubject(subject); dto.setContent(content); dto.setPasswd(passwd); dto.setIp(ip);
3) 2) 의 내용을 tb_bbs 테이블에 추가하기
int cnt=dao.insert(dto);
4) 글쓰기 성공후 bbsList.jsp 로 이동하기
if(cnt==0){ out.println("<p>글 추가 실패했습니다</p>"); out.println("<p><a href='javascript:history.back()'>[다시시도]</a></p>"); }else{ out.println("<script>"); out.println(" alert('게시글이 입력되었습니다');"); out.println(" location.href='sungjukList.jsp';");//목록페이지이동 out.println("</script>"); }//if end
DbsDAO
위에서 실행한 insert 를 DAO에 함수를 만들어 준다
public int insert(BbsDTO dto){ int cnt=0; try{ Connection con=DBOpen.getConnection(); StringBuilder sql= new StringBuilder(); sql.append(" INSERT INTO tb_bbs(bbsno,wname,subject,content,passwd,grpno,ip) "); sql.append(" VALUES( "); sql.append(" (select nvl(max(bbsno),0)+1 from tb_bbs) "); sql.append(" ,?,?,?,? "); sql.append(" ,(select nvl(max(bbsno),0)+1 from tb_bbs) "); sql.append(" ,? "); sql.append(" ) "); PreparedStatement pstmt=con.prepareStatement(sql.toString()); pstmt.setString(1,dto.getWname()); pstmt.setString(2,dto.getSubject()); pstmt.setString(3,dto.getContent()); pstmt.setString(4,dto.getPasswd()); pstmt.setString(5,dto.getIp()); cnt=pstmt.executeUpdate(); }catch(Exception e){System.out.println("실패"+e);} return cnt; }
bbsList (게시판 Select)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="ssi.jsp" %> <%@ include file="../header.jsp"%> <!-- 본문시작 bbsList.jsp--> <p><a href="bbsForm.jsp"><button id="me" class="btn btn-warning">쓰기</button></a></p> <h3>* 게시판 목록 *</h3> <div class="container"> <table class="table table-bordered"> <tr> <th style="width:50px">번호</th> <th style="width:100px">작성자</th> <th>제목</th> <th style="width:80px">조회수</th> <th style="width:150px">작성일</th> </tr>
인코딩과 import를 함축해 놓은 ssi.jsp 폴더를 include 해준다
목록을 누르면 가져와야할 번호,작성자,조회수,작성일을 테이블 칼럼으로 생성
<% //전체목록 ArrayList<BbsDTO> list= dao.list(); if(list==null){ out.println("<tr>"); out.println(" <td colspan='5'><strong>관련자료없음!!</strong></td>"); out.println("</tr>"); }else{ for(int idx=0;idx<list.size();idx++){ dto=list.get(idx); %>
ArrayList 클래스로 list 변수를 지정해 준후 dao의 list()메소드를 실행
만약 list의 값이 0이면 데이터불러오기 실패
아니라면 list에 있는 목록들을 인덱스 순으로 불러온다
<tr> <td><%=dto.getBbsno()%></td> <td><%=dto.getWname() %></td> <td><a href="bbsRead.jsp?bbsno=<%=dto.getBbsno()%>&subject=<%=dto.getSubject()%>"><%=dto.getSubject() %></a></td> <td><%=dto.getReadcnt() %></td> <td><%=dto.getRegdt().substring(0,10) %></td> </tr> <% } }//if end %> </table> </div> <!-- 본문 끝 --> <%@ include file="../footer.jsp"%>
위에서 불러온 list의 목록(bbsno,wname,subject,readcnt,regdt) 를 테이블에 값을 넣어준다
<%= %>안에 jsp에서 설정한 값을 담아 값을 불러오기 가능
public ArrayList<BbsDTO> list(){ //list 변수에 null 을 지정 ArrayList<BbsDTO> list=null; //DB에서 가져온 데이터를 list에 모아서 //bbsList.jsp에 전달한다 //즉,ResultSet이 가지고 있는 정보를 list에 모아서 전달!!! try{ Connection con=DBOpen.getConnection(); StringBuilder sql= new StringBuilder(); sql.append(" SELECT bbsno, wname, subject, readcnt, regdt "); sql.append(" FROM tb_bbs"); sql.append(" ORDER BY grpno DESC,ansnum ASC"); PreparedStatement pstmt=con.prepareStatement(sql.toString()); ResultSet rs=pstmt.executeQuery(); //현재 작업을 BbsDAO에서 작업을 하고 있지만 보여주는 것은 BbsList.jsp에서 보여준다 //페이지가 달라졌다 //rs 가 List의 내용을 다 가지고 있기 때문에 rs 를 return으로 보내줘야 한다 //※쿼리문으로 작성해서 조회한 데이터들이 rs에 맨 윗줄을 커서로 가리키며 담겨있다 if(rs.next()){ list=new ArrayList<BbsDTO>(); do{ BbsDTO dto= new BbsDTO(); dto.setBbsno(rs.getInt("bbsno")); dto.setWname(rs.getString("wname")); dto.setSubject(rs.getString("subject")); dto.setReadcnt(rs.getInt("readcnt")); dto.setRegdt(rs.getString("regdt")); list.add(dto); }while(rs.next()); }else{ list=null; } }catch(Exception e){System.out.println("목록실패!!!"+e);} return list; }//list() end
bbsRead (게시판 Read)
상세 페이지는 목록페이지에서 제목을 눌렀을때 이동하는 페이지로, 제목을 눌렀을때 공통값 bbsno을 보내주었다
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="ssi.jsp" %> <%@ include file="../header.jsp"%> <!-- 본문시작 --> <% String subject=request.getParameter("subject"); %>
- 제목을 테이블 안이 아니라 h3 에 넣기 위해 미리 subject값을 불러왔다
<h3><%=subject%></h3> <p> <a href="bbsList.jsp"><button id="me" class="btn btn-warning">목록</button></a> <a href="bbsForm.jsp"><button id="me" class="btn btn-warning">쓰기</button></a> </p> <% int bbsno=Integer.parseInt(request.getParameter("bbsno")); dto=dao.read(bbsno); if(dto==null){ out.print("해당 게시물 없음!!"); }else{ //조회수 증가 dao.incrementCnt(bbsno); %> <div class="container"> <table class="table table-bordered"> <tr> <th style="width:50px">번호</th> <th style="width:100px">작성자</th> <th>내용</th> <th style="width:80px">조회수</th> <th style="width:150px">작성일</th> <th style="width:150px">IP</th> </tr> <tr style="height:50px" > <td><%=dto.getBbsno()%></td> <td><%=dto.getWname()%></td> <td><%=dto.getContent()%></td> <td><%=dto.getReadcnt()%></td> <td><%=dto.getRegdt()%></td> <td><%=dto.getIp()%></td> </tr> <tr> <td colspan="7" > <a href="bbsReply.jsp?bbsno=<%=bbsno%>"><button class="btn btn-warning" >답변</button></a> <a href="bbsUpdate.jsp?bbsno=<%=bbsno%>"><button class="btn btn-warning">수정</button></a> <a href="bbsDel.jsp?bbsno=<%=bbsno%>"><button class="btn btn-warning">삭제</button></a> </td> </tr> </table> </div> <% } %> <!-- 본문 끝 --> <%@ include file="../footer.jsp"%>
read
dao.read 로 bbsno를 매개 변수로 보내 리턴값을 받아온 후 테이블안에 그 불러온 값을 넣어준다
조회수 증가
dao.incrementCnt(bbsno);
DAO 의 read 메소드
public BbsDTO read(int bbsno){ BbsDTO dto=null; try{ Connection con=DBOpen.getConnection(); StringBuilder sql= new StringBuilder(); sql.append( " SELECT bbsno, wname, subject, content, passwd, readcnt, regdt,grpno,indent,ansnum,ip " ); sql.append( " FROM tb_bbs "); sql.append( " WHERE bbsno=? "); PreparedStatement pstmt=con.prepareStatement(sql.toString()); pstmt.setInt(1, bbsno); ResultSet rs=pstmt.executeQuery(); if(rs.next()){ dto=new BbsDTO(); dto.setBbsno(rs.getInt("bbsno")); dto.setWname(rs.getString("wname")); dto.setSubject(rs.getString("subject")); dto.setContent(rs.getString("content")); dto.setPasswd(rs.getString("passwd")); dto.setReadcnt(rs.getInt("readcnt")); dto.setRegdt(rs.getString("regdt")); dto.setGrpno(rs.getInt("grpno")); dto.setIndent(rs.getInt("indent")); dto.setAnsnum(rs.getInt("ansnum")); dto.setIp(rs.getString("ip")); }else{ dto=null; } }catch(Exception e){System.out.println("상세보기실패:"+e);}; return dto; }
DAO 의 조회수 증가 메소드
public void incrementCnt(int bbsno){ try{ Connection con=DBOpen.getConnection(); StringBuilder sql =new StringBuilder(); sql.append(" UPDATE tb_bbs SET "); sql.append(" readcnt=readcnt+1 "); sql.append(" WHERE bbsno=? "); PreparedStatement pstmt= con.prepareStatement(sql.toString()); pstmt.setInt(1,bbsno); pstmt.executeUpdate(); }catch(Exception e){System.out.println("조회수 증가 실패"+e);} }
bbsDel (게시판 Delete)
▶게시판을 글을 삭제하기 위해서 비밀번호를 입력하게 만들어 주고 입력한 비밀번호를 유효성 검사 해준다
bbsDelete.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="ssi.jsp" %> <%@ include file="../header.jsp"%> <!-- 본문시작 --> <h3>* 글 삭제 *</h3> <p><a href="bbsForm.jsp"><button id="me" class="btn btn-warning">쓰기</button></a></p> <form method="post" action="bbsDelProc.jsp" onsubmit="return pwCheck(this)"> <input type="hidden" name="bbsno" value="<%=request.getParameter("bbsno")%>"> <table class="table"> <tr> <th>비밀번호</th> <td><input type="password" name="passwd" required ></td> </tr> <tr> <td colspan="2"> <input type="submit" name="확인" > </td> </tr> </table> </form> <!-- 본문 끝 --> <%@ include file="../footer.jsp"%>
▶dao 의 delete 메소드
public int delete(BbsDTO dto){ int cnt=0; try{ Connection con=DBOpen.getConnection(); StringBuilder sql = new StringBuilder(); sql.append(" DELETE FROM tb_bbs "); sql.append(" WHERE bbsno=? AND passwd=?"); PreparedStatement pstmt= con.prepareStatement(sql.toString()); pstmt.setInt(1, dto.getBbsno()); pstmt.setString(2, dto.getPasswd()); cnt=pstmt.executeUpdate(); }catch(Exception e){System.out.println("삭제실패:"+e);} return cnt; }
pwCheck(this)
function pwCheck(f){ //비밀버호가 4글자 이상 입력 되었는지 검사 var passwd= f.passwd.value; passwd=passwd.trim(); if(passwd.length<4){ alert("비밀번호 4글자이상 입력해 주세요"); f.passwd.focus(); return false; } if(confirm(message)){//확인 true, 취소 false return true; }else{ return false; }//if end }// pwCheck end
bbsDeleteProc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="ssi.jsp" %> <%@ include file="../header.jsp"%> <!-- 본문시작 --> <h3>* 글 삭제 *</h3> <p><a href="bbsForm.jsp"><button id="me" class="btn btn-warning">쓰기</button></a></p> <% int bbsno=Integer.parseInt(request.getParameter("bbsno")); String passwd=request.getParameter("passwd").trim(); dto.setBbsno(bbsno); dto.setPasswd(passwd); int cnt=dao.delete(dto); if(cnt==0){ out.println("<p>글 삭제 실패했습니다</p>"); out.println("<p><a href='javascript:history.back()'>[다시시도]</a></p>"); }else{ out.println("<script>"); out.println(" alert('글이 삭제되었습니다');"); out.println(" location.href='bbsList.jsp';");//목록페이지이동 out.println("</script>"); }//if end %> <!-- 본문 끝 --> <%@ include file="../footer.jsp"%>
bbsUpdate (게시판 Update)
▶게시판 수정도 비밀번호를 입력해야 수정할 수 있게 폼을 만들어 준다
bbdUpdate.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="ssi.jsp" %> <%@ include file="../header.jsp"%> <!-- 본문시작 --> <h3>* 글 수정 *</h3> <p><a href="bbsForm.jsp"><button id="me" class="btn btn-warning">쓰기</button></a></p> <form method="post" action="bbsUpdateForm.jsp" onsubmit="return pwCheck(this)"> <input type="hidden" name="bbsno" value="<%=request.getParameter("bbsno")%>"> <table class="table"> <tr> <th>비밀번호</th> <td><input type="password" name="passwd" size="10" maxlength="10" required ></td> </tr> <tr> <td colspan="2"> <input type="submit" name="확인" > </td> </tr> </table> </form> <!-- 본문 끝 --> <%@ include file="../footer.jsp"%>
bbsUpdateFrom.jsp
▶비밀번호 입력 확인후 맞으면 내용 수정할 수 있는 페이지로
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="ssi.jsp" %> <%@ include file="../header.jsp"%> <!-- 본문시작 --> <h3>* 내용 수정 *</h3> <p> <a href="bbsList.jsp"><button id="me" class="btn btn-warning">목록</button></a> <a href="bbsForm.jsp"><button id="me" class="btn btn-warning">쓰기</button></a> </p> <% int bbsno=Integer.parseInt(request.getParameter("bbsno")); String passwd=request.getParameter("passwd"); dto.setPasswd(passwd); dto.setBbsno(bbsno); dto=dao.updateform(dto); if(dto==null){ out.println("<script>"); out.println(" alert('비밀번호가 일치하지 않습니다');"); out.println(" history.back();"); out.println("</script>"); }else{ %> <form name="bbsfrm" method="post" action="bbsUpdateProc.jsp" onsubmit="return bbsCheck(this)"> <!--넘기는 값이 sno 가 없어서 hidden속성을 넘겨주는 것이 중요하다 --> <input type="hidden" name="bbsno" value="<%=bbsno%>"> <div class="container"> <table class="table table-striped"> <tr> <th>작성자</th> <td><input type="text" name="wname" size="10" maxlength="20" required class="form-control" value="<%=dto.getWname()%>"></td> <!-- required 는 input창에 데이터를 입력하지 않으면 form 을 보낼수 없는 속성이다 --> </tr> <tr> <th >제목</th> <td><input type="text" name="subject" size="30" maxlength="100" required class="form-control" value="<%=dto.getSubject()%>"></td> </tr> <tr> <th>내용</th> <td><textarea rows="5" cols="30" name="content" class="form-control" ><%=dto.getContent()%></textarea></td> </tr> <tr> <th>비밀번호</th> <td><input type="password" name="passwd" size="10" maxlength="10" required class="form-control" value="<%=passwd%>"></td> </tr> <tr> <td colspan="2"> <input type="submit" name="btn1" value="수정" class="btn btn-warning"> <input type="reset" name="btn1" value="취소" class="btn btn-warning"> </td> </tr> </table> </div> </form> <% }//if end %> <!-- 본문 끝 --> <%@ include file="../footer.jsp"%>
bbsUpdateProc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="ssi.jsp" %> <%@ include file="../header.jsp"%> <!-- 본문시작 --> <h3>* 글 수정 결과 *</h3> <% int bbsno=Integer.parseInt(request.getParameter("bbsno")); String passwd=request.getParameter("passwd").trim(); String wname=request.getParameter("wname").trim(); String subject=request.getParameter("subject").trim(); String content=request.getParameter("content").trim(); String ip = request.getRemoteAddr(); dto.setBbsno(bbsno); dto.setPasswd(passwd); dto.setWname(wname); dto.setSubject(subject); dto.setContent(content); dto.setIp(ip); int res=dao.updateProc(dto); if(res==0){ out.println("<p>글 수정 실패했습니다</p>"); out.println("<p><a href='javascript:history.back()'>[다시시도]</a></p>"); }else{ out.println("<script>"); out.println(" alert('글이 수정되었습니다');"); out.println(" location.href='bbsList.jsp';");//목록페이지이동 out.println("</script>"); } %> <!-- 본문 끝 --> <%@ include file="../footer.jsp"%>
updateForm & updateProc
public BbsDTO updateform(BbsDTO dto){ try { Connection con=DBOpen.getConnection(); StringBuilder sql=new StringBuilder(); sql.append(" SELECT wname, subject, content, passwd "); sql.append(" FROM tb_bbs "); sql.append(" WHERE bbsno=? AND passwd=?"); PreparedStatement pstmt=con.prepareStatement(sql.toString()); pstmt.setInt(1,dto.getBbsno()); pstmt.setString(2, dto.getPasswd()); ResultSet rs=pstmt.executeQuery(); if(rs.next()){ dto=new BbsDTO(); dto.setWname(rs.getString("wname")); dto.setSubject(rs.getString("subject")); dto.setContent(rs.getString("content")); dto.setPasswd(rs.getString("passwd")); }else{ dto=null; }//if end }catch(Exception e) { System.out.println("수정 조회 실패 : " + e); }//try end return dto; }//updateForm() end public int updateProc(BbsDTO dto){ int cnt=0; try{ Connection con=DBOpen.getConnection(); StringBuilder sql = new StringBuilder(); sql.append(" UPDATE tb_bbs SET wname=?,subject=?,content=?,passwd=?,ip=? "); sql.append(" WHERE bbsno=? "); PreparedStatement pstmt=con.prepareStatement(sql.toString()); pstmt.setString(1, dto.getWname()); pstmt.setString(2, dto.getSubject()); pstmt.setString(3, dto.getContent()); pstmt.setString(4, dto.getPasswd()); pstmt.setString(5, dto.getIp()); pstmt.setInt(6, dto.getBbsno()); cnt= pstmt.executeUpdate(); }catch(Exception e){System.out.println("수정실패:"+e);} return cnt; }
[답변(댓글)쓰기]
grpno 그룹번호 ,indent 들여쓰기, ansnum 글순서
bbsReply.jsp
▶부모글은 가져오기위해 bbsno을 받고 쓰기 양식의form을 받아온다
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="../header.jsp"%> <!-- 본문시작 --> <h3>* 답변쓰기 *</h3> <% //부모글 가져오기 int bbsno=Integer.parseInt(request.getParameter("bbsno")); %> <form name="bbsfrm" method="post" action="bbsReplyProc.jsp" onsubmit="return bbsCheck(this)"> <input type="hidden" name="bbsno" value="<%=bbsno%>"> <div class="container"> <table class="table table-striped"> <tr> <th>작성자</th> <td><input type="text" name="wname" size="10" maxlength="20" required class="form-control"></td> <!-- required 는 input창에 데이터를 입력하지 않으면 form 을 보낼수 없는 속성이다 --> </tr> <tr> <th >제목</th> <td><input type="text" name="subject" size="30" maxlength="100" required class="form-control"></td> </tr> <tr> <th>내용</th> <td><textarea rows="5" cols="30" name="content" class="form-control"></textarea></td> </tr> <tr> <th>비밀번호</th> <td><input type="password" name="passwd" size="10" maxlength="10" required class="form-control"></td> </tr> <tr> <td colspan="2"> <input type="submit" name="btn1" value="쓰기" class="btn btn-warning"> <input type="reset" name="btn1" value="취소" class="btn btn-warning"> </td> </tr> </table> </div> <!--회원가입 처럼 여러번 코딩을 해보고 숙달하기 --> </form> <!-- 본문 끝 --> <%@ include file="../footer.jsp"%>
bbsReplyProc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="ssi.jsp" %> <%--공통페이지 이기 때문에 import 나 usebean 인코딩 을 한페이지에 넣어 놨다 --%> <%@ include file="../header.jsp"%> <!-- 본문시작 --> <% String wname= request.getParameter("wname").trim(); String subject= request.getParameter("subject").trim(); String content= request.getParameter("content").trim(); String passwd= request.getParameter("passwd").trim(); String ip= request.getRemoteAddr();//요청 PC 의 IP 주소 int bbsno=Integer.parseInt(request.getParameter("bbsno"));//요청 PC 의 IP 주소 dto.setBbsno(bbsno); dto.setWname(wname); dto.setSubject(subject); dto.setContent(content); dto.setPasswd(passwd); dto.setIp(ip); int cnt=dao.insert(dto); if(cnt==0){ out.println("<p>글 추가 실패했습니다</p>"); out.println("<p><a href='javascript:history.back()'>[다시시도]</a></p>"); }else{ out.println("<script>"); out.println(" alert('게시글이 입력되었습니다');"); out.println(" location.href='bbsList.jsp';");//목록페이지이동 out.println("</script>"); }//if end %> <!-- 본문 끝 --> <%@ include file="../footer.jsp"%>
'JAVA 교육 > myWeb' 카테고리의 다른 글
2019/09/09 2. 검색 창 (0) 2019.11.22 2019/09/09 1. 댓글 개수&검색 글 개수 (0) 2019.11.22 2019/09/02 프로젝트 (intro&template) (0) 2019.11.22 2019/10/01 EL과 JSTL (0) 2019.10.01 2019/09/20 메일보내기 (0) 2019.09.20 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)