ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] JDK 실습 (3)
    Studying/Java 2022. 8. 21. 01:02

     

    중복 코드 검사 실습

    DB 테이블 관리

    • cmd > sqlplus system/****(비밀번호)

     

    아래 6개의 테이블을 생성한다.

     

    • login
    • test
    • board
    • boardreply(+시퀀스)
    • bbs(+시퀀스)
    • bbsreply(+시퀀스)

     

    login 테이블을 생성하고 데이터를 삽입한다.

    drop table login ;
    create table login(
        userid varchar2(10) primary key ,
        pwd varchar2(10) not null
    );
    commit ;
    
    insert into login values('sky', '1234') ;
    insert into login values('blue', '1234') ;
    commit ;

     

     

    시퀀스를 생성한다.

    drop sequence board_seq;
    create sequence board_seq;

     

     

    그 다음 board 테이블을 생성하던 중 에러가 발생했다.

    //에러 발생
    drop table board ;
    create table board (
    bnum number(4) primary key ,
    code number(4) primary key
    );

     

     

    아래 두 가지 해결방법이 있다.

    //해결 방법 (1) - 이게 제일 좋음
    drop table board ;
    create table board (
        bnum number(4) primary key ,
        code number(4) unique
    );
    
    //해결 방법(2)
    drop table board ;
    create table board (
        bnum number(4) ,
        code number(4) ,
        constraint board_pk primary key(bnum, code)
    ) ;
    commit;
    • unique : 유일한데 null 허용
    • primary key : 유일하고 not null

     

     

     

    board 테이블에 데이터를 입력한다.

    insert into board values( 1100, 75);
    insert into board values( 1100, 95); --에러발생(1)
    insert into board values( 2200, 75); --에러발생(2)
    insert into board values( 2200, 95);
    insert into board values( 1100, 95); --에러발생(3)
    insert into board values( 3300, 95);
    
    select constraint_name from user_constraints;
    
    alter table board drop constraint board_pk;
    commit ;
    
    select constraint_name from user_constraints;
    commit ;

    에러 발생(1), (2), (3) -  unique constraint (SYSTEM.SYS_C007051) violated

    => 유일하지 않은 데이터에 대해서 에러가 발생한다.

     

     

     

     

    bbs 테이블을 생성한다.

    drop sequence bbs_seq ;
    create sequence bbs_seq ;
    
    drop table bbs;
    create table bbs (
        b_no number(3) not null, --bbs_seq.nextVal
        b_sabun number(4) not null ,
        b_name varchar2(15) not null,
        b_title varchar2(30) not null,
        b_cnt number(5) default 0 ,
        b_content varchar2(50) not null,
        b_phone varchar2(20) not null,
        b_pwd varchar2(10) not null,
        b_wdate date not null,
        b_juso1 varchar2(100) not null,
        b_juso2 varchar2(50) not null,
        b_email varchar2(30) not null,
        b_url varchar2(20) null,
        b_file1 varchar2(30) null,
        b_size1 number(7) default 0 ,
    
        primary key(b_sabun)
    );
    commit ;

     

     

     

    bbsreply_seq 테이블을 생성한다.

    drop sequence bbsreply_seq ;
    create sequence bbsreply_seq ;
    
    drop table bbsreply;
    create table bbsreply (
        br_num number(4) not null,
        br_writer varchar2(10) not null,
        br_content varchar2(20)not null,
        br_date date not null,
        br_sabun number(4) not null
    );
    commit ;

     

     

    시퀀스를 추가한다.

    --제약조건 create 키워드 대신 alter table 대상 테이블 이름
    alter table bbsreply drop constraint bbs_sabun_fk ;
    alter table bbsreply add constraint bbs_sabun_fk
    foreign key(br_sabun) references bbs(b_sabun) on delete cascade;
    commit ;

     

     

     

    테이블 크기를 조정하고 예쁘게 출력해본다.

    col b_name for a10 ;
    col b_title for a10 ;
    col b_file1 for a15 ;
    select b_no,b_name,b_title, b_file1 from bbs ;
    set linesize 200
    set pagesize 200
    commit ;
    
    select * from bbs ;

     

     

     

    지난 실습 때 만든 test 테이블을 초기화 겸 다시 만들어준다.

    drop table test ;
    create table test (
        title varchar2(10) not null ,
        pay number(3) not null ,
        wdate date not null ,
        code number(4) primary key
    );
    commit ;
    
    insert into test values('snow', 21, sysdate, 7700);
    insert into test values('cake', 91, sysdate, 5500);
    
    delete from test ;
    commit ;
    select * from test ;
    col title for a10

     

     

     

     

     

    JAVA 코드 작성하기

     

    testWrite.jsp - 코드 중복 입력 체크하기

     

    데이터 입력 검증 함수를 작성한다.

    <script type="text/javascript">
        Gflag = false; // 코드 중복체크 여부 판단
    
        function nullCheck(){
            dcode = document.myform.code.value;
            dtitle = document.myform.title.value;
            dpay = document.myform.pay.value;
    
            if(dcode==null || dcode==""){
              alert("code데이터 공백입니다");
              myform.code.focus();
              return false;
          }else{myform.title.focus();}
    
          if(dtitle==null || dtitle==""){
              alert("title데이터 공백입니다");
              myform.title.focus();
              return false;
          }else{myform.pay.focus();}
    
          if(dpay==null || dpay==""){
              alert("pay데이터 공백입니다");
              myform.pay.focus();
              return false;
          }

     

     

     

    중복체크 검증을 한다.

    if(Gflag==false){
           alert("아이디=코드 중복체크를 하셔야 합니다.");
          }else if(Gflag==true){ document.myform.submit();}    
        }//function nullCheck() end

     

     

     

    코드 중복 체크를 하는 함수를 작성한다.

    function codeCheck(){
          dcode = document.myform.code.value;
          if(dcode==null || dcode==""){
              alert("중복코드체크 code데이터 공백입니다");
              myform.code.focus();
              return false;
          }
          Gflag=true;
          window.open("openID.jsp?idx="+dcode, "bb", "width=500,height=150,left=550,top=200");
        }// function codeCheck() end
    </script>
    • open("./openID.jsp?idx="+dcode, "bb", "width=500, height=130, left=550, top=200")
      • 부모창에서 자식 팝업창을 새로 오픈하는 메소드
      • openID.jsp 를 자식창으로 오픈하는데, idx 파라미터에 dcode라는 값을 전달하겠다.
      • window.open(url, name, specs, replace);
        • name 기본값
          1. _blank : 기본값으로, 새 창에 열린다
          2. _parent : 부모 프레임에 열린다
          3. _self : 현재 페이지를 대체한다.
          4. _top : 로드 된 프레임셋을 대체한다.
          5. _name(임의의 이름) : 새 창이 열리고, 창의 이름을 지정한다. 동일한 이름에 다시 open() 하면 기존의 열린 창의 내용이 바뀐다. 다른 이름을 사용하면 또 다른 새 창이 열린다.
        • specs : 선택적인 값으로 창의 크기, 스크롤 여부, 리사이즈 가능 등의 속성을 지정
        • replace : 히스토리 목록에 새 항목을 만들지 현재 항목을 대체할지 지정 (true:대체/false:새항목 만듦)

     

     

     

    html 형태는 다음과 같다.

    <body>
    <p/>
    <h2>testWrite.jsp</h2>
    
    <form name="myform" method="get"  action="testWriteSave.jsp">
        코드: <input type="text" name="code" id="code" size="6">
             <input type="button"  onClick="codeCheck();"  value="code중복체크"> <br>
        제목: <input type="text" name="title" id="title"> <br>
        급여: <input type="text"  onkeyup="payNumber();"  name="pay" id="pay" > <br>
             <input type="button" onClick="nullCheck();" 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>

     

     

     

     

    openID.jsp - 중복 체크 팝업창

    <body bgcolor=yellow>
        <p/>
        <h2>openID.jsp</h2>
      
        <%
         String Gdata = request.getParameter("idx");
        %> 
    
        <div>
            <img src="images/bar.gif" width=400><br>
            <form name="open_form" method="get" action="openIDSave.jsp">
              코드:<input type="text" name="mycode" size="10" value="<%=Gdata%>">
                  <input type="submit" value="중복처리">
            </form>
            <img src="images/bar.gif" width=400><br>
        </div>
    </body>

     

     

     

     

     

    openSaveID.jsp - 코드 중복 여부 검사


    오라클 mySQL에서 특정 코드의 데이터 개수를 알 수 있는 명령어를 응용하자.

    select count(*) as cnt from test where code=7700 ;

     

     

    <body bgcolor="yellow">
        <div align="center">
            <img src="images/bar.gif" width="350"> <br>
            <img src="images/bar.gif" width="350"> <br>
        </div>
        
        <%
            Gdata = request.getParameter("mycode");
            msg = "select count(*) as cnt from test where code = " + Gdata;
            ST = CN.createStatement();
            RS = ST.executeQuery(msg);
            if(RS.next()==true){ Gtotal = RS.getInt("cnt");}
            if( Gtotal>0 ){ // 이미 그 코드가 DB에 저장되어 있으면
        %>
        
        <script type="text/javascript">
            alert("<%=Gdata%> 데이터는 이미 사용중입니다");
            //아래 세 줄을 이 한 줄로 요약 가능
            //location.href='openID.jsp?idx='+"" ;
            opener.myform.code.value="";
            opener.myform.code.focus();
            self.close();
        </script>
        
        <%
            } else{
        %>
        
        <script type="text/javascript">
            alert("<%=Gdata%> 데이터는 사용가능한 사번아이디 입니다");
            opener.myform.code.value=<%=Gdata%> ;
            opener.myform.title.focus();
            self.close();
        </script>
        
        <% } %>
    </body>
    </html>
    • opener.myform.code.value = " "  -  부모창의 window 객체를 참조
      • 부모창의 페이지에 접근할 수 있게 된다.
      • 부모창과 자식창에 있는 텍스트 입력란을 서로 접근 가능하다.

     

     

     

     

     

     

     

    testWrite.jsp - '급여' 입력란에 숫자를 제외한 글자를 입력하면 알림창 띄우기

     

    자바스크립트 영역에 payNumber() 함수를 추가한다.

    '급여' 입력란에 onkeyup 이벤트 함수 속성을 추가한다.

    ...
    
    function payNumber(){
        //onkeyup="payNumber();"
        var dpay = myform.pay.value;
        var size = myform.pay.value.length;
        for(var i=0; i<size; i++){
            if(dpay.charAt(i)<'0' || dpay.charAt(i)>'9'){
                alert("정확한 숫자를 입력하세요");
                myform.pay.value=dpay.substring(0,i);
                myform.pay.focus();
            }
        }//for end
    }//end
    
    ...
    	급여: <input type="text" onkeyup="payNumber();" name="pay" id="pay" > <br>
    ...

     

     

     

     

     

    testList.jsp - 전체 데이터 개수 표시하기

     

    총 데이터 개수를 구하는 쿼리문을 작성한다.

    <%@ include file="ssi.jsp"  %>
    
    <body>
        <%
            msg = "select count(*) as cnt from test";
            ST = CN.createStatement();
            RS = ST.executeQuery(msg);
            if(RS.next()==true){total=RS.getInt("cnt");}
        %>

    전달받은 데이터가 존재하면 total 변수에 총 개수를 저장한다.

     

     

     

    테이블은 이렇게 생겼다.

    <h1>testList.jsp</h1>
     <table border="1" width="1000" cellspacing="0">
        <tr align="right">
            <td colspan="4"> 데이터 개수: <%= total %> &nbsp;&nbsp; <td>
        </tr>
    
        <tr bgcolor="plum">
            <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");
    %>

    select 된 데이터가 존재하면 제목, 급여, 날짜, 코드를 가져온 뒤

     

     

     

    그대로 테이블을 작성한다.

    <tr>
             <td> <%= Gcode %> </td>
             <td> <a href="testDetail.jsp?idx=<%=Gcode%>"><%= Gtitle %></a></td>
             <td> <%= Gwdate %> </td>
             <td> <%= Gpay %> </td> 
        </tr>
        <% } %>
    </table>  
    
      <p>
      <a href="testWrite.jsp">[게시판입력화면]</a>
      <a href="testList.jsp">[게시판전체출력]</a>
      <a href="index.jsp">[index]</a>
      <a href="login.jsp">[로그인]</a>
    </body>

     

     

     

     

     

     

     

     

    testDetail.jsp - 데이터 한 건 상세보기 페이지

     

    우선 testList.jsp에 제목을 클릭하면 상세보기 페이지로 이동하는 링크를 걸어줘야 한다.

    <style type="text/css">
        * { font-size:20pt; }
        a { font-size:20pt; text-decoration:none; color:lightcoral; }
        a:hover{ font-size:24pt; text-decoration:underline ; color:black; fontweight:bold;}
        body{margin-left:20px;}
    </style>
    
    <tr>
        <td> <%= Gcode %> </td>
        <td> <a href="testDetail.jsp?idx=<%=Gcode%>"><%= Gtitle %></a></td>
        <td> <%= Gwdate %> </td>
        <td> <%= Gpay %> </td>
    </tr>

     

     

    testDetail.jsp에서

    <%@ include file="./ssi.jsp" %>
    <body>
        <%
         Gdata = request.getParameter("idx");
         msg = "select * from  test where code ="+Gdata;
    
         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");
         }			
        %>

    클릭한 게시글 코드와 동일한 데이터를 가져오는 쿼리문을 작성한다.

     

     

    상세보기 html 형태는 다음과 같다.

    <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="testEdit.jsp?idx=<%=Gcode%>">[수정]</a>
                <a href="testWrite.jsp">[등록]</a>
                <a href="testDeleteSave.jsp?code=<%=Gcode%>">[삭제]</a>
                <a href="index.jsp">[index]</a>
                <a href="testList.jsp">[전체출력]</a>
            </td>
           </tr>
         </table>
         
    </body>

     

     

     

     

    testEdit.jsp - 데이터 수정 페이지

    <%@page import="javax.print.DocFlavor.STRING"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"   pageEncoding="UTF-8" %>
    <%@ include file = "./ssi.jsp" %>
    
    <body>
      <h2>testEdit.jsp</h2>
      
      <%
      	Gdata = request.getParameter("idx");
      	msg="select * from test where code = "+Gdata;
      	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");
      	}
      %>
      
      <form name="myform" method="get"  action="testEditSave.jsp">
        수정코드: <input type="text" name="code" id="code" value="<%=Gcode%>" readonly><br>
        수정제목: <input type="text" name="title" id="title" value="<%=Gtitle%>"> <br>
        수정급여: <input type="text" name="pay" id="pay" value="<%=Gpay%>"> <br>
             <input type="submit" value="수정"> 
             <input type="reset" value="수정입력취소"> 
      </form>
      
      <p>
      <a href="testWrite.jsp">[게시판입력화면]</a>
      <a href="testList.jsp">[게시판전체출력]</a>
      <a href="index.jsp">[index]</a>
    </body>
    </html>

     

     

     

     

     

    testEditSave.jsp - 수정한 데이터를 저장

    <%@ include file="./ssi.jsp" %>
    <%@ page import="java.util.Date" %>
    <%@ page import="java.sql.Connection"%>
    <%@ page import="java.sql.DriverManager"%>
    <%@ page import="java.sql.*"%>

     

     

    update 쿼리문을 작성하여 수정한 데이터를 DB에 저장한다.

    <body>
        <p>
        <img src="./images/bear.gif">
        <h2>testEditSave.jsp</h2>
        
        <%
            Gtitle = request.getParameter("title");
            Gpay = Integer.parseInt(request.getParameter("pay"));
            Gcode = Integer.parseInt(request.getParameter("code"));
            
            System.out.println("수정제목데이터 = " + Gtitle);
            System.out.println("수정급여데이터 = " + Gpay);
            System.out.println("수정코드데이터 = " + Gcode);
            
            msg = "update test set title='" + Gtitle + "', pay=" + Gpay + ", wdate=sysdate
            where code =" + Gcode;
            
            System.out.println(msg);
            
            try{
                ST = CN.createStatement();
                ST.executeUpdate(msg);
                System.out.println(Gcode +"코드 데이터 수정 성공 ");
                response.sendRedirect("testList.jsp");
            }catch(Exception ex){
                response.sendRedirect("testList.jsp");
                System.out.println("test테이블 수정 실패 에러 " + ex);
            }
        %>
    </body>

     

     

     

     

     

    testDetailSave.jsp - 데이터 삭제

    <%@ include file="./ssi.jsp" %>
    <%@ page import="java.util.Date" %>
    <%@ page import="java.sql.Connection"%>
    <%@ page import="java.sql.DriverManager"%>
    <%@ page import="java.sql.*"%>

     

     

    데이터를 삭제하는 delete 쿼리문을 보내 DB에서 데이터를 삭제한다.

    <body>
        <p>
        <img src="./images/bear.gif">
        <h2>testDeleteSave.jsp</h2>
        
        <%
            Gdata = Integer.parseInt(request.getParameter("code"));
            msg = "delete from test where code=" + Gdata ;
    
            System.out.println(msg);
            
            try{
                ST = CN.createStatement();
                ST.executeUpdate(msg);
                System.out.println(Gcode +"코드 데이터 삭제 성공 ");
                response.sendRedirect("testList.jsp");
            }catch(Exception ex){
                System.out.println("test테이블 삭제 실패 에러 " + ex);
                response.sendRedirect("testList.jsp");
            }
        %>
    </body>

     

     

     

     

     

    수정/삭제 권한 만들기

    Session 내장 객체를 사용한다.

    └▶ 웹 서버에서 제공되는 내장 객체

          └▷ page, out(출력), request(값 전달), response(문서 이동), session(권한), application(자원 접근)

     

     

    • 수정: 관리자/글쓴이만 수정 가능
    • 삭제: 관리자/글쓴이만 삭제 가능
    • login.jsp에서 userid/pwd 입력 후 loginSave.jsp에서 세션 권한 처리를 하자.

     

    DB 테이블 추가

    cmd 오픈 > login 테이블 생성

    drop table login ;
        create table login(
        userid varchar2(10) primary key ,
        pwd varchar2(10) not null
    );
    commit ;
    
    insert into login values('sky', '1234') ;
    insert into login values('blue', '1234') ;
    commit ;

     

     

     

    JAVA 코드 작성

     

    login.jsp - 로그인 페이지

     

    xhr 객체를 생성하는 함수 first()를 작성한다.

    <script type="text/javascript">
      var xhr; // 전역 변수
    
      function first(){
        return new XMLHttpRequest( );
      }

     

     

    input 태그에 입력받은 아이디/비밀번호를 가져온 뒤

    function two(){  
        var a = document.getElementById("userid").value; // myform.userid.value;와 같음
        var b = document.getElementById("pwd").value; // myform.pwd.value;와 같음
        xhr = first();
        xhr.onreadystatechange = display;
        xhr.open("GET", url, true);
        xhr.send();
     }

    first() 함수를 호출해 xhr 객체를 생성하고 GET 메서드 요청을 보낸다.

     

     

    응답 메세지를 저장한뒤 innerHTML로 삽입한다.

    function display(){
         if(xhr.readyState==4){
            if(xhr.status==200){
                 var message = xhr.responseText;
                 document.getElementById("msg").innerHTML = message;
            }
         }
    }
    </script>

     

     

     

     

    html 형태는 다음과 같다.

    <body>	
    <div id="msg" align="center">	
    	<table width="550" border="1" cellspacing="0">
    	  <form name="myform"  method="post" action="loginSave.jsp">
    		<tr>
    			<td width=350> <b>userid: </b></td>
    			<td> <input type="text" name="userid" id="userid" value=""></td>
    			
    			<td rowspan=3 align="center">
    			 <input type="submit"  value="LOG-IN" id="LOG-IN" >
    			</td>
    		</tr>
    		
    		<tr>
    			<td width=350><b>userpw: </b> </td>
    			<td>
    			  <input type="text"  name="pwd" id="pwd" value="">       
    			</td>
    		</tr>
            
    		<tr>
    			<td colspan="2" align="center">
     				<a href="guestWrite.jsp">[데이터 입력]</a>
     				<a href="index.jsp">[index]</a>
     				<a href="guestList.jsp">[전체출력]</a>
    			</td>
    		</tr>
    		</form>
    	</table>
    </div>
    </body>

     

     

     

     

     

    loginSave.jsp - 로그인 아이디/패스워드 확인

    (실제 로그인을 구현한다기 보다는 글 작성 시 유저에게만 수정/삭제 권한을 부여한다는 기능에 초점을 맞춘다)

    <body>		
        <%
          String userA = request.getParameter("userid");
          String pwdB = request.getParameter("pwd");
          
          msg="select count(*) as cnt from login where userid=? and pwd=? ";
          
          PST=CN.prepareStatement(msg);
          PST.setString(1, userA);
          PST.setString(2, pwdB);
          RS=PST.executeQuery();
          if(RS.next()==true){ Gtotal=RS.getInt("cnt"); }
    
          if(Gtotal>0){
             session.setAttribute("naver", userA); //userid값을 가짜변수 세션naver가짜이름에 넘김
             response.sendRedirect("index.jsp");
          %>

    URL파라미터에서 아이디와 비번을 받아온 뒤 존재하는 사용자인지 쿼리문을 작성해 검사한다.

    select 된 데이터가 존재하면 세션에 저장한다.

     

     

     

    로그인을 성공한 경우 아래와 같이 화면을 출력한다.

       <font size=7 color=blue>
         <b><%= userA %>님 로그인 성공!!!</b> <br>
       </font><p>
       <img src="images/bt_login.gif" width=450 height=70><p>
       <img src="images/bar.gif" width=450 > <p>

     

     

     

    로그인을 실패할 경우 화면 출력

     <%  
      }else{
           out.println("<div id='myLogin' align='center'>"); 
           out.println("<b></b>"+userA+"님 로그인실패<br>");
           out.println("<a href='login.jsp'>[로그인]</a>");
           out.println("<a href='index.jsp'>[index]</a><br>");
           out.println("<img src='images/tulips.png' width=400 height=250 >");
           out.println("</div>");
     %> 	
    
        <script type="text/javascript">
           setTimeout("location.href='login.jsp'", 2000); 
        </script>
    <% } // else end %>
    </body>

     

     

     

     

     

    testDeleteSave.jsp - 로그인을 안 하면 삭제를 못 하도록 만듦

    <%@ include file="./ssi.jsp" %>
    <%@ page import="java.util.Date" %>
    <%@ page import="java.sql.Connection"%>
    <%@ page import="java.sql.DriverManager"%>
    <%@ page import="java.sql.*"%>

     

     

    로그인이 정상적으로 수행되어 세션에 저장된 사용자인지 검사한다.

    <body>
    	<p>
    	<img src="./images/bear.gif">
    	<h2>testDeleteSave.jsp</h2>
    	
    	<%
    		String my = (String)session.getAttribute("naver");
    		if(my==null || my.equals("")){
    	%>
    • (String)session.getAttribute("naver")  -  세션에 값을 얻어오기 위한 메소드
      • session.setAttribute(String name, Object value)  -  세션에 값을 저장하기 위한 메소드
        • name : 값을 저장하는 대상. 세션에 저장 된 특정 값을 찾아오기 위한 키.
        • value : 키와 일대일 대응으로 저장하는 값
        • 동일한 이름으로 세션에 저장 시, 항상 덮어쓰게 된다.

     

     

     

    로그인 하지 않은 사용자라면

    <div align="center">
        <img src="images/tulips.png" width=450><br>
        <script type="text/javascript">
            alert("회원전용 서비스입니다\n 반드시 로그인 후 서비스가 가능합니다.");
            setTimeout("location.href='testList.jsp'", 3000);
        </script>
    </div>

     

     

     

    로그인한 사용자라면

    <%
        }else{
            Gdata = request.getParameter("code");
            msg = "delete from test where code= " + Gdata ;
            System.out.println(msg);
    
            ST = CN.createStatement();
            ST.executeUpdate(msg);
            System.out.println(Gcode +"코드 데이터 삭제성공 ");
    
            response.sendRedirect("testList.jsp");
        }
    %>
    </body>

     

     

     

     

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

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