-
Form을 활용해서 정보를 DB와 연결하기JAVA/웹 프로그래밍 - JSP 2020. 11. 7. 17:35
아래의 내용과 만드는 방식은 모두 동일하다.
그러나 DB에 저장할 테이블만 다르다.
designatedroom87.tistory.com/296?category=901206
아래의 내용에서 MessagePhoneBookService.java를 활용해서
DB에서 데이터 출력,삽입,삭제,수정을 한다.
designatedroom87.tistory.com/223?category=897688
DB에 phonebook이라는 테이블이 존재하며, 데이터는 다음과 같이 정의되어 있다.
없으면 만들면 된다.
현재의 프로젝트의 WebContent의 하위에 폴더하나를 생성하고 이름을 phoneBookData이라고 하자.
메인 화면을 구성할 페이지부터 만들어 보자.
메인 메뉴의 맨 미자막에 중복 개별 출력이라는 목록을 추가한다.
위에서 만든 방식에서는 중복된 데이터면 1개만 찾고 끝나지만 여기서는 중복된 데이터 모두를
출력하도록 작성한다.
모든 jsp파일은 phoneBookData 폴더의 하위에 만들자.
꼭 아래와 같이 스타을을 추가하지 않고 만들어도 된다.
index.html
더보기<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <title>PHONE BOOK MENU</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script> </head> <body> <div class="container"> <h2>Phone book 관리</h2> <p>메뉴를 선택해 주세요</p> <div class="list-group"> <a href="phonebookForm.jsp" class="list-group-item list-group-item-success">Phone book 입력</a> <a href="list.jsp" class="list-group-item list-group-item-info">Phone book 출력</a> <a href="printPhonebookSearch.jsp" class="list-group-item list-group-item-active">Phone book 개별 출력</a> <a href="updatePhonebookSearch.jsp" class="list-group-item list-group-item-warning">Phone book 수정</a> <a href="deletePhonebookSearch.jsp" class="list-group-item list-group-item-danger">Phone book 삭제</a> <a href="printPhonebookAllSearch.jsp" class="list-group-item list-group-item-primary">Phone book 개별 출력(중복)</a> </div> </div> </body> </html>
우선 테이블에 있는 모든 데이터를 출력하는 기능부터 만들어보자.
이름은 list.jsp라고 하자.
list.jsp
더보기<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.*"%> <!-- 임포트 필요 --> <%@ page import="java.sql.*"%> <!-- Connection 클래스를 쓰려면 임포트 필요 --> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Message list</title> </head> <body> <h2><a href="index.jsp">Main Menu로 이동</a></h2> <h2>테이블에 있는 전체 데이터 출력</h2> <table border=1 width=50%> <tr> <th>번호</th><th>이름</th><th>전화번호</th><th>메모</th> </tr> <% try{ Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:xe", "HR", "1234"); if (conn == null) {System.out.println("DB접속에 실패");} else {System.out.println("DB접속 성공");} String sql = "select * from phonebook"; PreparedStatement pstmt = conn.prepareStatement(sql); ResultSet rs = pstmt.executeQuery(); while (rs.next()) { %> <tr> <td><%=rs.getInt("no") %></td> <td><%=rs.getNString("name") %> </td><td><%=rs.getNString("phonenum") %></td> <td><%=rs.getNString("memo") %></td> </tr> <%}// while문 end rs.close(); pstmt.close(); conn.close(); } // try end catch(Exception e){} finally{} %> </table> </body> </html>
list.jsp를 실행해서 테이블에 저장되어 있는 데이터들을 출력해보자.
DB에 데이터를 저장하는 기능을 만들어보자.
1. 데이터 저장
phonebookForm <- 폼으로 데이터를 입력받고
phonebookForm_proc <- 폼에서 입력받은 데이터를 DB에 저장하고 나서 전체 데이터를 출력
phonebookForm.jsp
더보기<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script> <title>Insert title here</title> </head> <body> <div class="container"> <h2><a href="index.jsp">Main Menu로 이동</a></h2> <h2>phone book 데이터 입력</h2> <form action=phonebookForm_proc.jsp method=post> <div class="form-group"> <label for="no">번호:</label> <input type="text" class="form-control" id="no" name="no" placeholder="번호를 입력하세요"> </div> <div class="form-group"> <label for="name">이름:</label> <input type="text" class="form-control" id="name" name="name" placeholder="이름을 입력하세요"> </div> <div class="form-group"> <label for="phonenum">전화번호:</label> <input type="text" class="form-control" id="phonenum" name="phonenum" placeholder="전화번호를 입력하세요"> </div> <div class="form-group"> <label for="content">메모:</label> <input type="text" class="form-control" id="memo" name="memo" placeholder="메모를 입력하세요"> </div> <button type="submit" class="btn btn-default">입력</button> </form> </div> </body> </html>
phonebookForm_proc.jsp
더보기<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.*"%> <!-- 임포트 필요 --> <%@ page import="java.sql.*"%> <!-- Connection 클래스를 쓰려면 임포트 필요 --> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% try { int no = Integer.parseInt(request.getParameter("no")); String name = request.getParameter("name"); String phonenum = request.getParameter("phonenum"); String memo = request.getParameter("memo"); // 디버깅 용 System.out.println(no); System.out.println(name); System.out.println(phonenum); System.out.println(memo); // 오라클에 접속하기 위해서는 드라이버를 로드해야 한다. Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:xe", "HR", "1234"); if (conn == null) {System.out.println("DB접속에 실패");} else {System.out.println("DB접속 성공");} String sql = "insert into phonebook(no,name,phonenum,memo) values(?,?,?,?)"; PreparedStatement pstmt = conn.prepareStatement(sql); // ?(물음표)룔 채워줘야 함. pstmt.setInt(1, no); // 번호 pstmt.setNString(2, name); // 이름 pstmt.setNString(3, phonenum); // 전하번호 pstmt.setNString(4, memo); // 메모 int result = pstmt.executeUpdate(); System.out.println(result +"개가 입력되었습니다."); pstmt.close(); conn.close(); response.sendRedirect("list.jsp"); } catch(Exception e){} finally{} %> </body> </html>
phonebookForm.jsp를 실행하고 데이터를 저장해보자,
2. 데이터 개별 출력
printPhonebookSearch <- form에서 이름을 입력받아
printPhonebookSearch_proc <- form에서 입력받은 이름으로 DB에서 데이터를 조회해서 출력
printPhonebookSearch.jsp
더보기<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script> <title>Insert title here</title> </head> <body> <div class="container"> <h2><a href="index.jsp">Main Menu로 이동</a></h2> <h2>개별 출력 찾기</h2> <form action=printPhonebookSearch_proc.jsp method=post> <div class="form-group"> <label for="name">이름:</label> <input type="text" class="form-control" id="name" name="name" placeholder="이름을 입력하세요"> </div> <button type="submit" class="btn btn-default">찾기</button> </form> </div> </body> </html>
printPhonebookSearch_proc.jsp
더보기<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.*" %> <%@ page import="java.sql.*" %> <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script> <meta charset="UTF-8"> <title>Phone Book Print</title> </head> <body> <% try{ String name=request.getParameter("name"); System.out.println(name); Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn=DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:xe","hr","1234"); if(conn==null) {System.out.println("DB접속에 실패");} System.out.println("DB접속 성공"); //sql문을 작성해서 conn객체를 이용하여 데이터 베이스에 데이터 가져오기 String sql="select * from phonebook where name=?"; PreparedStatement pstmt=conn.prepareStatement(sql);//위의 sql문을 처리하기 위해 객체 생성 pstmt.setNString(1, name); ResultSet rs=pstmt.executeQuery(); if(rs.next()) { %> <div class="container"> <h2><a href="index.jsp">Main Menu로 이동</a></h2> <h2>검색 결과</h2> <div class="form-group"> <label for="no">번호:</label> <input value=<%=rs.getInt("no")%> disabled type="text" class="form-control" id="no" name="no" > </div> <div class="form-group"> <label for="name">이름:</label> <input value=<%=rs.getNString("name")%> disabled type="text" class="form-control" id="name" name="name"> </div> <div class="form-group"> <label for="name">전화번호:</label> <input value=<%=rs.getNString("phonenum")%> disabled type="text" class="form-control" id="phonenum" name="phonenum"> </div> <div class="form-group"> <label for="content">메모:</label> <input value=<%=rs.getNString("memo")%> disabled type="text" class="form-control" id="memo" name="memo"> </div> </div> <%}else{%> <script> alert("검색한 결과가 없습니다."); window.location.href = 'http://localhost:9090/phoneBookData/printPhonebookSearch.jsp'; </script> <% //response.sendRedirect("print_search.jsp"); } pstmt.close(); conn.close(); }catch(Exception e){} finally{} %> </body> </html>
printPhonebookSearch,jsp를 실행해서 데이터의 개별 출력을 해보자.
3. 데이터 수정
updatePhonebookSearch <- 수정할 데이터의 이름을 입력받고
updatePhonebookSearch_view <- 그에 대한 데이터를 보여주고 수정할 수 있도록 하고
updatePhonebook_proc <- 수정할 데이터를 넘겨받아 DB에서 update한다.
updatePhonebookSearch.jsp
더보기<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script> <title>Insert title here</title> </head> <body> <div class="container"> <h2><a href="index.jsp">Main Menu로 이동</a></h2> <h2>개별 업데이트 찾기</h2> <form action=updatePhonebookSearch_view.jsp method=post> <div class="form-group"> <label for="name">이름:</label> <input type="text" class="form-control" id="name" name="name" placeholder="이름을 입력하세요"> </div> <button type="submit" class="btn btn-default">찾기</button> </form> </div> </body> </html>
updatePhonebookSearch_view.jsp
더보기<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!-- 아래의 내용을 임포트 하자 --> <%@ page import="java.io.*" %> <%@ page import="java.sql.*" %> <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script> <meta charset="UTF-8"> <title>Message Update</title> </head> <body> <% try{ String name=request.getParameter("name"); System.out.println(name); Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn=DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:xe","hr","1234"); if(conn==null) {System.out.println("DB접속에 실패");} System.out.println("DB접속 성공"); //sql문을 작성해서 conn객체를 이용하여 데이터 베이스에 데이터 가져오기 String sql="select * from phonebook where name=?"; PreparedStatement pstmt=conn.prepareStatement(sql);//위의 sql문을 처리하기 위해 객체 생성 pstmt.setNString(1, name); ResultSet rs=pstmt.executeQuery(); if(rs.next()) { %> <div class="container"> <h2><a href="index.jsp">Main Menu로 이동</a></h2> <h2>수정 하기</h2> <form action="updatePhonebook_proc.jsp" method="post"> <div class="form-group"> <label for="no">번호:</label> <!-- 아래 문장은 disabled라서 데이터가 넘어가지 못한다. 그래서 아래의 문장이 필요한 것이다. --> <input value=<%=rs.getInt("no")%> disabled type="text" class="form-control" id="no" name="no"> <!-- disabled 때문에 값이 제대로 안 넘어감 그래서 아래에서 타입을 hidden으로 한다.--> <input value=<%=rs.getInt("no")%> type="hidden" id="no" name="no" > </div> <div class="form-group"> <label for="name">이름:</label> <input value=<%=rs.getNString("name")%> class="form-control" id="name" name="name"> </div> <div class="form-group"> <label for="name">전화번호:</label> <input value=<%=rs.getNString("phonenum")%> class="form-control" id="phonenum" name="phonenum"> </div> <div class="form-group"> <label for="content">메모:</label> <input value=<%=rs.getNString("memo")%> type="text" class="form-control" id="memo" name="memo"> </div> <button type="submit" class="btn btn-default">수정</button> </form> </div> <%}else{%> <script> alert("검색한 결과가 없습니다."); window.location.href = 'http://localhost:9090/phoneBookData/updatePhonebookSearch.jsp'; </script> <% //response.sendRedirect("print_search.jsp"); } pstmt.close(); conn.close(); }catch(Exception e){} finally{} %> </body> </html>
updatePhonebook_proc.jsp
더보기<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.*"%> <!-- 임포트 필요 --> <%@ page import="java.sql.*"%> <!-- Connection 클래스를 쓰려면 임포트 필요 --> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% try{ int no = Integer.parseInt(request.getParameter("no")); String name = request.getParameter("name"); String phonenum = request.getParameter("phonenum"); String memo = request.getParameter("memo"); System.out.printf("%d, %s, %s %s\n",no,name,phonenum,memo); //오라클에 접속하기 위해서는 드라이버를 로드해야 한다. Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:xe", "HR", "1234"); if (conn == null) {System.out.println("DB접속에 실패");} else {System.out.println("DB접속 성공");} // 특정한 번호를 가진 이의 content의 내용과 이름을 수정하는 문장 String sql = "update phonebook set name=?,phonenum=?,memo=? where no=?"; PreparedStatement pstmt = conn.prepareStatement(sql); // 물음표를 채워 넣는다. pstmt.setNString(1,name); pstmt.setNString(2,phonenum); pstmt.setNString(3,memo); pstmt.setInt(4,no); int result = pstmt.executeUpdate(); System.out.println(result +"개가 수정되었습니다."); pstmt.close(); conn.close(); response.sendRedirect("list.jsp"); // 전체 테이블 조회해서 확인 } catch(Exception e){} finally{} %> </body> </html>
4. 데이터 삭제
deletePhonebookSearch <- 삭제할 이름을 입력받고
deletePhonebookSearch_view <-삭제할 이름에 대한 데이터를 출력하고
deletePhonebook_proc <- 삭제할 데이터를 테이블에서 제거
deletePhonebookSearch.jsp
더보기<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script> <title>Insert title here</title> </head> <body> <div class="container"> <h2><a href="index.jsp">Main Menu로 이동</a></h2> <h2>개별 삭제 찾기</h2> <form action=deletePhonebookSearch_view.jsp method=post> <div class="form-group"> <label for="name">이름:</label> <input type="text" class="form-control" id="name" name="name" placeholder="이름을 입력하세요"> </div> <button type="submit" class="btn btn-default">검색</button> </form> </div> </body> </html>
deletePhonebookSearch_view.jsp
더보기<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!-- 아래의 내용을 임포트 하자 --> <%@ page import="java.io.*" %> <%@ page import="java.sql.*" %> <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script> <meta charset="UTF-8"> <title>Phone Book Delete</title> </head> <body> <% try{ String name=request.getParameter("name"); System.out.println(name); Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn=DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:xe","hr","1234"); if(conn==null) {System.out.println("DB접속에 실패");} System.out.println("DB접속 성공"); //sql문을 작성해서 conn객체를 이용하여 데이터 베이스에 데이터 가져오기 String sql="select * from phonebook where name=?"; PreparedStatement pstmt=conn.prepareStatement(sql);//위의 sql문을 처리하기 위해 객체 생성 pstmt.setString(1, name); ResultSet rs=pstmt.executeQuery(); if(rs.next()) { %> <div class="container"> <h2><a href="index.jsp">Main Menu로 이동</a></h2> <h2>Phone Book 데이터 삭제 하기</h2> <!-- 삭제에서는 번호만 넘겨주면 된다. 번호를 통해서만 삭제한다. --> <form action="deletePhonebook_proc.jsp" method="post"> <div class="form-group"> <label for="no">번호:</label> <input value=<%=rs.getInt("no")%> disabled type="text" class="form-control" id="no" name="no"> <!-- disabled 때문에 값이 제대로 안 넘어감--> <input value=<%=rs.getInt("no")%> type="hidden" id="no" name="no" > </div> <button type="submit" class="btn btn-default">삭제</button> </form> <div class="form-group"> <label for="name">이름:</label> <input value=<%=rs.getNString("name")%> disabled class="form-control" id="name" name="name"> </div> <div class="form-group"> <label for="name">전화번호:</label> <input value=<%=rs.getNString("phonenum")%> disabled class="form-control" id="phonenum" name="phonenum"> </div> <div class="form-group"> <label for="memo">메모:</label> <input value=<%=rs.getNString("memo")%> disabled type="text" class="form-control" id="memo" name="memo"> </div> </div> <%}else{%> <script> alert("검색한 결과가 없습니다."); window.location.href = 'http://localhost:9090/phoneBookData/deletePhonebookSearch.jsp'; </script> <% //response.sendRedirect("print_search.jsp"); } pstmt.close(); conn.close(); }catch(Exception e){} finally{} %> </body> </html>
deletePhonebook_proc.jsp
더보기<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.*"%> <!-- 임포트 필요 --> <%@ page import="java.sql.*"%> <!-- Connection 클래스를 쓰려면 임포트 필요 --> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% try{ int no = Integer.parseInt(request.getParameter("no")); System.out.printf("%d",no); //오라클에 접속하기 위해서는 드라이버를 로드해야 한다. Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:xe", "HR", "1234"); if (conn == null) {System.out.println("DB접속에 실패");} else {System.out.println("DB접속 성공");} String sql = "delete from phonebook where no=?"; PreparedStatement pstmt = conn.prepareStatement(sql); // 위의 SQL문을 처리하기 위해 객체 생성 pstmt.setInt(1, no); int result = pstmt.executeUpdate(); System.out.println(result +"개가 삭제되었습니다."); pstmt.close(); conn.close(); response.sendRedirect("list.jsp"); // 전체 테이블 조회해서 확인 } catch(Exception e){} finally{} %> </body> </html>
5. 기존에 개별 데이터 출력은 하나의 데이터만 출력하였는데, 중복된 데이터에 대한 출력을 해보자.
printPhonebookAllSearch <- 출력할 데이터 입력하고
printPhonebookSearchAll_proc <- 출력할 데이터 출력
printPhonebookAllSearch.jsp
더보기<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script> <title>Insert title here</title> </head> <body> <div class="container"> <h2><a href="index.jsp">Main Menu로 이동</a></h2> <h2>개별 중복 출력 찾기</h2> <form action=printPhonebookSearchAll_proc.jsp method=post> <div class="form-group"> <label for="name">이름:</label> <input type="text" class="form-control" id="name" name="name" placeholder="이름을 입력하세요"> </div> <button type="submit" class="btn btn-default">찾기</button> </form> </div> </body> </html>
printPhonebookSearchAll_proc.jsp
더보기<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.*" %> <%@ page import="java.sql.*" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Phone Book Print</title> </head> <body> <% try{ String name=request.getParameter("name"); System.out.println(name); Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn=DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:xe","hr","1234"); if(conn==null) {System.out.println("DB접속에 실패");} System.out.println("DB접속 성공"); //sql문을 작성해서 conn객체를 이용하여 데이터 베이스에 데이터 가져오기 String sql="select * from phonebook where name=?"; PreparedStatement pstmt=conn.prepareStatement(sql);//위의 sql문을 처리하기 위해 객체 생성 pstmt.setNString(1, name); ResultSet rs=pstmt.executeQuery(); %> <h2><a href="index.jsp">Main Menu로 이동</a></h2> <h2>중복 검색 결과</h2> <table border=1 width=50%> <tr> <th>번호</th><th>이름</th><th>전화번호</th><th>메모</th> </tr> <% while (rs.next()) {%> <tr> <td><%=rs.getInt("no") %></td> <td><%=rs.getNString("name") %></td> <td><%=rs.getNString("phonenum") %></td> <td><%=rs.getNString("memo") %></td> </tr> <%} %></table><% pstmt.close(); conn.close(); }catch(Exception e){} finally{} %> </body> </html>
전체 소스 파일
'JAVA > 웹 프로그래밍 - JSP' 카테고리의 다른 글
MVC(Model View Control)1 (0) 2020.11.11 간단한 게시판 만들기 (0) 2020.11.09 Form을 활용해서 정보를 DB와 연결하기 (0) 2020.11.05 클라이언트에 대한 정보 찾기 (0) 2020.11.04 수 입력 받아서 홀수/짝수 판단하기 (0) 2020.11.04