데일리로그C:
article thumbnail

!!!!관리자 admin 화면!!!!

 

1. admin >> index.jsp  --> 관리자만 볼 수 있음

<bash />
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/admin/include/header.jsp" %> <table width=100% border=0> <tr> <td align=center>관리자 인덱스<td> </tr> </table> <%@ include file="/include/footer.jsp" %>

 

2. admin >> include 폴더

[ header.jsp ]  

<bash />
<%@page import="java.util.Date"%> <%@page import="java.text.SimpleDateFormat"%> <%@page import="java.sql.Statement"%> <%@page import="java.sql.DriverManager"%> <%@page import="java.sql.Connection"%> <%@page import="java.sql.ResultSet"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/include/dbconnection.jsp" %> <% String session_id = (String)session.getAttribute("id"); String session_name = (String)session.getAttribute("name"); String session_level = (String)session.getAttribute("level"); if(session_level != null && session_level.equals("10")) { //관리자 } else { %> <script> alert("꺼져~~"); location.href="/"; </script> <% } %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>관리자 영역</title> <!-- j쿼리 --> <script src="http://code.jquery.com/jquery-1.12.4.min.js"></script> <script src="http://code.jquery.com/jquery-migrate-1.4.1.min.js"></script> <style> body { margin:0px; padding:0px; font-size:11px; } </style> </head> <body> <table width=100% border=0> <tr> <td align=left> <a href="/admin/">[예진 첫페이지]</a> <a href="/">[사용자 첫페이지]</a> </td> <td align=right> <a href="/admin/member/list.jsp">[회원관리]</a> <a href="/admin/bbs/list.jsp">[게시판관리]</a> <a href="">[]</a> <a href="">[]</a> </td> </tr> </table> <hr>

 

 [ footer.jsp ]  

<bash />
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <hr> <table width=100% border=0> <tr> <td align=center>2023@ekfdkfjsd</td> </tr> </table> </body> </html>

 

 

3. admin >> member 폴더

[ list.jsp ]  --> 회원목록

<bash />
<%@page import="java.sql.*"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/admin/include/header.jsp" %> <% request.setCharacterEncoding("utf-8"); String field=""; String search=""; if(request.getParameter("search") != null) { field = request.getParameter("field"); search = request.getParameter("search"); } //총 회원 수 String sql_count = "select count(*) as count from member2"; if(request.getParameter("search") != null) { sql_count = "select count(*) as count from member2 where "+field+" like '%"+search+"%' "; } out.print(sql_count); Connection con_count = DriverManager.getConnection(url, user, password); Statement stmt_count = con_count.createStatement(); ResultSet rs_count = stmt_count.executeQuery(sql_count); int total_record = 0; while(rs_count.next()) { total_record = rs_count.getInt("count"); } //변수 정리 int page_now = 1; //현재 페이징 수 처리 if(request.getParameter("page_now") != null){ page_now = Integer.parseInt(request.getParameter("page_now")); //현재 페이징 수 }else{ page_now = 1; } int num_per_page = 5; //한 페이지당 출력할 게시물 수 int page_per_block = 5; //한 블럭당 출력할 링크 수 int total_page = 0; //총 페이지 수(초기화) int first = 0; //limit 시작 값 total_page = (int)Math.ceil(total_record / (double)num_per_page); //총 페이지 수 first = num_per_page * (page_now - 1); //limit //목록 String sql = "select * from member2 order by memberid asc limit "+first+","+num_per_page+" "; if(request.getParameter("search") != null) { sql = "select * from member2 where "+field+" like '%"+search+"%' order by memberid asc limit "+first+","+num_per_page+" "; } Connection con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql); %> <table width=1200 align=center border=0> <tr> <td>Total :<%=total_record%> </td> <td align=right> <form method="get"> <select name="field"> <option value="memberid">아이디</option> <option value="name">이름</option> <option value="level">회원등급</option> </select> <input name="search" value="<%=search%>"> <button>검색</button> </form> </td> </tr> </table> <table width=1200 align=center border=1> <tr> <td>No</td> <td>아이디</td> <td>이름</td> <td>이메일</td> <td>전화</td> <td>회원등급</td> </tr> <% // 넘버링 int numbering = total_record - (page_now - 1) * num_per_page; while(rs.next()){ String id = rs.getString("memberid"); String name = rs.getString("name"); String email = rs.getString("email"); String phone1 = rs.getString("phone1"); String phone2 = rs.getString("phone2"); String phone3 = rs.getString("phone3"); String level = rs.getString("level"); %> <tr> <td><%=numbering %></td> <td> <a href="view.jsp?memberid=<%=id%>"> <%=id %> </a> </td> <td><%=name %></td> <td><%=email %></td> <td> <%=phone1%> - <%=phone2%> - <%=phone3%> </td> <td><%=level %></td> </tr> <% numbering--; } rs.close(); stmt.close(); con.close(); if(total_record == 0) { // 게시물이 없다면 out.print("<tr><td colspan=6 align=center height=100>작성하신 글이 없습니다.</td></tr>"); } %> </table> <!-- 페이징처리 --> <table width=1200 align=center border=0> <tr> <td align=center> <% int total_block = 0; /* 1~10 : 1블럭, 11~20 : 2블럭, 21~30 :3블럭 */ int block = 0; // 하나의 블럭 int first_page = 0; int last_page = 0; int direct_page = 0; int my_page = 0; total_block = (int)Math.ceil(total_page / (double)page_per_block); //총 블럭 수 block = (int)Math.ceil(page_now / (double)page_per_block); // 현재블럭 first_page = (block - 1) * page_per_block; last_page = block * page_per_block; if(total_block <= block) { last_page = total_page; } //out.print(last_page); // 이전 블럭 처리 if(block == 1){ %> <img src="img/btn_left.gif">&nbsp;&nbsp; <% }else{ my_page = first_page; %> <a href="list.jsp?code=member2&page_now=<%=my_page%>"><img src="img/btn_left.gif"></a>&nbsp;&nbsp; <% } for(direct_page = first_page + 1; direct_page <= last_page; direct_page++){ if(page_now == direct_page){ %> <font color=red><b><%=direct_page%></b></font>&nbsp; <% }else{ %> <b><a href="list.jsp?code=member2&page_now=<%=direct_page%>"><%=direct_page%></a></b>&nbsp; <% } } // 다음 블럭 처리 if(block < total_block) { my_page = last_page + 1; %> &nbsp;<a href="list.jsp?code=member2&page_now=<%=my_page%>"><img src="img/btn_right.gif"></a> <% }else{ %> &nbsp;<img src="img/btn_right.gif"> <% } %> </td> </tr> </table> <table width=1200 align=center border=0> <tr> <td align=right> <a href="join.jsp">[회원가입] </a> </td> </tr> </table> <%@ include file="/admin/include/footer.jsp" %>

 

[ list2.jsp ]

<bash />
<%@page import="java.sql.*"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/admin/include/header.jsp" %> <% request.setCharacterEncoding("utf-8"); String m=""; String n=""; String l=""; String mv=""; String nv=""; String lv=""; if(request.getParameter("memberid") != null) { mv=request.getParameter("memberid"); m = " and memberid like '%"+request.getParameter("memberid")+"%' "; } if(request.getParameter("name") != null) { nv=request.getParameter("name"); n = " and name like '%"+request.getParameter("name")+"%' "; } if(request.getParameter("level") != null) { lv=request.getParameter("level"); l = " and level like '%"+request.getParameter("level")+"%' "; } //총 회원 수 String sql_count = "select count(*) as count from member2 where (1) "+m+n+l+" "; out.print(sql_count); Connection con_count = DriverManager.getConnection(url, user, password); Statement stmt_count = con_count.createStatement(); ResultSet rs_count = stmt_count.executeQuery(sql_count); int total_record = 0; while(rs_count.next()) { total_record = rs_count.getInt("count"); } //변수 정리 int page_now = 1; //현재 페이징 수 처리 if(request.getParameter("page_now") != null){ page_now = Integer.parseInt(request.getParameter("page_now")); //현재 페이징 수 }else{ page_now = 1; } int num_per_page = 5; //한 페이지당 출력할 게시물 수 int page_per_block = 5; //한 블럭당 출력할 링크 수 int total_page = 0; //총 페이지 수(초기화) int first = 0; //limit 시작 값 total_page = (int)Math.ceil(total_record / (double)num_per_page); //총 페이지 수 first = num_per_page * (page_now - 1); //limit //목록 String sql = "select * from member2 where (1) "+m+n+l+" order by memberid asc limit "+first+","+num_per_page+" "; Connection con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql); %> <table width=1200 align=center border=0> <tr> <td>Total :<%=total_record%> </td> <td align=right> <form method="get"> 아이디 : <input name="memberid" value="<%=mv%>"> 이름 : <input name="name" value="<%=nv%>"> 등급 : <input name="level" value="<%=lv%>"> <button>검색</button> </form> </td> </tr> </table> <table width=1200 align=center border=1> <tr> <td>No</td> <td>아이디</td> <td>이름</td> <td>이메일</td> <td>전화</td> <td>회원등급</td> </tr> <% // 넘버링 int numbering = total_record - (page_now - 1) * num_per_page; while(rs.next()){ String id = rs.getString("memberid"); String name = rs.getString("name"); String email = rs.getString("email"); String phone1 = rs.getString("phone1"); String phone2 = rs.getString("phone2"); String phone3 = rs.getString("phone3"); String level = rs.getString("level"); %> <tr> <td><%=numbering %></td> <td> <a href="view.jsp?memberid=<%=id%>"> <%=id %> </a> </td> <td><%=name %></td> <td><%=email %></td> <td> <%=phone1%> - <%=phone2%> - <%=phone3%> </td> <td><%=level %></td> </tr> <% numbering--; } rs.close(); stmt.close(); con.close(); if(total_record == 0) { // 게시물이 없다면 out.print("<tr><td colspan=6 align=center height=100>작성하신 글이 없습니다.</td></tr>"); } %> </table> <!-- 페이징처리 --> <table width=1200 align=center border=0> <tr> <td align=center> <% int total_block = 0; /* 1~10 : 1블럭, 11~20 : 2블럭, 21~30 :3블럭 */ int block = 0; // 하나의 블럭 int first_page = 0; int last_page = 0; int direct_page = 0; int my_page = 0; total_block = (int)Math.ceil(total_page / (double)page_per_block); //총 블럭 수 block = (int)Math.ceil(page_now / (double)page_per_block); // 현재블럭 first_page = (block - 1) * page_per_block; last_page = block * page_per_block; if(total_block <= block) { last_page = total_page; } //out.print(last_page); // 이전 블럭 처리 if(block == 1){ %> <img src="img/btn_left.gif">&nbsp;&nbsp; <% }else{ my_page = first_page; %> <a href="list.jsp?code=member2&page_now=<%=my_page%>"><img src="img/btn_left.gif"></a>&nbsp;&nbsp; <% } for(direct_page = first_page + 1; direct_page <= last_page; direct_page++){ if(page_now == direct_page){ %> <font color=red><b><%=direct_page%></b></font>&nbsp; <% }else{ %> <b><a href="list.jsp?code=member2&page_now=<%=direct_page%>"><%=direct_page%></a></b>&nbsp; <% } } // 다음 블럭 처리 if(block < total_block) { my_page = last_page + 1; %> &nbsp;<a href="list.jsp?code=member2&page_now=<%=my_page%>"><img src="img/btn_right.gif"></a> <% }else{ %> &nbsp;<img src="img/btn_right.gif"> <% } %> </td> </tr> </table> <table width=1200 align=center border=0> <tr> <td align=right> <a href="join.jsp">[회원가입] </a> </td> </tr> </table> <%@ include file="/admin/include/footer.jsp" %>

 

[ write.jsp ]

<bash />
ㄹㅇ

 

[ view.jsp ]  --> 회원 상세목록

<bash />
<%@page import="java.sql.*"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/admin/include/header.jsp" %> <!-- 한명 자료 상세하게 보이게 --> <% String id = request.getParameter("memberid"); String sql = "select * from member2 where memberid='"+id+"'"; /* sql이랑 연동시키기 위함 */ Connection con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql); String mem_id = ""; /* [수정]에 아이디 박제를 위해 전역변수 선언 */ if(rs.next()) { mem_id = rs.getString("memberid"); %> <table width=1200 align=center border=1> <tr> <td>아이디</td> <td>비밀번호</td> <td>이름</td> <td>이메일</td> <td>전화</td> <td>주소</td> <td>회원등급</td> </tr> <tr> <td><%=mem_id %></td> <td><%=rs.getString("password") %></td> <td><%=rs.getString("name") %></td> <td><%=rs.getString("email") %></td> <td> <%=rs.getString("phone1") %> - <%=rs.getString("phone2") %> - <%=rs.getString("phone3") %> </td> <td> <%=rs.getString("zipcode") %> <%=rs.getString("zipcode1") %> <%=rs.getString("zipcode2") %> <%=rs.getString("zipcode3") %> <%=rs.getString("zipcode4") %> </td> <td align=center><%=rs.getString("level") %></td> </tr> </table> <% } rs.close(); stmt.close(); con.close(); %> <table width=1200 align=center border=0> <tr> <td><a href="list.jsp">[목록]</a></td> <td align=right> <a href="modify.jsp?id=<%=mem_id%>" >[수정]</a> <span onclick="delete_ok()" style="cursor:pointer">[삭제]</span> </td> </tr> </table> <script> function delete_ok() { var str = confirm("정말로 삭제하시겠습니까?"); if(str == true) { location.href="delete.jsp?id=<%=mem_id%>"; } } </script> <%@ include file="/admin/include/footer.jsp" %>

 

[ modify.jsp ]  --> 회원수정

<bash />
<%@page import="java.sql.*"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/admin/include/header.jsp" %> <% String id = request.getParameter("id"); /* 변수 선언 */ String sql = "select * from member2 where memberid='"+id+"'"; Connection con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql); String member_id = ""; String member_pass = ""; String member_name = ""; String member_email1 = ""; String member_email2 = ""; String z = ""; String z1 = ""; String z2 = ""; String z3 = ""; String z4 = ""; String p1 = ""; String p2 = ""; String p3 = ""; String level =""; while(rs.next()) { // rs객체는 칼럼명(DB) member_id = rs.getString("memberid"); member_pass = rs.getString("password"); member_name = rs.getString("name"); String[] member_email = rs.getString("email").split("@"); member_email1 = member_email[0]; // 메일주소 아이디 member_email2 = member_email[1]; // 메일주소 도메인 z = rs.getString("zipcode"); z1 = rs.getString("zipcode1"); z2 = rs.getString("zipcode2"); z3 = rs.getString("zipcode3"); z4 = rs.getString("zipcode4"); p1 = rs.getString("phone1"); p2 = rs.getString("phone2"); p3 = rs.getString("phone3"); level = rs.getString("level"); } %> <table width=100% border=0> <tr> <td align=center>[회원수정]</td> </tr> </table> <script> function join_up() { if(m_id.value == "") { alert("아이디를 입력하세요"); m.id.focus(); return; } if(m_pass.value == "") { alert("비밀번호를 입력하세요"); m.pass.focus(); return; } if(m_name.value == "") { alert("이름을 입력하세요"); m.name.focus(); return; } document.join.submit(); // join을 action(insert.jsp)에 get 방식으로 보내기 } </script> <form name="join" action="update.jsp" method="post"> <table width=1000 align="center" border=0> <tr> <td width=300 align="center">아이디</td> <td width=700> <input id="m_id" name="m_id" value="<%=member_id%>"> <input type="button" value="아이디 중복체크" onclick="join_ok()"> </td> </tr> <tr> <td align="center">비밀번호</td> <td><input id="m_pass" name="m_pass" value="<%=member_pass%>"></td> </tr> <tr> <td align="center">이름</td> <td><input id="m_name" name="m_name" value="<%=member_name%>"></td> </tr> <tr> <td align="center">연락처</td> <td> <input id="m_phone1" name="m_phone1" style="width:30px;" value="<%=p1%>"> - <input id="m_phone2" name="m_phone2" style="width:45px;" value="<%=p2%>"> - <input id="m_phone3" name="m_phone3" style="width:45px;" value="<%=p3%>"> </td> </tr> <tr> <td align="center">이메일</td> <td> <input id="m_email1" name="m_email1" value="<%=member_email1%>">@ <input id="m_email2" name="m_email2" value="<%=member_email2%>"> <select id="domain" onchange="m_email2.value = this.value"> <option value="=직접입력=">=직접입력=</option> <option value="naver.com">naver.com</option> <option value="gmail.com">gmail.com</option> <option value="nate.com">nate.com</option> </select> </td> </tr> <tr> <td align="center">주소</td> <td> <input type="text" id="sample4_postcode" name="zipcode" placeholder="우편번호" value="<%=z%>"> <input type="button" onclick="sample4_execDaumPostcode()" value="우편번호 찾기"><br> </td> </tr> <tr> <td></td> <td> <input type="text" id="sample4_roadAddress" name="zipcode1" placeholder="도로명주소" value="<%=z1%>"> <input type="text" id="sample4_jibunAddress" name="zipcode2" placeholder="지번주소" value="<%=z2%>"> <span id="guide" style="color:#999;display:none"></span> </td> </tr> <tr> <td></td> <td> <input type="text" id="sample4_detailAddress" name="zipcode3" placeholder="상세주소" value="<%=z3%>"> <input type="text" id="sample4_extraAddress" name="zipcode4" placeholder="참고항목" value="<%=z4%>"> </td> </tr> <tr> <td align="center">회원등급</td> <td> <select id="level" name="level" onchange="level.value = this.value"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> </select> </td> </tr> <tr> <td colspan=2 height=10px></td> </tr> <tr> <td></td> <td> <input type="button" value="회원수정" onclick="join_up()"> </td> </tr> </table> </form> <script src="//t1.daumcdn.net/mapjsapi/bundle/postcode/prod/postcode.v2.js"></script> <script> //본 예제에서는 도로명 주소 표기 방식에 대한 법령에 따라, 내려오는 데이터를 조합하여 올바른 주소를 구성하는 방법을 설명합니다. function sample4_execDaumPostcode() { new daum.Postcode({ oncomplete: function(data) { // 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분. // 도로명 주소의 노출 규칙에 따라 주소를 표시한다. // 내려오는 변수가 값이 없는 경우엔 공백('')값을 가지므로, 이를 참고하여 분기 한다. var roadAddr = data.roadAddress; // 도로명 주소 변수 var extraRoadAddr = ''; // 참고 항목 변수 // 법정동명이 있을 경우 추가한다. (법정리는 제외) // 법정동의 경우 마지막 문자가 "동/로/가"로 끝난다. if(data.bname !== '' && /[동|로|가]$/g.test(data.bname)){ extraRoadAddr += data.bname; } // 건물명이 있고, 공동주택일 경우 추가한다. if(data.buildingName !== '' && data.apartment === 'Y'){ extraRoadAddr += (extraRoadAddr !== '' ? ', ' + data.buildingName : data.buildingName); } // 표시할 참고항목이 있을 경우, 괄호까지 추가한 최종 문자열을 만든다. if(extraRoadAddr !== ''){ extraRoadAddr = ' (' + extraRoadAddr + ')'; } // 우편번호와 주소 정보를 해당 필드에 넣는다. document.getElementById('sample4_postcode').value = data.zonecode; document.getElementById("sample4_roadAddress").value = roadAddr; document.getElementById("sample4_jibunAddress").value = data.jibunAddress; // 참고항목 문자열이 있을 경우 해당 필드에 넣는다. if(roadAddr !== ''){ document.getElementById("sample4_extraAddress").value = extraRoadAddr; } else { document.getElementById("sample4_extraAddress").value = ''; } var guideTextBox = document.getElementById("guide"); // 사용자가 '선택 안함'을 클릭한 경우, 예상 주소라는 표시를 해준다. if(data.autoRoadAddress) { var expRoadAddr = data.autoRoadAddress + extraRoadAddr; guideTextBox.innerHTML = '(예상 도로명 주소 : ' + expRoadAddr + ')'; guideTextBox.style.display = 'block'; } else if(data.autoJibunAddress) { var expJibunAddr = data.autoJibunAddress; guideTextBox.innerHTML = '(예상 지번 주소 : ' + expJibunAddr + ')'; guideTextBox.style.display = 'block'; } else { guideTextBox.innerHTML = ''; guideTextBox.style.display = 'none'; } } }).open(); } </script> <%@ include file="/include/footer.jsp" %>

 

[ delete.jsp ]  --> 회원삭제

<bash />
<%@page import="java.sql.*"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/include/header.jsp" %> <% String id = request.getParameter("id"); String sql = "delete from member2 where memberid='"+id+"'"; Connection con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement(); stmt.executeUpdate(sql); %> <script> location.href="list.jsp"; </script>

 

[ update.jsp ]  --> DB 연동

<bash />
<%@page import="java.sql.*"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/admin/include/header.jsp" %> <% request.setCharacterEncoding("utf-8"); String id = request.getParameter("m_id"); String pass = request.getParameter("m_pass"); String name = request.getParameter("m_name"); String email = request.getParameter("m_email1") + "@"+ request.getParameter("m_email2"); String z = request.getParameter("zipcode"); String z1 = request.getParameter("zipcode1"); String z2 = request.getParameter("zipcode2"); String z3 = request.getParameter("zipcode3"); String z4 = request.getParameter("zipcode4"); String p1 = request.getParameter("m_phone1"); String p2 = request.getParameter("m_phone2"); String p3 = request.getParameter("m_phone3"); String level = request.getParameter("level"); out.print("아이디: "+id+"<br>"); out.print("비밀번호: "+pass+"<br>"); out.print("이름: "+name+"<br>"); out.print("이메일: "+ email+"<br>"); //DB에 저장해보자 String sql = "update member2 set password='"+pass+"', name='"+name+"', email='"+email+"', zipcode='"+z+"', zipcode1='"+z1+"',zipcode2='"+z2+"',zipcode3='"+z3+"',zipcode4='"+z4+"',phone1='"+p1+"',phone2='"+p2+"',phone3='"+p3+"', level='"+level+"' where memberid='"+id+"' "; Connection con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement(); stmt.executeUpdate(sql); %> <script> alert("수정되었습니다"); location.href="list.jsp"; </script> %>

 

[ join.jsp ]  --> 관리자가 회원가입 해줄 때 이용

<bash />
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/admin/include/header.jsp" %> <table width=100% border=0> <tr> <td align=center>[회원가입]</td> </tr> </table> <script> function join_ok() { if(join.m_id.value == "") { alert("아이디를 입력하세요"); join.m_id.focus(); return; } if(join.m_pass.value == "") { alert("비밀번호를 입력하세요"); m_pass.focus(); return; } if(join.m_name.value == "") { alert("이름을 입력하세요"); join.m_name.focus(); return; } if(id_check2.value == 'n') { alert("아이디 중복체크를 하세요."); return; } document.join.submit(); // join을 action(insert.jsp)에 get 방식으로 보내기 } function id_check(id) { window.open("id_check.jsp?id="+id, "a", "width=300,height=200"); } </script> <form name="join" action="insert.jsp" method="post"> <input type="hidden" id="id_check2" name="id_check2" value="n"> <table width=1000 align="center" border=0> <tr> <td>아이디</td> <td> <input id="m_id" name="m_id"> <input type="button" value="아이디 중복체크" onclick="id_check(m_id.value)"> </td> </tr> <tr> <td>비밀번호</td> <td><input id="m_pass" name="m_pass"></td> </tr> <tr> <td>이름</td> <td><input id="m_name" name="m_name"></td> </tr> <tr> <td>연락처</td> <td> <input id="m_phone1" name="m_phone1" style="width:30px;"> - <input id="m_phone2" name="m_phone2" style="width:45px;"> - <input id="m_phone3" name="m_phone3" style="width:45px;"> </td> </tr> <tr> <td>이메일</td> <td> <input id="m_email1" name="m_email1">@ <input id="m_email2" name="m_email2"> <select id="domain" onchange="m_email2.value = this.value"> <option value="=직접입력=">=직접입력=</option> <option value="naver.com">naver.com</option> <option value="gmail.com">gmail.com</option> <option value="nate.com">nate.com</option> </select> </td> </tr> <tr> <td>주소</td> <td> <input type="text" id="sample4_postcode" name="zipcode" placeholder="우편번호"> <input type="button" onclick="sample4_execDaumPostcode()" value="우편번호 찾기"><br> </td> </tr> <tr> <td></td> <td> <input type="text" id="sample4_roadAddress" name="zipcode1" placeholder="도로명주소"> <input type="text" id="sample4_jibunAddress" name="zipcode2" placeholder="지번주소"> <span id="guide" style="color:#999;display:none"></span> </td> </tr> <tr> <td></td> <td> <input type="text" id="sample4_detailAddress" name="zipcode3" placeholder="상세주소"> <input type="text" id="sample4_extraAddress" name="zipcode4" placeholder="참고항목"> </td> </tr> <tr> <td>회원등급</td> <td> <select id="level" name="level" onchange="level.value = this.value"> <option value="1" selected>1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> </select> </td> </tr> <tr> <td></td> <td> <input type="button" value="회원가입" onclick="join_ok()"> </td> </tr> </table> </form> <script src="//t1.daumcdn.net/mapjsapi/bundle/postcode/prod/postcode.v2.js"></script> <script> //본 예제에서는 도로명 주소 표기 방식에 대한 법령에 따라, 내려오는 데이터를 조합하여 올바른 주소를 구성하는 방법을 설명합니다. function sample4_execDaumPostcode() { new daum.Postcode({ oncomplete: function(data) { // 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분. // 도로명 주소의 노출 규칙에 따라 주소를 표시한다. // 내려오는 변수가 값이 없는 경우엔 공백('')값을 가지므로, 이를 참고하여 분기 한다. var roadAddr = data.roadAddress; // 도로명 주소 변수 var extraRoadAddr = ''; // 참고 항목 변수 // 법정동명이 있을 경우 추가한다. (법정리는 제외) // 법정동의 경우 마지막 문자가 "동/로/가"로 끝난다. if(data.bname !== '' && /[동|로|가]$/g.test(data.bname)){ extraRoadAddr += data.bname; } // 건물명이 있고, 공동주택일 경우 추가한다. if(data.buildingName !== '' && data.apartment === 'Y'){ extraRoadAddr += (extraRoadAddr !== '' ? ', ' + data.buildingName : data.buildingName); } // 표시할 참고항목이 있을 경우, 괄호까지 추가한 최종 문자열을 만든다. if(extraRoadAddr !== ''){ extraRoadAddr = ' (' + extraRoadAddr + ')'; } // 우편번호와 주소 정보를 해당 필드에 넣는다. document.getElementById('sample4_postcode').value = data.zonecode; document.getElementById("sample4_roadAddress").value = roadAddr; document.getElementById("sample4_jibunAddress").value = data.jibunAddress; // 참고항목 문자열이 있을 경우 해당 필드에 넣는다. if(roadAddr !== ''){ document.getElementById("sample4_extraAddress").value = extraRoadAddr; } else { document.getElementById("sample4_extraAddress").value = ''; } var guideTextBox = document.getElementById("guide"); // 사용자가 '선택 안함'을 클릭한 경우, 예상 주소라는 표시를 해준다. if(data.autoRoadAddress) { var expRoadAddr = data.autoRoadAddress + extraRoadAddr; guideTextBox.innerHTML = '(예상 도로명 주소 : ' + expRoadAddr + ')'; guideTextBox.style.display = 'block'; } else if(data.autoJibunAddress) { var expJibunAddr = data.autoJibunAddress; guideTextBox.innerHTML = '(예상 지번 주소 : ' + expJibunAddr + ')'; guideTextBox.style.display = 'block'; } else { guideTextBox.innerHTML = ''; guideTextBox.style.display = 'none'; } } }).open(); } </script> <%@ include file="/include/footer.jsp" %>

 

[ insert.jsp ]

<bash />
<%@page import="java.sql.*"%> <%-- <%@page import="java.sql.DriverManager"%> <%@page import="java.sql.Statement"%> <%@page import="java.sql.Connection"%> --%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/include/header.jsp" %> <% //넘어온 값 중에 한글이 있다면 캐릭터셋 : 매칭처리함 request.setCharacterEncoding("utf-8"); // 4대 내장 객체(이미 만들어져있는 객체) 중 request String id = request.getParameter("m_id"); String pass = request.getParameter("m_pass"); String name = request.getParameter("m_name"); String email = request.getParameter("m_email1") + "@"+ request.getParameter("m_email2"); String z = request.getParameter("zipcode"); String z1 = request.getParameter("zipcode1"); String z2 = request.getParameter("zipcode2"); String z3 = request.getParameter("zipcode3"); String z4 = request.getParameter("zipcode4"); String p1 = request.getParameter("m_phone1"); String p2 = request.getParameter("m_phone2"); String p3 = request.getParameter("m_phone3"); out.print("아이디: "+id+"<br>"); out.print("비밀번호: "+pass+"<br>"); out.print("이름: "+name+"<br>"); out.print("이메일: "+ email+"<br>"); //DB에 저장해보자 String sql = "insert into member2 values('"+id+"','"+pass+"','"+name+"','"+email+"','1','"+z+"','"+z1+"','"+z2+"','"+z3+"','"+z4+"','"+p1+"','"+p2+"','"+p3+"')"; Connection con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement(); stmt.executeUpdate(sql); /* insert, update, delete 구문 */ %> <script> location.href="list.jsp"; </script>

 

 

[ id_check.jsp ]

<bash />
<%@page import="java.sql.ResultSet"%> <%@page import="java.sql.Statement"%> <%@page import="java.sql.DriverManager"%> <%@page import="java.sql.Connection"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/include/dbconnection.jsp" %> <% String id = request.getParameter("id"); String sql = "select count(*) from member2 where memberid='"+id+"' "; Connection con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql); int total =0; //초기화 while(rs.next()) { // 칼럼 순서대로 숫자 가져올 수도있음 total = rs.getInt(1); } %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <script> function okok() { opener.join.id_check2.value = 'y'; // opener : 부모창을 지칭 opener.join.m_id.value = id.value; self.close(); } </script> <form action="" method="get"> <!-- 자기 자신에게 값 전송 --> <table> <tr> <td>아이디</td> <td><input id="id" name="id" value="<%=id%>"></td> </tr> <tr> <td colspan=2> <%if(total ==0){ %> 사용 가능한 아이디입니다 <input type="button" onclick="okok()" value="사용하기"> <%} else { %> <font color=red>이미 사용중인 아이디 입니다.</font> <button>재검색</button> <%} %> </td> </tr> </table> </form> </body> </html>

 


4. admin >> bbs 폴더 --> 게시판 모듈

[ list.jsp ]  --> 게시글 목록

<bash />
<%@page import="java.sql.*"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/admin/include/header.jsp" %> <% request.setCharacterEncoding("utf-8"); String field=""; String search=""; if(request.getParameter("search") != null) { field = request.getParameter("field"); search = request.getParameter("search"); } //총 회원 수 String sql_count = "select count(*) as count from notice"; if(request.getParameter("search") != null) { sql_count = "select count(*) as count from notice where "+field+" like '%"+search+"%' "; } out.print(sql_count); Connection con_count = DriverManager.getConnection(url, user, password); Statement stmt_count = con_count.createStatement(); ResultSet rs_count = stmt_count.executeQuery(sql_count); int total_record = 0; while(rs_count.next()) { total_record = rs_count.getInt("count"); } //변수 정리 int page_now = 1; //현재 페이징 수 처리 if(request.getParameter("page_now") != null){ page_now = Integer.parseInt(request.getParameter("page_now")); //현재 페이징 수 }else{ page_now = 1; } int num_per_page = 5; //한 페이지당 출력할 게시물 수 int page_per_block = 5; //한 블럭당 출력할 링크 수 int total_page = 0; //총 페이지 수(초기화) int first = 0; //limit 시작 값 total_page = (int)Math.ceil(total_record / (double)num_per_page); //총 페이지 수 first = num_per_page * (page_now - 1); //limit //목록 String sql = "select * from notice order by uid asc limit "+first+","+num_per_page+" "; if(request.getParameter("search") != null) { sql = "select * from notice where "+field+" like '%"+search+"%' order by uid asc limit "+first+","+num_per_page+" "; } Connection con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql); %> <!-- 검색 --> <table width=1200 align=center border=0> <tr> <td>Total :<%=total_record%> </td> <td align=right> <form method="get"> <select name="field"> <option value="subject">제목</option> <option value="name">작성자</option> <option value="signdate">작성일</option> </select> <input name="search" value="<%=search%>"> <button>검색</button> </form> </td> </tr> </table> <!-- title --> <table width=1200 align=center border=1> <tr> <td width=50 class="td_title">No</td> <td width=800 class="td_title">제목</td> <td width=100 class="td_title">작성자</td> <td width=200 class="td_title">날짜</td> <td width=50 class="td_title">조회수</td> </tr> <% // 넘버링 int numbering = total_record - (page_now - 1) * num_per_page; while(rs.next()) { int uid = rs.getInt("uid"); String gongji = rs.getString("gongji"); String subject = rs.getString("subject"); String id = rs.getString("id"); String name = rs.getString("name"); String signdate = rs.getString("signdate").substring(0,10); int ref = rs.getInt("ref"); %> <tr> <td><%=uid %></td> <td><a href="view.jsp?subject=<%=subject%>"> <%=subject%></a></td> <td><%=name%></td> <td><%=signdate%></td> <td><%=ref%></td> </tr> <% numbering--; } rs.close(); stmt.close(); con.close(); if(total_record == 0) { // 게시물이 없다면 out.print("<tr><td colspan=5 align=center height=100>작성하신 글이 없습니다.</td></tr>"); } %> </table> <!-- 페이징처리 --> <table width=1200 align=center border=0> <tr> <td align=center> <% int total_block = 0; /* 1~10 : 1블럭, 11~20 : 2블럭, 21~30 :3블럭 */ int block = 0; // 하나의 블럭 int first_page = 0; int last_page = 0; int direct_page = 0; int my_page = 0; total_block = (int)Math.ceil(total_page / (double)page_per_block); //총 블럭 수 block = (int)Math.ceil(page_now / (double)page_per_block); // 현재블럭 first_page = (block - 1) * page_per_block; last_page = block * page_per_block; if(total_block <= block) { last_page = total_page; } //out.print(last_page); // 이전 블럭 처리 if(block == 1){ %> <img src="img/btn_left.gif">&nbsp;&nbsp; <% }else{ my_page = first_page; %> <a href="list.jsp?code=notice&page_now=<%=my_page%>"><img src="img/btn_left.gif"></a>&nbsp;&nbsp; <% } for(direct_page = first_page + 1; direct_page <= last_page; direct_page++){ if(page_now == direct_page){ %> <font color=red><b><%=direct_page%></b></font>&nbsp; <% }else{ %> <b><a href="list.jsp?code=notice&page_now=<%=direct_page%>"><%=direct_page%></a></b>&nbsp; <% } } // 다음 블럭 처리 if(block < total_block) { my_page = last_page + 1; %> &nbsp;<a href="list.jsp?code=notice&page_now=<%=my_page%>"><img src="img/btn_right.gif"></a> <% }else{ %> &nbsp;<img src="img/btn_right.gif"> <% } %> </td> </tr> </table> <%@ include file="/admin/include/footer.jsp" %>

 

[ view.jsp ]

<bash />
<%@page import="java.sql.ResultSet"%> <%@page import="java.sql.Statement"%> <%@page import="java.sql.DriverManager"%> <%@page import="java.sql.Connection"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/admin/include/header.jsp" %> <% // int uid = Integer.parseInt(request.getParameter("uid")); String uid = request.getParameter("uid"); String code = request.getParameter("code"); //조회수 +1 처리 String sql_ref = "update "+code+" set ref = ref + 1 where uid="+uid+" "; Connection con_ref = DriverManager.getConnection(url, user, password); Statement stmt_ref = con_ref.createStatement(); stmt_ref.executeUpdate(sql_ref); stmt_ref.close(); con_ref.close(); //한건의 데이터 가져오기 String sql = "select * from "+code+" where uid="+uid+" "; /* 숫자여서 */ Connection con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql); if(rs.next()) { String gongji = rs.getString("gongji"); String id = rs.getString("id"); String file1 = rs.getString("file1"); if(gongji.equals("3")) { // 비밀글일때 if(session_level != null && session_level.equals("10")){ // 관리자 } else if(session_id !=null && session_id.equals("id")) { // 작성자 } else { // 접근금지 %> <script> alert("제대로 된 경로가 아닙니다 첫페이지로 이동합니다."); location.href="/;" </script> <% } } else { // 공지글이나 일반글일때 } %> <table width=1200 align=center border=1> <tr> <td align=right> 글쓴이: <%=rs.getString("name") %> 조회수: <%=rs.getInt("ref") %> </td> </tr> <tr> <td> <!-- 제목 --> <%=rs.getString("subject") %> </td> </tr> <tr> <td> <!-- 내용 --> <%if(!file1.equals("")) {%> <!-- 첨부파일이 있다면 보여주기 --> <img src="/upload/<%=file1%>"><br> <%}%> <%=rs.getString("comment") %> </td> </tr> <tr> <td> 첨부파일 : <a href="/upload/<%=file1%>" download><%=file1%></a> </td> </tr> </table> <% } rs.close(); stmt.close(); con.close(); %> <table width=1200 align=center border=0> <tr> <td><a href="list.jsp?code=<%=code%>">[목록]</a></td> <td align=right> <a href="modify.jsp?code=<%=code%>&uid=<%=uid%>">[수정]</a> <span onclick="delete_ok()" style="cursor:pointer">[삭제]</span> </td> </tr> </table> <script> function delete_ok() { var str = confirm("정말로 삭제하시겠습니까?"); if(str == true) { location.href="delete.jsp?code=<%=code%>"; } } </script> <%@ include file="/include/footer.jsp" %>

 

[ write.jsp ]

<bash />
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/include/header.jsp" %> <% String code = request.getParameter("code"); %> <script> function write_go() { if(gongjl.value == "") { alert("옵션을 체크하세요.") return false; } if(subject.value == "") { alert("제목을 입력하세요.") subject.focus(); return false; } if(!comment.value){ // "" or null 이거나 둘 다 체크함 alert("내용을 입력하세요.") comment.focus; return false; } } </script> <form action="insert.jsp" method="post" onsubmit="return write_go()" enctype="multipart/form-data"> <input type="hidden" name="code" value="<%=code%>"> <table width=1200 align=center border=1> <tr> <td>옵션</td> <td> <input type="radio" id="gongjl" name="gongji" value="1">공지 <input type="radio" id="gongjl" name="gongji" value="2" checked>일반 <input type="radio" id="gongjl" name="gongji" value="3">비밀 </td> </tr> <tr> <td>제목</td> <td><input id="subject" name="subject" style="width:99%"></td> </tr> <tr> <td>내용</td> <td> <textarea id="comment" name="comment" style="width:99%; height:120px;"></textarea> </td> </tr> <tr> <td>첨부</td> <td> <input type="file" id="file1" name="file1" > </td> </tr> <tr> <td></td> <td><button>글쓰기</button></td> </tr> </table> <table width=1200 align=center border=0> <tr> <td colspan=2><a href="list.jsp">[목록]</a></td> </tr> </table> </form> <%@ include file="/include/footer.jsp" %>

 

[ modify.jsp ]

<bash />
<%@page import="java.sql.*"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/admin/include/header.jsp" %> <script> function write_go() { if(gongjl.value == "") { alert("옵션을 체크하세요.") return false; } if(subject.value == "") { alert("제목을 입력하세요.") subject.focus(); return false; } if(!comment.value){ // "" or null 이거나 둘 다 체크함 alert("내용을 입력하세요.") comment.focus; return false; } } </script> <% String code = request.getParameter("code"); String uid = request.getParameter("uid"); String sql = "select * from "+code+" where uid='"+uid+"' "; Connection con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql); String gongji=""; String subject=""; String comment=""; if(rs.next()) { gongji = rs.getString("gongji"); subject = rs.getString("subject"); comment = rs.getString("comment"); } rs.close(); stmt.close(); con.close(); %> <form action="update.jsp" method="post" onsubmit="return write_go()"> <input type=hidden name="uid" value="<%=uid%>"> <input type=hidden name="code" value="<%=code%>"> <table width=1200 align=center border=1> <tr> <td>옵션</td> <td> <input type="radio" id="gongjl" name="gongji" value="1" <%if(gongji.equals("1")){%>checked<%}%>>공지 <input type="radio" id="gongjl" name="gongji" value="2" <%if(gongji.equals("2")){%>checked<%}%>>일반 <input type="radio" id="gongjl" name="gongji" value="3" <%if(gongji.equals("3")){%>checked<%}%>>비밀 </td> </tr> <tr> <td>제목</td> <td><input id="subject" name="subject" style="width:99%" value="<%=subject%>"></td> </tr> <tr> <td>내용</td> <td> <textarea id="comment" name="comment" style="width:99%; height:120px;" ><%=comment%></textarea> </td> </tr> <tr> <td></td> <td><button>수정하기</button></td> </tr> </table> <table width=1200 align=center border=0> <tr> <td colspan=2><a href="list.jsp">[목록]</a></td> </tr> </table> </form> <%@ include file="/include/footer.jsp" %>

 

[ delete.jsp ]

<bash />
<%@page import="java.sql.*"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/include/header.jsp" %> <% String code = request.getParameter("code"); String uid = request.getParameter("uid"); String sql = "delete from "+code+" where uid="+uid+""; Connection con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement(); stmt.executeUpdate(sql); stmt.close(); con.close(); %> <script> location.href="list.jsp?code=<%=code%>"; </script>

 

[ update.jsp ]

<bash />
<%@page import="java.sql.*"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/include/header.jsp" %> <% request.setCharacterEncoding("utf-8"); String code = request.getParameter("code"); String uid = request.getParameter("uid"); String gongji = request.getParameter("gongji"); String subject = request.getParameter("subject"); String comment = request.getParameter("comment"); String sql = "update "+code+" set gongji='"+gongji+"',subject='"+subject+"',comment='"+comment+"' where uid="+uid+" "; Connection con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement(); stmt.executeUpdate(sql); %> <script> location.href="list.jsp?code=<%=code%>"; </script> <%@ include file="/include/footer.jsp" %>

 

[ insert.jsp ]

<bash />
<%@page import="java.sql.*"%> <%-- <%@page import="java.sql.DriverManager"%> <%@page import="java.sql.Statement"%> <%@page import="java.sql.Connection"%> --%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/include/header.jsp" %> <% //넘어온 값 중에 한글이 있다면 캐릭터셋 : 매칭처리함 request.setCharacterEncoding("utf-8"); // 4대 내장 객체(이미 만들어져있는 객체) 중 request String id = request.getParameter("m_id"); String pass = request.getParameter("m_pass"); String name = request.getParameter("m_name"); String email = request.getParameter("m_email1") + "@"+ request.getParameter("m_email2"); String z = request.getParameter("zipcode"); String z1 = request.getParameter("zipcode1"); String z2 = request.getParameter("zipcode2"); String z3 = request.getParameter("zipcode3"); String z4 = request.getParameter("zipcode4"); String p1 = request.getParameter("m_phone1"); String p2 = request.getParameter("m_phone2"); String p3 = request.getParameter("m_phone3"); out.print("아이디: "+id+"<br>"); out.print("비밀번호: "+pass+"<br>"); out.print("이름: "+name+"<br>"); out.print("이메일: "+ email+"<br>"); //DB에 저장해보자 String sql = "insert into member2 values('"+id+"','"+pass+"','"+name+"','"+email+"','1','"+z+"','"+z1+"','"+z2+"','"+z3+"','"+z4+"','"+p1+"','"+p2+"','"+p3+"')"; Connection con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement(); stmt.executeUpdate(sql); /* insert, update, delete 구문 */ %> <script> location.href="list.jsp"; </script>

 

5. admin >> bbs2 폴더 --> 게시판 모듈

[ list.jsp ]  --> 게시글 목록

 

'JAVA > jsp' 카테고리의 다른 글

230127_추가내용2  (0) 2023.01.27
230126_추가내용  (0) 2023.01.26
게시판 만들기(web01) -- 사용자  (0) 2023.01.19
회원가입- 주소 추가하기  (0) 2023.01.19
230116  (0) 2023.01.16
profile

데일리로그C:

@망밍

포스팅이 도움됐다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!