• Home
  • About
    • back
    • ming photo

      ming

      studying

    • Learn More
    • Twitter
    • Facebook
    • Instagram
    • Github
    • Steam
  • Archive
    • back
    • All Posts
    • All Tags
    • All categories
  • categories
    • back
    • HTML+CSS+JavaScript
    • JAVA
    • Algorithm
    • DB
    • JSP
    • 정보처리기사
    • Spring
    • Thymeleaf
    • 기술면접
  • Projects

JSP - JSP 2.3 & Servlet3.1 - JavaMail(메일전송), DB연결, DB연결하여 회원관리

30 Mar 2021

🔷 JSP 2.3 & Servlet3.1 - JavaMail(메일전송), DB연결, DB연결하여 회원관리

✔ JavaMail(메일전송)

- JavaMail : Pop3, SMTP 등의 메일 프로토콜을 이용하여 메일을 주고 받을 수 있도록 제공해주는 API
  • 코드 : 메일보내기(form)
      <!doctype html>
      <html lang="ko">
      <head>
      <title>자바 메일 보내기 폼</title>
      <meta charset="UTF-8">
      <style>
      table {
          width:600px;
          margin:auto;
      }
    
      h1 {
          text-align:center;
      }
    
      td {
          border:1px solid gray;
          padding:10px;
      }
      </style>
      </head>
      <body>
    
          <form action="mailSend.jsp" method="post">
                
              <h1>자바메일 보내기</h1>
                
              <table>
                  <tr>
                      <td>보내는 사람 메일 : </td>
                      <td><input type="text" name="sender"></td>
                  </tr>
                  <tr>
                      <td>받는 사람 메일 : </td>
                      <td><input type="text" name="receiver"></td>
                  </tr>
                  <tr>
                      <td>제목 : </td>
                      <td><input type="text" name="subject"></td>
                  </tr>
                  <tr>
                      <td>내용 : </td>
                      <td><textarea name="content" cols="40" rows="20"></textarea></td>
                  </tr>
                  <tr>
                      <td align=center colspan=2>
                          <input type="submit" value="보내기">
                      </td>
                  </tr>
              </table>
          </form>
            
      </body>
      </html>
    
  • jsp코드 (시스템설정)
      <%@ page language="java" contentType="text/html; charset=UTF-8"%>
      <%@ page import="java.util.*" %>
      <%@ page import="javax.mail.*" %>
      <%@ page import="javax.mail.internet.*" %>
      <%@ page import="example.*" %>
      <%
            
            
          // 클라이언트 페이지에서 메일 전송에 사용하기 위해서 전송되어 온 파라미터 값들은 받는 부분
          // 자바 메일 보내기 폼에서 입력한 한글 정보가 깨지지 않도록 설정
          request.setCharacterEncoding("UTF-8");
          // 메일 송신자
          String sender = request.getParameter("sender");
          // 메일 수신자
          String receiver = request.getParameter("receiver");
          // 메일 제목
          String subject = request.getParameter("subject");
          // 메일 내용
          String content = request.getParameter("content");
            
          out.println("송신자 : " + sender + "<br>");
          out.println("수신자 : " + receiver + "<br>");
          out.println("제목 : " + subject + "<br>");
          out.println("내용 : " + content + "<br>");
    
          // 메일 송신자
          String id = "id입력";
          String pw = "pw입력";
    
          // 시스템 설정 => 서버 정보를 Properties객체에 저장한다
          // https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#getProperties--
          Properties p = System.getProperties();
          // SMTP 사용 여부 설정
          p.put("mail.smtp.starttls.enable", "true");
          // SMTP 서버 설정 : smtp.naver.com 서버 명
          p.put("mail.smtp.host", "smtp.naver.com");
          // SMTP 인증 여부 설정
          p.put("mail.smtp.auth", "true");
          // STMP 포트(port) 설정
          p.put("mail.smtp.port", "587");
    
          // 네이버(naver) ID/PW 인증 -> 인증 정보 생성
          Authenticator auth = new MyMailAuthenticator(id, pw);
          // 메일 인증 세션
          Session mailSession = Session.getDefaultInstance(p, auth);
          // 메일 메시지 객체
          MimeMessage msg = new MimeMessage(mailSession);
    
          try {
              // 메일 송부 날짜 설정
              msg.setSentDate(new Date());
              InternetAddress from = new InternetAddress();
                        
              // 송신자 메일
              from = new InternetAddress(sender);
              msg.setFrom(from);
    
              // 수신자 메일
              InternetAddress to = new InternetAddress(receiver);
              msg.setRecipient(Message.RecipientType.TO, to);
    
              // 메일 내용 및 인코딩 방식(encoding), MIME type(text/html) 등록
              // 메일 제목 설정
              msg.setSubject(subject, "UTF-8");
              // 메일 내용 설정
              msg.setText(content, "UTF-8");
              // 메일 MIME type 설정
              msg.setHeader("content-Type", "text/html");
    
              // 메일 전송
              javax.mail.Transport.send(msg);
                
              out.println("메일 송부");
                
          } catch (AddressException e) {
              System.err.println("AddressException : " + e);
              e.printStackTrace();
          } catch (MessagingException e){
              System.err.println("MessagingException : " + e);
              e.printStackTrace();
          } // try
      %>
    
  • 인증코드(id,pw 인증)
      package example;
    
      import javax.mail.Authenticator;
      import javax.mail.PasswordAuthentication;
    
      /**
      * 메일 인증(아이디/패쓰워드) 클래스
      * 
      * @author javateam
      *
      */
      public class MyMailAuthenticator extends Authenticator {
                
          PasswordAuthentication account;
        
          // MyMailAuthenticator : PasswordAuthentication 객체 생성후 id,pw정보 받는다
          public MyMailAuthenticator(String id, String pw){
              account = new PasswordAuthentication(id, pw);
          }
        
          // Authentication 구현시 반드시 구현해 주어야 하는 메소드
          public PasswordAuthentication getPasswordAuthentication(){
              return account;
          }    
      }
    
  • 메일전송 코드
      package example;
    
      import javax.mail.*;
      import javax.mail.internet.*;
      import java.util.Date;
      import java.util.Properties;
    
      public class MailSend {
            
          public static void main(String[] args) {
                
              // 네이버(naver)의 아이디/패쓰워드를 외부 인자를 통해서 입력합니다.
              String id = args[0].trim();
              String pw = args[1].trim();
                
              // 시스템 설정
              Properties p = System.getProperties();
              // SMTP 사용 여부 설정
              p.put("mail.smtp.starttls.enable", "true");
              // SMTP 서버 설정
              p.put("mail.smtp.host", "smtp.naver.com");
              // SMTP 인증 여부 설정
              p.put("mail.smtp.auth", "true");
              // STMP 포트(port) 설정
              p.put("mail.smtp.port", "587");
        
              // 네이버(naver) ID/PW 인증
              Authenticator auth = new MyMailAuthenticator(id, pw);
              // 메일 인증 세션
              Session session = Session.getDefaultInstance(p, auth);
              // 메일 메시지 객체
              MimeMessage msg = new MimeMessage(session);
        
              try {
                  // 메일 송부 날짜 설정
                  msg.setSentDate(new Date());
                  InternetAddress from = new InternetAddress();
                    
                  // 송신자 메일
                  from = new InternetAddress("sender<alswl689@naver.com>");
                  msg.setFrom(from);
        
                  // 수신자 메일
                  InternetAddress to = new InternetAddress("alswl689@naver.com");
                  msg.setRecipient(Message.RecipientType.TO, to);
        
                  // 메일 내용 및 인코딩 방식(encoding), MIME type(text/html) 등록
                  // 메일 제목 설정
                  msg.setSubject("메일 제목입니다.", "UTF-8");
                  // 메일 내용 설정
                  msg.setText("메일 내용입니다.", "UTF-8");
                  // 메일 MIME type 설정
                  msg.setHeader("content-Type", "text/html");
        
                  // 메일 전송
                  javax.mail.Transport.send(msg);
                    
              } catch (AddressException e) {
                  System.err.println("AddressException : " + e);
                  e.printStackTrace();
              } catch (MessagingException e){
                  System.err.println("MessagingException : " + e);
                  e.printStackTrace();
              }
                
          }
            
      }
    

▶ 출력화면(메일전송 내역 입력) 메일보내기폼

▶ 출력화면(메일전송 입력후 전송) 메일전송후

▶ 출력화면(메일수신 확인) 받은메일함

✔ DB연결

  • context.xml코드
      <?xml version="1.0" encoding="UTF-8"?>
      <Context>
          <!-- oracle -->
          <Resource name="jdbc/xe"
              auth="Container"
              type="javax.sql.DataSource"
              driverClassName="oracle.jdbc.OracleDriver"
              factory="org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory"
              url="jdbc:oracle:thin:@localhost:1521:xe"
              username="hr"
              password="hr" 
              maxActive="20" 
              maxIdle="10"
              maxWait="-1" />
                
          <!-- maria db -->
          <Resource name="jdbc/bigdb"
              auth="Container"
              type="javax.sql.DataSource"
              driverClassName="org.mariadb.jdbc.Driver"
              factory="org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory"
              url="jdbc:mariadb://localhost:3306/bigdb"
              username="java"
              password="java" 
              maxActive="20" 
              maxIdle="10"
              maxWait="-1" />
      </Context>
    
  • Oracle 연결
      <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
      <%@ page import="java.sql.*" %>
      <%@ page import="javax.sql.*" %>
      <%@ page import="javax.naming.*" %>
      <%
          String id = "";
            
          Connection con =null;
          PreparedStatement pstmt=null;
          ResultSet rs=null;
            
          try {
              Context initContext = new InitialContext();
                
              // 참고) http://tomcat.apache.org/tomcat-9.0-doc/jndi-resources-howto.html
    
              // howto-1)
              // Context envCtx = (Context)initContext.lookup("java:comp/env");
              // DataSource ds = (DataSource)envCtx.lookup("jdbc/xe");
            
              // howto-2)
              DataSource ds = (DataSource)initContext.lookup("java:/comp/env/jdbc/xe");
                
              con=ds.getConnection();
                
              String sql ="SELECT employee_id FROM employees";
              pstmt = con.prepareStatement(sql);
              rs = pstmt.executeQuery();
                
              while (rs.next()) {						
                  id = rs.getString(1);		
                  out.println(id+" ");
              }
                        
          } catch(Exception e) {
              System.out.println(e.getMessage());
              e.printStackTrace();
          } finally {
              rs.close();
              pstmt.close();
              con.close();
          }
      %>    
      <!DOCTYPE html>
      <html lang="ko">
      <head>
      <meta charset="UTF-8">
      <title>DBCP testing</title>
      </head>
      <body>
      </body>
      </html>
    
  • MariaDB연결
      <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
      <%@ page import="java.sql.*" %>
      <%@ page import="javax.sql.*" %>
      <%@ page import="javax.naming.*" %>
      <%
          String id = "";
            
          Connection con =null;
          PreparedStatement pstmt=null;
          ResultSet rs=null;
            
          try {
              Context initContext = new InitialContext();
                
              // 참고) http://tomcat.apache.org/tomcat-9.0-doc/jndi-resources-howto.html
              // mariaDB Connector/J 사용법 
              // : https://mariadb.com/kb/en/about-mariadb-connector-j/#using-drivermanager
    
              // howto-1)
              // Context envCtx = (Context)initContext.lookup("java:comp/env");
              // DataSource ds = (DataSource)envCtx.lookup("jdbc/xe");
            
              // howto-2)
              DataSource ds = (DataSource)initContext.lookup("java:/comp/env/jdbc/bigdb");
                
              con=ds.getConnection();
                
              String sql ="SELECT deptno FROM dept";
                
              pstmt = con.prepareStatement(sql);
              rs = pstmt.executeQuery();
                
              while (rs.next()) {						
                  id = rs.getString(1);		
                  out.println(id+" ");
              }
                        
          } catch(Exception e) {
              System.out.println(e.getMessage());
              e.printStackTrace();
          } finally {
              rs.close();
              pstmt.close();
              con.close();
          }
      %>    
      <!DOCTYPE html>
      <html lang="ko">
      <head>
      <meta charset="UTF-8">
      <title>DBCP testing</title>
      </head>
      <body>
      </body>
      </html>
    

✔ DB연결 하여 회원관리 프로그램

  • 로그인 코드(FORM)
      <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
      <!DOCTYPE html>
      <html lang="ko">
      <head>
      <meta charset="UTF-8">
      <title>회원 관리 시스템 로그인 페이지</title>
      <style>
          table{
              margin : auto;
              width : 400px;
              border : 1px solid gray;
              text-align: center;
          }
          .td_title{
              font-weight: bold;
              font-size: x-large;
          }
      </style>
      </head>
      <body>
      <!-- form영역에 있는 데이터가 전송되는 요청 URL을   loginProcess.jsp 페이지로 지정-->
      <form name="loginform" action="loginProcess.jsp" method="post">
      <table>
          <tr>
              <td colspan="2" class = "td_title">
                  로그인 페이지
              </td>
          </tr>
          <tr>
              <!--로그인에 사용할 ID입력 양식  -->
              <td><label for = "id">아이디 : </label></td>
              <td><input type="text" name="id" id = "id"/></td>
          </tr>
          <tr>
              <!--로그인에 사용할 PW입력 양식  -->
              <td><label for = "pass">비밀번호 : </label></td>
              <td><input type="password" name="pass" id = "pass"/></td>
          </tr>
          <tr>
              <td colspan="2">
                  <!-- 로그인 링크를 클릭하면 js를 사용해 loginform  객체의 submit() 메소드를 호출하여
                          loginProcess.jsp 페이지로 요청한다 -->
                  <a href="javascript:loginform.submit()">로그인</a>&nbsp;&nbsp;
                  <!-- 회원가입 텍스트를 클릭하면 joinForm.jsp 로 요청을 전송하는 링크를 지정  -->
                  <a href="joinForm.jsp">회원가입</a>
              </td>
          </tr>
      </table>
      </form>
      </body>
      </html>
    

    ▶ 출력화면(첫 화면) 로그인

  • 회원가입 코드(FORM)
      <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
      <!DOCTYPE html>
      <html lang="ko">
      <head>
      <meta charset="UTF-8">
      <title>회원관리 시스템 회원가입 페이지</title>
      <style>
          table{
              margin : auto;
              width : 400px;
              border : 1px solid gray;
              text-align: center;
          }
          .td_title{
              font-weight: bold;
              font-size: x-large;
          }
      </style>
      </head>
      <body>
      <form name ="joinform" action = "joinProcess.jsp" method="post" />
      <table border=1>
          <tr>
              <td colspan="2" class = "td_title">
                  회원가입 페이지
              </td>
          </tr>
          <tr>
              <td><label for = "id">아이디 : </label></td>
              <td><input type="text" name="id" id = "id"/></td>
          </tr>
          <tr>
              <td><label for = "pass">비밀번호 : </label></td>
              <td><input type="password" name="pass" id = "pass"/></td>
          </tr>
          <tr>
              <td><label for = "name">이름 : </label></td>
              <td><input type="text" name="name" id = "name"/></td>
          </tr>
          <tr>
              <td><label for = "age">나이 : </label></td>
              <td><input type="text" name="age" id = "age"/>
              </td>
          </tr>
          <tr>
              <td><label for = "gender1"></label>성별 : </td>
              <td>
                  <input type="radio" name="gender" value="남" checked id = "gender1"/>남자
                  <input type="radio" name="gender" value="여" id = "gender2"/>여자
              </td>
          </tr>
          <tr>
              <td><label for = "email">이메일 주소 : </label></td>
              <td><input type="text" name="email" id = "email"/></td>
          </tr>
          <tr>
              <td colspan="2">
                  <!-- 회원가입 링크 클릭하면 js를 이용해 joinform객체의 submit()  메소드를 호출하여
                          joinProcess.jsp페이지로 요청한다 -->
                  <a href="javascript:joinform.submit()">회원가입</a>&nbsp;&nbsp;
                  <a href="javascript:joinform.reset()">다시작성</a>
              </td>
          </tr>
      </table>
      </form>
      </body>
      </html>
    
  • 회원가입 코드(Process)
      <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
      <%@ page import="java.sql.*"%>
      <%@ page import="javax.sql.*" %>
      <%@ page import="javax.naming.*" %>
      <%
    
          request.setCharacterEncoding("UTF-8");
    
          String id = request.getParameter("id");
          String pass = request.getParameter("pass");
          String name = request.getParameter("name");
          int age = Integer.parseInt(request.getParameter("age"));
          String gender = request.getParameter("gender");
          String email = request.getParameter("email");
            
          Connection con = null;
          PreparedStatement pstmt = null;
            
          try{
                
              Context init = new InitialContext();
                
              DataSource ds = (DataSource) init.lookup("java:/comp/env/jdbc/scott");
              con = ds.getConnection();
                
              pstmt= con.prepareStatement("INSERT INTO member VALUES (?,?,?,?,?,?)");
              pstmt.setString(1,id);
              pstmt.setString(2,pass);
              pstmt.setString(3,name);
              pstmt.setInt(4,age);
              pstmt.setString(5,gender);
              pstmt.setString(6,email);
                
              int result = pstmt.executeUpdate(); // 데이터 삽입 성공여부 1, 0 으로 전달
                
              if(result !=0){ // 성공시
                  out.println("<script>");
                  out.println("location.href='loginForm.jsp'"); // loginForm.jsp로 이동
                  out.println("</script>");
              }else{ // 실패시
                  out.println("<script>");
                  out.println("location.href='joinForm.jsp'");// joinForm.jsp로 이동
                  out.println("</script>");	
              }
                
          }catch(Exception e){
              e.printStackTrace();
          }finally{
              try{// 자원반납
                  pstmt.close();
                  con.close();
              }
              catch(Exception e){
                  e.printStackTrace();
              }
          }
            
      %>
    

    ▶ 출력화면(회원가입) admin가입

  • 로그인 코드(Process)
      <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
      <%@ page import = "java.sql.*" %>
      <%@ page import="javax.sql.*" %>
      <%@ page import="javax.naming.*" %>
    
      <%
          String id = request.getParameter("id");
          String pass = request.getParameter("pass");
            
          Connection con = null; // DB연결
          PreparedStatement pstmt =null; // SQL처리 객체 
          ResultSet rs = null; // 결과셋 객체
            
          try{
          Context init = new InitialContext(); // JNDI 네이밍 방식 : 외부객체를 이용하기위한 기술
          DataSource ds = (DataSource) init.lookup("java:/comp/env/jdbc/scott"); // lookup :참고
          con = ds.getConnection();//lookup한 db연결
            
          pstmt=con.prepareStatement("SELECT * FROM member WHERE id=?"); //SQL 문 작성
          pstmt.setString(1,id); // ? 에 들어갈 인자 id로 지정
          rs=pstmt.executeQuery();
            
          if(rs.next()){ // db 순서대로 탐색
              if(pass.equals(rs.getString("pass"))){//db에서 가져온 비밀번호가 입력받은 비밀번호와 일치하다면
                  session.setAttribute("id",id); // session영역에 입력받은 id 이름의 속성 값을 생성
                    
                  out.println("<script>");
                  out.println("location.href='main.jsp'");//main.jsp페이지로 이동한다
                  out.println("</script>");
              }
          }else{ // 일치하지 않다면
              out.println("<script>"); 
              out.println("location.href='loginForm.jsp'"); // loginForm.jsp 페이지도 이동한다
              out.println("</script>");
          }
                
          }catch(Exception e){ // 예외처리
              e.printStackTrace();
          }finally{
              try{ // 자원반납
                  rs.close();
                  pstmt.close();
                  con.close();
              }
              catch(Exception e){ // 자원반납시 예외처리
                  e.printStackTrace();
              }
          }
      %>
    
  • 회원관리 시스템 코드(main)
      <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
      <%
          String id = null;
    
          //입력받은 id값이 세션의 id에 등록되어있는 상태라면 
          if(session.getAttribute("id")!=null){ 
              id=(String)session.getAttribute("id"); //세션에 저장된 Id값을 변수에 저장한다
          }else{//아니면
              out.println("<script>");
              out.println("location.href='loginForm.jsp'");
              out.println("</script>");
          }
      %>
    
      <html lang="ko">
      <head>
      <meta charset="UTF-8">
      <title>회원관리 시스템 메인 페이지</title>
      </head>
      <body>
      <h3><%=id %> 로 로그인하셨습니다.</h3>
      <%if(id.equals("admin")){ %>
      <a href="member_list.jsp">관리자모드 접속(회원 목록 보기)</a>
      <% }%>
      </body>
      </html>
    

    ▶ 출력화면(admin 로그인) admin로그인 admin로그인2

▶ 출력화면(일반회원 로그인) 관리자아닌로그인 관리자아닌로그인2

  • 회원리스트 조회 코드(member_list)
      <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
      <%@ page import="java.sql.*"%>
      <%@ page import="javax.sql.*" %>
      <%@ page import="javax.naming.*" %>
      <%
          String id = null;
            
          // 전달받은id값이 null이거나 admin이 아니라면 
          if((session.getAttribute("id") == null) ||
              (!((String)session.getAttribute("id")).equals("admin"))) {
              out.println("<script>");
              out.println("location.href='loginForm.jsp'"); // loginForm.jsp 페이지로 이동
              out.println("</script>");
          }
            
          Connection con = null;
          PreparedStatement pstmt = null;
          ResultSet rs = null;
            
          try{
              Context init = new InitialContext();
              DataSource ds = (DataSource) init.lookup("java:/comp/env/jdbc/scott");
              con = ds.getConnection();
              pstmt=con.prepareStatement("SELECT * FROM member");
              rs=pstmt.executeQuery();
                
          }catch(Exception e){
              e.printStackTrace();
          }
      %>
      <html lang="ko">
      <head>
      <meta charset="UTF-8">
      <title>회원관리 시스템 관리자모드(회원 목록 보기)</title>
      <style>
          table{
              margin : auto;
              width : 400px;
              border : 1px solid gray;
              text-align: center;
          }
          .td_title{
              font-weight: bold;
              font-size: x-large;
          }
      </style>
      </head>
      <body>
      <table>
          <tr><td colspan=2 class="td_title">회원 목록</td></tr>
          <!-- member 테이블에 존재하는 레코드 수 만큼 회원 정보를 출력 -->
          <%while(rs.next()){ %> 
          <tr>
              <td>
                  <!-- 회원아이디 클릭시 해당 회원의 정보를 보여주는 member_info.jsp페이지로 이동하는 링크 생성
                      정보를 보여줄 회원을 판단하기 위해 id값을 파라미터로 전송한다 -->
                  <a href="member_info.jsp?id=<%=rs.getString("id") %>">
                      <!-- 회원의 id 컬럼 값을 출력 -->
                      <%=rs.getString("id") %> 
                  </a>
              </td>
              <td>
                  <!-- 회원정보를 삭제하는 페이지인 member_delete.jsp 페이지로 이동하는 링크 설정,
                          삭제할 회원 판단위해 id값을 파라미터로 전송 -->
                  <a href="member_delete.jsp?id=<%=rs.getString("id") %>">삭제</a>
              </td>
          </tr>
          <% } %>
      </table>
      </body>
      </html>
      </html>
    

    ▶ 출력화면(회원 목록) 회원목록

  • 회원 정보 조회 코드(member_info)
      m<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
      <%@ page import="java.sql.*"%>
      <%@ page import="javax.sql.*" %>
      <%@ page import="javax.naming.*" %>
      <%
          String id = null;
          // 입력받은 id값이 null이거나 admin이 아니라면
          if((session.getAttribute("id")==null) ||
              (!((String)session.getAttribute("id")).equals("admin"))){
                
              out.println("<script>");
              out.println("location.href='loginForm.jsp'"); // loginForm.jsp 페이지로 이동한다
              out.println("</script>");
          }
            
          String info_id = request.getParameter("id");
            
          Connection conn=null;
          PreparedStatement pstmt=null;
          ResultSet rs=null;
            
          try {
                  Context init = new InitialContext();
                  DataSource ds = 
                      (DataSource) init.lookup("java:/comp/env/jdbc/scott");
                  conn = ds.getConnection();
                    
                  pstmt=conn.prepareStatement("SELECT * FROM member WHERE id=?");
                  pstmt.setString(1,info_id);
                  rs=pstmt.executeQuery();
                  rs.next();
          }catch(Exception e){
              e.printStackTrace();
          }
      %>
      <html lang="ko">
      <head>
      <meta charset="UTF-8">
      <title>회원관리 시스템 관리자모드(회원 정보 보기)</title>
      <style>
          table{
              margin : auto;
              width : 400px;
              border : 1px solid gray;
              text-align: center;
          }
      </style>
      </head>
      <body>
      <table>
          <tr>
              <td>아이디 : </td>
              <td><%=rs.getString("id") %></td>
          </tr>
          <tr>
              <td>비밀번호 : </td>
              <td><%=rs.getString("pass") %></td>
          </tr>
          <tr>
              <td>이름 : </td>
              <td><%=rs.getString("name") %></td>
          </tr>
          <tr>
              <td>나이 : </td><td><%=rs.getString("age") %></td>
          </tr>
          <tr>
              <td>성별 : </td><td><%=rs.getString("gender") %></td>
          </tr>
          <tr>
              <td>이메일 주소 : </td>
              <td><%=rs.getString("email") %></td>
          </tr>
          <tr>
              <!-- 회원목록을 보는 페이지로 링크를 생성 -->
              <td colspan=2><a href="member_list.jsp">리스트로 돌아가기</a></td>
          </tr>
      </table>
      </body>
      </html>
    
  • 회원 삭제 코드(member_delete)
      <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
      <%@ page import="java.sql.*"%>
      <%@ page import="javax.sql.*" %>
      <%@ page import="javax.naming.*" %>
      <%
          String id=null;
            
            
          if ((session.getAttribute("id")==null) || 
          (!((String)session.getAttribute("id")).equals("admin"))) {
              out.println("<script>");
              out.println("location.href='loginForm.jsp'");
              out.println("</script>");
          }
            
          String delete_id=request.getParameter("id");
            
          Connection con=null;
          PreparedStatement pstmt=null;
          ResultSet rs=null;
            
          try {
                  Context init = new InitialContext();
                  DataSource ds = 
                      (DataSource) init.lookup("java:/comp/env/jdbc/scott");
                  con = ds.getConnection();
                    
                  pstmt=con.prepareStatement("DELETE FROM member WHERE id=?");
                  pstmt.setString(1,delete_id);
                  pstmt.executeUpdate();
                    
                  out.println("<script>");
                  out.println("location.href='member_list.jsp'");
                  out.println("</script>");
          }catch(Exception e){
              e.printStackTrace();
          }finally{
              try{
                  pstmt.close();
                  con.close();
              }
              catch(Exception e){
                  e.printStackTrace();
              }
          }
      %>
    

    ▶ DB 출력화면 db



Share Tweet +1