ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] JDK 실습 (2)
    Studying/Java 2022. 8. 16. 23:27

     

    JDK 데이터 주고받기 실습

    DB 연결 방법

    • 웹 jsp 문서 + 오라클 데이터베이스
    • java 문서 + 오라클 데이터베이스
    • jsp 문서 + java 문서 + 오라클 데이터베이스
    • xml + java문서 + 오라클 데이터베이스

     

     

    MySQL 테이블 생성

    • cmd 오픈 > mysql system/****(비밀번호)
    • test 테이블 생성
    drop table test;
    create table test(
    	title varchar2(10) not null,
        pay number(3) not null
    );
    • wdate 필드 date 타입 추가
      • alter table test add(wdate date);
    • code 필드 number(4) primary key 추가
      • alter table test add(code number(4) primary key);
    • commit;

     

     

     

     

    자바 문서에 대한 전역 변수 선언

    <%@ page import="java.util.Date" %>
    <%@ page import="java.sql.Connection"%>
    <%@ page import="java.sql.DriverManager"%>
    <%@ page import="java.sql.*"%>
    
    <%!
    	Connection CN=null; 
    	Statement ST=null; 
    	PreparedStatement PST=null;
    	ResultSet RS=null;
    	
    	int Grn, Gcode, Gsabun, Gpay, Ghit; 
    	String Gname, Gtitle, Gconent, Gwriter, Gemail;
    	java.util.Date Gwdate, hiredate, Gbirth;
    	boolean Ggender, Gflag;
    	int Gtotal=0, total=0, Stotal=0;
    	String Gdata, data, Gmsg, msg;
    	
    %>

     

     

     

     

     

    eclipse 실행

    testWrite.jsp - 제목, 급여, 코드를 입력하는 페이지

    <form name="myform" method="get" action="testWriteSave.jsp">
        제목: <input type="text" name="title" id="title"><br>
        급여: <input type="text" name="pay" id="pay"><br>
        코드: <input type="text" name="code" id="code"><br>
        <input type="submit" value="데이터 저장"> &nbsp;
        <input type="reset" value="입력 취소">
    </form>
    • <form method="get" action="testWriteSave.jsp">  -  input 태그에서 전달받은 값을 get 요청으로 testWriteSave.jsp에 전달한다.
      • method : 전송 방식
        •  GET : 속도가 빠르고 보안은 x, 전송량 제한적
        • POST : 속도가 느리고 보안은 o, 전송량 제한 없음
      • action : 전달 대상, 이동할 페이지
    • &nbsp  -  공백을 넣는다.

     

     

    (예시)

     

    제목:
    급여:
    코드:
     

     

     

     

    testWriteSave.jsp - 제목, 급여, 코드를 전달 받음 (추후 데이터 베이스에 저장하는 기능)

    <%
        out.println("<h2>데이터 받기 request 내장 객체</h2>");
        
        String Gtitle = request.getParameter("title");
        
        int Gpay = Integer.parseInt(request.getParameter("pay"));
        int Gcode = Integer.parseInt(request.getParameter("code"));
        
        out.println("<h2>제목 데이터 = " + Gtitle + "</h2>");
        out.println("<h2>급여 데이터 = " + Gpay + "</h2>");
        out.println("<h2>코드 데이터 = " + Gode + "</h2>");
        out.println("<h2>데이터 받기 성공입니다.</h2>");
    %>
    • request.getParameter("title")  -  클라이언트가 서버(웹페이지)에 요청(request)하면, 요청을 받은 서버가 요청의 파라미터(parameter) 값을 얻기 위해 사용. 클라이언트가 입력하는 input 태그의 name 속성을 파라미터 이름으로 함.
    • Integer.parseInt  -   String을 Int 형으로 변환. request를 통한 파라미터 데이터는 무조건 문자열로 전달 됨.

     

    (* 깨알 팁) 이클립스 Window > Show View > Others > General > Problems 클릭하면 에러 코드를 볼 수 있다!

     

     

    이제 맨 위에 다음 코드를 선언한다.

    <%@ page import="java.util.Date" %>
    <%@ page import="java.sql.Connection"%>
    <%@ page import="java.sql.DriverManager"%>
    <%@ page import="java.sql.*"%>

     

     

    그 다음 전역변수를 선언한다.

    <%!
        Connection CN = null;
        Statement ST = null;
        PreparedStatement PST = null;
        ResultSet RS = null;
        
        int Grn, Gcode, Gsabun, Gpay, Ghit;
        String Gname, Gtitle, Gconent, Gwriter, Gemail;
        java.util.Date Gwdate, hiredate, Gbirth;
        boolean Ggender, Gflag;
        int Gtotal=0, total=0, Stotal=0;
        String Gdata, data, Gmsg, msg;
    %>
    • <%! !> : member filed 영역. 여기서 선언한 변수는 전역변수.
      • <% %> : 여기서 선언한 변수는 service methode에서만 사용하는 local 변수로 인식한다.

     

    • Connection : JAVA에서 DB와 연결하기 위해 사용하는 객체. 파라미터는 URL(데이터의 위치) 및 기타 정보(DB접속 아이디, 패스워드, 포트 번호). DriveManager의 getConnection() 메소드를 호출하여 생성할 수 있음.
      • Connection의 메소드
        1. createStatement() : SQL문을 DB에 전달하기 위한 Statement 객체를 생성
        2. preparedStatement(String sql) : 파라미터가 포함 된 SQL문을 DB에 전달하기 위한 객체를 생성
        3. prepareCall(String sql) : DB의 Stored Procedure를 호출하기 위한 객체를 생성
        4. close() : 현재 커넥션 객체에 할당 된 시스템 리소스를 즉시 반환
    • Statement : DB와의 연결로부터 SQL문을 실행할 수 있도록 해주는 객체(Connection이 먼저 연결되어 있어야 한다)
      • Statement의 메소드
        1. executeQuery() : SELECT 문을 수행할 때 사용. 반환 값은 Resultset 클래스의 인스턴스. 해당 SELECT문의 결과에 해당하는 데이터에 접근할 수 있는 방법을 제공
        2. excuteUpdate() : UPDATE, DELETE와 같은 문을 수행할 때 사용(수정), 반환 값은 int형으로 처리 된 데이터의 수를 반환
        3. close() : Statement 객체를 반환
      • Ex.
    Statement st = conn.createStatement();
    st.executeUpdate("insert into test values
    	('" + request.getParameter("username") + "', '" + request.getParameter("email") + "')");

     

    • PreparedStatement : SQL문을 미리 만들어두고 변수를 따로 입력하는 방식. 효율성이나 유지보수에 Good. Statement의 메서드를 모두 상속 받기 때문에 Statement클래스 메서드를 모두 사용 가능.
      • Ex.
    PreparedStatement ps = conn.prepareStatement("insert into test values(?,?)");
    ps.setString(1, request.getParameter("username");
    ps.setString(2, request.getParameter("email");
    ps.executeUpdate();

     

    • ResultSet : executeQuery() 메서드를 사용하여 SELECT 쿼리문을 실행 후, 실행 결과를 java.sql.ResultSet 형으로 반환. 그걸 담기 위한 ResultSet 객체 변수 RS를 선언.
      • ResultSet의 메소드
        1. next() : 결과 리스트의 다음 행으로 커서를 이동 (없으면 false 리턴)
        2. getXxx(int column_index) - column_index 번째 칼럼 값을 Xxx 타입으로 가져온다.
        3. getXxx(String columName) - columnName 컬럼의 값을 Xxx 타입으로 가져온다.
        4. close() : ResultSet 객체를 반환

     

     

    ResultSet.next() 메서드 커서의 이동은 다음과 같다.

     

     

    전역변수를 선언 했으므로 int Gpay, int Gcode, String Gtitle 을 그냥 Gpay, Ccode, Gtitle로 수정한다.

     

     

     

     

     

    testList.jsp - 입력한 데이터 리스트를 테이블로 보여주는 페이지

     

    testWrite.jsp, testList.jsp 파일에 아래 import 선언 & 마찬가지로 전역변수를 선언한다.

    <%@ page import="java.util.Date" %>
    <%@ page import="java.sql.Connection"%>
    <%@ page import="java.sql.DriverManager"%>
    <%@ page import="java.sql.*"%>
    
    <%!
        Connection CN=null;
        Statement ST=null;
        PreparedStatement PST=null;
        ResultSet RS=null;
        int Grn, Gcode, Gsabun, Gpay, Ghit;
        String Gname, Gtitle, Gconent, Gwriter, Gemail;
        java.util.Date Gwdate, hiredate, Gbirth;
        boolean Ggender, Gflag;
        int Gtotal=0, total=0, Stotal=0;
        String Gdata, data, Gmsg, msg;
    %>

     

    오라클 DB 문서가 있는 서버 정보를 연결한다. testList.jsp, testWriteSave.jsp에 아래 코드를 추가한다.

    <%
        try{
            Class.forName("oracle.jdbc.driver.OracleDriver");
            String url="jdbc:oracle:thin:@127.0.0.1:1521:XE";
            CN = DriverManager.getConnection(url, "system", "1234");
            System.out.println("오라클 db서버 연결 성공");
            out.println("<h1>오라클 db서버 연결 성공</h1><p>");
        } catch(Exception ex){System.out.println("db에러" + ex);}
    %>

     

     

     

     

     

    testWriteSave.jsp

    testWrite.jsp 에서 보낸 데이터를 이제 진짜 DB 서버에 저장해야 한다. 위에서 서버를 연결했으니까, 아래와 같이 사용해보자.

    <%
        out.println("<h2>데이터 받기 request 내장 객체</h2>");
        
        Gtitle = request.getParameter("title");
        Gpay = Integer.parseInt(request.getParameter("pay"));
        Gcode = Integer.parseInt(request.getParameter("code"));
        
        out.println("<h2>제목 데이터 = " + Gtitle + "</h2>");
        out.println("<h2>급여 데이터 = " + Gpay + "</h2>");
        out.println("<h2>코드 데이터 = " + Gcode + "</h2>");
        out.println("<h2>데이터 받기 성공입니다.</h2>");
        
        // msg = "insert into test values('snow', 24, sysdate, 7700)";
        msg = "insert into test
        	values('" + Gtitle + "'," + Gpay + ",sysdate," + Gcode + ")";
    
    	// msg가 잘 완성 되었는지 테스트
        System.out.println(msg);
        
        try{
            ST = CN.createStatement();
            ST.executeUpdate(msg);
            out.println(Gcode +"코드 데이터 성공처리");
            System.out.println(Gcode +"코드 데이터 성공처리");
            response.sendRedirect("testList.jsp");
        } catch(Exception ex){
        System.out.println("test테이블 저장실패 에러 " + ex);
        	out.println("<h1>test테이블 저장에러실패 " + ex + "</h1>") ;
        }
    %>
    • response.sendRedirect("testList.jsp")  -  testList.jsp 페이지로 화면 이동

     

    이제 오라클 mySQL을 실행하여 select * from test; 를 하면 입력한 데이터가 테이블에 저장되어 있다!!!

     

     

     

     

     

     

     

     

    testList.jsp

    <%@ page import="java.util.Date" %>
    <%@ page import="java.sql.Connection"%>
    <%@ page import="java.sql.DriverManager"%>
    <%@ page import="java.sql.*"%>

     

     

    사용되는 전역변수는 다음과 같다.

    <body>
        <%!
            Connection CN = null;
            Statement ST = null;
            PreparedStatement PST = null;
            ResultSet RS = null;
            int Grn, Gcode, Gsabun, Gpay, Ghit; // hit : 조회수, sabun : 사번
            String Gname, Gtitle, Gconent, Gwriter, Gemail;
            java.util.Date Gwdate, hiredate, Gbirth;
            boolean Ggender, Gflag;
            int Gtotal=0, total=0, Stotal=0;
            String Gdata, data, Gmsg, msg;
        %>

     

     

     

    오라클 DB 문서가 있는 서버 정보를 연결한다.

    <%
        try{
            Class.forName("oracle.jdbc.driver.OracleDriver");
            String url="jdbc:oracle:thin:@127.0.0.1:1521:XE";
            CN=DriverManager.getConnection(url, "system", "qazwsx311");
            out.println("<h1>오라클 db서버 연결 성공</h1><p>");
        } catch(Exception ex){System.out.println("db에러"+ex);}
        %>

     

     

     

    출력할 테이블 형태는 다음과 같다.

    <p>
        <h2>testList.jsp</h2>
        
        <table border="1" width="1200" cellspacing="0">
            <tr bgcolor="yellow">
                <td>코 드</td>
                <td>제 목</td>
                <td>날 짜</td>
                <td>급 여</td>
            </tr>

     

     

     

    제목, 급여, 날짜, 코드 데이터를 DB에서 가져오는 쿼리문을 작성한다.

            <%
                msg = "select title, pay, wdate, code from test ";
                ST = CN.createStatement(); // 명령어생성
                RS = ST.executeQuery(msg); // 생성된 명령(ST)에 쿼리문(msg)을 실행, 결과를 RS에 기억
    
                while(RS.next()==true){ // select 결과를 순회하면서 testList 테이블을 그림
                    Gtitle = RS.getString("title");
                    Gpay = RS.getInt("pay");
                    Gwdate = RS.getDate("wdate");
                    Gcode = RS.getInt("code");
            %>

    데이터가 존재하면 4개의 데이터를 변수에 저장한 뒤 차례로 반복문을 돌며

     

     

    데이터를 출력한다.

                    <tr>
                        <td> <%= Gcode %> </td>
                        <td> <%= Gtitle %> </td>
                        <td> <%= Gwdate %> </td>
                        <td> <%= Gpay %> </td>
                    </tr>
            
        	<% }//while end %>
        </table>
        
        <p>
        <a href="testWrite.jsp">[게시판입력화면]</a>
        <a href="testList.jsp">[게시판전체출력]</a>
        <a href="index.jsp">[index]</a>
        <p><br><br>
    </body>

     

     

    게시판 목록 화면

     

     

     

     

     

    testDetail.jsp (testList.jsp > Save as... > testDefault.jsp) - 항목 상세보기 페이지

    <%@ page import="java.util.Date" %>
    <%@ page import="java.sql.Connection" %>
    <%@ page import="java.sql.DriverManager" %>
    <%@ page import="java.sql.*" %>

     

     

    사용되는 전역변수는 다음과 같다.

    <body>
        <%!
            Connection CN=null ;
            Statement ST=null ;
            PreparedStatement PST=null;
            ResultSet RS=null;
            int Grn, Gcode, Gsabun, Gpay, Ghit ;
            String Gname, Gtitle, Gconent, Gwriter, Gemail;
            java.util.Date Gwdate, hiredate, Gbirth ; // 날짜타입
            boolean Ggender, Gflag ;
            int Gtotal=0, total=0, Stotal=0 ;
            String Gdata, data, Gmsg, msg ;
        %>
    • <%= %> : 문자열, 변수값, 함수 리턴 값
      • 그 외
        1. <%! 선언부 %> : 전역변수, 함수
        2. <% 스크립릿 %> : 코딩, 지역변수
        3. <%= 출력부 %>
        4. <%-- JSP 주석 --%>

     

     

    마찬가지로 서버 연결을 하고

    <%
        try{
            Class.forName("oracle.jdbc.driver.OracleDriver");
            String url="jdbc:oracle:thin:@127.0.0.1:1521:XE";
            CN=DriverManager.getConnection(url, "system", "1234");
            System.out.println("testDetail 오라클 db서버 연결 성공") ;
        }catch(Exception ex){ System.out.println("testDetail db에러 " + ex); }
    %>

     

     

     

    코드가 ****인 데이터 한 건을 조회하는 DB 쿼리문을 작성한다.

    <%
        msg = "select * from test where code = 2234";
        ST = CN.createStatement();
        RS = ST.executeQuery(msg);
        if(RS.next()==true){
            Gtitle = RS.getString("title");
            Gpay = RS.getInt("pay");
            Gwdate = RS.getDate("wdate");
            Gcode = RS.getInt("code");
        }
    %>

    데이터가 존재하면

     

     

     

    다음과 같은 형태로 출력한다.

    <p>
        <table width="900" border="1" cellspacing="0" cellpadding="7">
            <tr align="center">
            	<td colspan="2">
           			testDetail.jsp</br>
            	</td>
            </tr>
            
            <tr>
            	<td rowspan="4" align="center"> <img src="images/pic6.png" width="500"
            	height="300" > </td>
            	<td width="400"> 코드: <%= Gcode %> </td>
            </tr>
            
            <tr> <td> 제목: <%= Gtitle %> </td> </tr>
            <tr> <td> 날짜: <%= RS.getDate("wdate") %> </td> </tr>
            <tr> <td> 급여: <%= RS.getInt("pay") %> </td> </tr>
            
            <tr align="center">
                <td colspan="2">
                <a href="#">[수정]</a>
                <a href="testWrite.jsp">[등록]</a>
                <a href="#">[삭제]</a>
                <a href="index.jsp">[index]</a>
                <a href="testList.jsp">[전체출력]</a>
                </td>
            </tr>
        </table>
    </body>

     

     

     

     

    index.jsp - 메인 화면 페이지

    <body>
        <div align="center">
            <h2>index.jsp</h2>
            <img src="./images/tulips.png" width=450 height=350>
            <p>
            <a id="testWriteBtn" href="testWrite.jsp">[게시판입력화면]</a>
            <a id="testListBtn" href="#" onclick="listPageMove()">[게시판전체출력]</a>
            <a id="indexBtn" href="index.jsp">[index]</a>
        </div>
        <p><br><br>
        
        <script type="text/javascript">
        	setTimeout("location.href='testList.jsp'", 3000);
        </script>
    </body>
    • 문서 이동 태그
      • <a herf=""> </a>
      • <form action=""> </form>

     

     

     

     

     

    ssi.jsp 

     

    지금까지 testWrite, testWriteSave, testList, testDetail... 에서 전역변수 선언 및 오라클 서버 연결 코드를 "똑같이 반복" 해왔다...

     

    코드 중복은 세상에서 제일 끔찍한 것이다. 공통적으로 사용 되는 코드부를 ssi 파일에 별도 저장한 뒤 각 파일에서 ssi 파일을 import 하도록 하자.

    <%@ page import="java.util.Date" %>
    <%@ page import="java.sql.Connection" %>
    <%@ page import="java.sql.DriverManager" %>
    <%@ page import="java.sql.*" %>

     

    <body>
        <!-- ssi.jsp = server side include문서 -->
        <%!
            Connection CN=null ;
            Statement ST=null ;
            PreparedStatement PST=null;
            ResultSet RS=null;
            int Grn, Gcode, Gsabun, Gpay, Ghit ;
            String Gname, Gtitle, Gconent, Gwriter, Gemail;
            java.util.Date Gwdate, hiredate, Gbirth ;
            boolean Ggender, Gflag ;
            int Gtotal=0, total=0, Stotal=0 ;
            String Gdata, data, Gmsg, msg ;
        %>
        
        <%
            try{
                Class.forName("oracle.jdbc.driver.OracleDriver");
                String url="jdbc:oracle:thin:@127.0.0.1:1521:XE";
                CN=DriverManager.getConnection(url, "system", "1234");
                System.out.println("오라클 db서버 연결 성공") ;
            }catch(Exception ex){ System.out.println("db에러 " + ex); }
        %>
    </body>

     

     

     

     

     

    ssi.jsp 를 import 한 파일들의 전체 코드

    더보기

    testWrite.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" %>
    <%@ include file="./ssi.jsp" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title> [testWrite.jsp=입력화면get방식]</title>
    </head>
    <body>
        <p/>
        <h2>testWrite.jsp</h2>
        
        <form name="myform" method="get" action="testWriteSave.jsp">
            제목: <input type="text" name="title" id="title"><br>
            급여: <input type="text" name="pay" id="pay"><br>
            코드: <input type="text" name="code" id="code"><br>
            <input type="submit" value="데이터저장"> &nbsp;
            <input type="reset" value="입력취소">
        </form>
        
        <p>
        <a href="testWrite.jsp">[게시판입력화면]</a>
        <a href="testList.jsp">[게시판전체출력]</a>
        <a href="index.jsp">[index]</a>
    </body>
    </html>

     

     

    testWriteSave.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ include file="./ssi.jsp" %>
    <%@ page import="java.util.Date" %>
    <%@ page import="java.sql.Connection"%>
    <%@ page import="java.sql.DriverManager"%>
    <%@ page import="java.sql.*"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>[testWriteSave.jsp]</title>
    </head>
    <body>
        <p>
        <img src="./images/bear.gif">
        <h2>testWriteSave.jsp</h2>
        
        <%
            out.println("<h2>데이터 받기 request 내장 객체</h2>");
            Gtitle = request.getParameter("title");
            Gpay = Integer.parseInt(request.getParameter("pay"));
            Gcode = Integer.parseInt(request.getParameter("code"));
            out.println("<h2>제목 데이터 = " + Gtitle + "</h2>");
            out.println("<h2>급여 데이터 = " + Gpay + "</h2>");
            out.println("<h2>코드 데이터 = " + Gcode + "</h2>");
            out.println("<h2>데이터 받기 성공입니다.</h2>");
    
            msg = "insert into test
            values('"+Gtitle+"',"+Gpay+",sysdate,"+Gcode+")";
            System.out.println(msg);
    
            try{
                ST = CN.createStatement();
                ST.executeUpdate(msg);
                out.println(Gcode +"코드 데이터 성공처리 ");
                System.out.println(Gcode +"코드 데이터 성공처리 ");
                response.sendRedirect("testList.jsp");
            }catch(Exception ex){
                System.out.println("test테이블 저장실패 에러 " + ex);
                out.println("<h1>test테이블 저장에러실패 " + ex + "</h1>") ;
            }
        %>
        
        <p>
        <a href="testWrite.jsp">[게시판입력화면]</a>
        <a href="testList.jsp">[게시판전체출력]</a>
        <a href="index.jsp">[index]</a>
        <p><br><br>
    </body>
    </html>

     

     

    testList.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" %>
    <%@ include file="ssi.jsp" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title> [testList.jsp]</title>
    </head>
    <body>
        <p>
        <h1>testList.jsp</h1>
        
        <table border="1" width="1200" cellspacing="0">
            <tr bgcolor="yellow">
            	<td>코 드</td> <td>제 목</td> <td>날 짜</td> <td>급 여</td>
            </tr>
            
            <%
                msg = "select * from test order by code";
                ST = CN.createStatement();
                RS = ST.executeQuery(msg);
                while(RS.next()==true){
                    Gtitle = RS.getString("title");
                    Gpay = RS.getInt("pay");
                    Gwdate = RS.getDate("wdate");
                    Gcode = RS.getInt("code");
                    System.out.println(Gcode + " " + Gtitle + " " + Gwdate + " " + Gpay);
            %>
            
                    <tr>
                        <td> <%= Gcode %> </td>
                        <td> <%= Gtitle %> </td>
                        <td> <%= Gwdate %> </td>
                        <td> <%= Gpay %> </td>
                    </tr>
            
            <% }//while end %>
            
        </table>
    
        <p>
        <a href="testWrite.jsp">[게시판입력화면]</a>
        <a href="testList.jsp">[게시판전체출력]</a>
        <a href="index.jsp">[index]</a>
    </body>
    </html>

     

     

    testDetail.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" %>
    <%@ include file="./ssi.jsp" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title> [testDetail.jsp]</title>
    </head>
    <body>
        <%
            msg = "select * from test where code = 2234";
            ST = CN.createStatement();
            RS = ST.executeQuery(msg);
            if(RS.next()==true){
                Gtitle = RS.getString("title");
                Gpay = RS.getInt("pay");
                Gwdate = RS.getDate("wdate");
                Gcode = RS.getInt("code");
            }
        %>
        
        <p>
        <table width="900" border="1" cellspacing="0" cellpadding="7">
            <tr align="center">
            	<td colspan="2">
           			 testDetail.jsp</br>
           		</td>
            </tr>
            
            <tr>
            	<td rowspan="4" align="center"> <img src="images/pic6.png" width="500"
            	height="300" > </td>
            	<td width="400"> 코드: <%= Gcode %> </td>
            </tr>
            
            <tr> <td> 제목: <%= Gtitle %> </td> </tr>
            <tr> <td> 날짜: <%= RS.getDate("wdate") %> </td> </tr>
            <tr> <td> 급여: <%= RS.getInt("pay") %> </td> </tr>
            
            <tr align="center">
            	<td colspan="2">
                    <a href="#">[수정]</a>
                    <a href="testWrite.jsp">[등록]</a>
                    <a href="#">[삭제]</a>
                    <a href="index.jsp">[index]</a>
                    <a href="testList.jsp">[전체출력]</a>
            	</td>
            </tr>
        </table>
    </body>
    </html>

     

     

     

     

     

     

     

     

    다음 게시글에 이어서...

    'Studying > Java' 카테고리의 다른 글

    [JAVA] JDK 실습 (5)  (0) 2022.08.21
    [JAVA] JDK 실습 (4)  (0) 2022.08.21
    [JAVA] JDK 배포 파일 만들기/실행하기  (0) 2022.08.21
    [JAVA] JDK 실습 (3)  (0) 2022.08.21
    [Java] JSP 실습 (1)  (0) 2022.08.16
Designed by Tistory.