리팩토링(refactoring)

 

 

코딩을 하고나면 코드에 비효율적인 면이 생기기 마련이다.

 

코드 자체를 효율적으로 만들어서

코드의 가독성을 높이고, 유지보수를 편리하게 만들고, 중복된 코드를 줄이는 방향으로 코드를 개선하는 작업

리팩토링이라고 합니다.

 

소프트웨어의 규모가 커지고 복잡해지면 틈틈이 리팩토링 해야 좋은 프로그램을 만들 수 있다.

 


 

 

사례

조건문을 이용하여 토글 기능이 있는 버튼을 구현하는 코드이다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>자바스크립트</h1>
    <h2>조건문</h2>

    <input type="button" id="night_day" value="night" onclick="
        if(document.querySelector('#night_day').value ==='night'){
            document.querySelector('body').style.backgroundColor='black';
            document.querySelector('body').style.color ='white';
            document.querySelector('#night_day').value= 'day';

        }else{
            document.querySelector('body').style.backgroundColor='white';
            document.querySelector('body').style.color ='black';
            document.querySelector('#night_day').value= 'night';
        }
    ">

    <p>코딩하는 코린이</p>

    

</body>
</html>

 

 

 

this 키워드 사용

 

onclick과 같은 이벤트 안에서 실행되는 코드에서는 현재 코드가 속해 있는 태그를 가리키도록 

약속돼 있는 특수한 키워드를 사용한다.  바로 this 키워드 이다.

 

<input type="button" id="night_day" value="night" onclick="
        if(document.querySelector('#night_day').value ==='night'){
            document.querySelector('body').style.backgroundColor='black';
            document.querySelector('body').style.color ='white';
            document.querySelector('#night_day').value= 'day';

 

document.querySelector('#night_day').value= 'day';

여기서 doucment.querySelector('#night_day')는 자기 자신을 가리킨다.

 

따라서 이 코드 대신 this로 바꾸면 된다.

 

 <input type="button" id="night_day" value="night" onclick="
        if(this.value ==='night'){
            document.querySelector('body').style.backgroundColor='black';
            document.querySelector('body').style.color ='white';
            this.value= 'day';

        }else{
            document.querySelector('body').style.backgroundColor='white';
            document.querySelector('body').style.color ='black';
            this.value= 'night';
        }
    ">

 

 this.value= 'day';

 

 

코드가 훨씬 간결해졌다.

 


중복 제거

 

위에 코드를 보면

 

 document.querySelector('body')

부분이 중복 해서 등장하고 있다.

 

 

중복된 코드를 간결하게 하여 유지보수 하기 편하게 만들어보자

 

<body> 태그를 변수 target에 할당

 

var target = document.querySelector('body');

 

 

<input type="button" id="night_day" value="night" onclick="
        
        var target = document.querySelector('body');
        
        if(this.value ==='night'){
            target.style.backgroundColor='black';
            target.style.color ='white';
            this.value= 'day';

        }else{
            target.style.backgroundColor='white';
            target.style.color ='black';
            this.value= 'night';
        }
    ">

 

코드가 간결해졌다.!!

'JavaScript' 카테고리의 다른 글

JavaScript 함수 (function)  (0) 2020.12.06
조건문 활용- 토글(toggle)  (0) 2020.12.06
JS의 이벤트  (0) 2020.12.06
script 태그  (0) 2020.12.06
JavaScript 란?  (0) 2020.12.06

프로그래밍에서 조건문은 굉장히 중요하다.

 

조건문이라고 하는 것은 하나의 프로그램이 하나의 흐름으로 가는 것이 아니라 

조건에 따라 다른 순서의 기능들이 실행되게 하는 것이라고 할 수 있다.

 

 


 

토글 기능

night 라는 버튼을 누르면 야간 모드, day 라는 버튼을 누르면 주간 모드가 되는 기능을 구현

 

 

 

<h1>자바스크립트</h1>
    <h2>조건문</h2>

    <input type="button" id="night_day" value="night" onclick="
        if(document.querySelector('#night_day').value ==='night'){
            document.querySelector('body').style.backgroundColor='black';
            document.querySelector('body').style.color ='white';
            document.querySelector('#night_day').value= 'day';

        }else{
            document.querySelector('body').style.backgroundColor='white';
            document.querySelector('body').style.color ='black';
            document.querySelector('#night_day').value= 'night';
        }
    ">

    <p>코딩하는 코린이</p>

 

 

if 라는 조건문과 비교연산자 === 를 사용하였다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


조건문과 비교연산자를 사용하여 토글 기능이 있는 버튼을 구현하였다.

 

 

'JavaScript' 카테고리의 다른 글

JavaScript 함수 (function)  (0) 2020.12.06
리팩토링(refactoring) 이란?  (0) 2020.12.06
JS의 이벤트  (0) 2020.12.06
script 태그  (0) 2020.12.06
JavaScript 란?  (0) 2020.12.06

 

이벤트자바스크립트가 사용자와 상호작용하는 데 핵심적인 역할을 한다.

 


 

 

https://www.w3schools.com/js/js_events.asp

 

JavaScript Events

JavaScript Events HTML events are "things" that happen to HTML elements. When JavaScript is used in HTML pages, JavaScript can "react" on these events. HTML Events An HTML event can be something the browser does, or something a user does. Here are some exa

www.w3schools.com

 

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
    <input type="button" value="hello">
</body>
</html>

버튼을 만들어 보았다.

 

 


alert 이벤트

 

여기서 hello 버튼을 눌렀을 때 경고창이 나타나는 이벤트를 사용하고 싶다.

 

 

경고창은 alert라는 기능을 사용해야한다.

 

 

 

 

 <input type="button" value="hello" onclick="alert('안녕')">

 

버튼을 누르면 안녕 이라는 메세지 창이 나타난다,

 

 

 

 

 


 

HTML 설명서에는 "onclick 속성 값으로 반드시 자바스크립트 코드가 와야합니다" 라고 적혀있다.

 

 

onclick 속성의 값은 웹 브라우저가 기억해 뒀다가, onclick 속성이 위치하고 있는 태그를 사용자가 클릭했을 때 

자바스크립트 코드를 자바스크립트 문법에 따라 해석해서 웹 브라우저가 실행한다.

 

 

그래서 hello 버튼을 클릭했을 때 alert('안녕')라는 코드가 실행 되는 것을 알 수 있다.

 

 

이렇게 웹 브라우저 위에서 일어나는 일들을 사건, 영어로 이벤트 라고 한다.

 

어떤 이벤트가 일어 났을 때 어떠한 자바스크립트 코드를 실행하게 하는 것이 여기서는 onclick  이다.

 

 

웹 브라우저에는 무수히 많은 이벤트가 존재한다.

 

 

https://www.w3schools.com/tags/ref_eventattributes.asp

 

HTML Event Attributes

HTML Event Attributes Global Event Attributes HTML has the ability to let events trigger actions in a browser, like starting a JavaScript when a user clicks on an element. To learn more about programming events, please visit our JavaScript tutorial. Below

www.w3schools.com

 


onchange 이벤트

 

 <input type="text" onchange="alert('changed')">

 

aaa를 입력하고 마우스 커서를 바깥쪽으로 빼면  onchange 이벤트가 발생하여

 

메세지 창이 나타난다.

 

여기서 다시 aaa를 쓰고 마우스 커서를 바깥쪽으로 빼면

 

메세지 창이 나타나지 않는다.  

값이 변경되지 않아 이벤트가 실행 되지 않은 것이다.!!!

 

 

 

 


onkeydown 이벤트

 

 <input type="text" onkeydown="alert('key down')">

 

텍스트 박스에 키보드에 아무 키를 누르면 실행되는 이벤트 이다.

 

 

'JavaScript' 카테고리의 다른 글

JavaScript 함수 (function)  (0) 2020.12.06
리팩토링(refactoring) 이란?  (0) 2020.12.06
조건문 활용- 토글(toggle)  (0) 2020.12.06
script 태그  (0) 2020.12.06
JavaScript 란?  (0) 2020.12.06

<script>

 

 

기본적으로 자바스크립트는 HTML 위에서 동작하는 언어이다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>

 

HTML의 기본 코드이다.

 

 

 

여기서 완전히 다른 문법을 가진 자바스크립트 코드를 넣기 위해서

 

<script> 태그를 사용한다.

 

<h1>JavaScript</h1>
    <script>
         document.write('<h1>hello world</h1>');
    </script>

 

웹 브라우저는 <script> 태그 안의 코드를 자바스크립트 코드로 해석한다.

 

둘 다 h1 태그를 사용하여 문자를 출력했다.

 

여기서는 차이를 느끼지 못하지만,

 

 

 <h1>JavaScript</h1>
    1+1
    <script>
        document.write('<h1>hello world</h1>');
        document.write(1+1);
    </script>

 

 

정적인 HTML 에서는 1+1 이 그대로 출력 되지만

 

동적인 자바스크립트는 1과 1을 더한 값인 2를 출력하게 된다.

'JavaScript' 카테고리의 다른 글

JavaScript 함수 (function)  (0) 2020.12.06
리팩토링(refactoring) 이란?  (0) 2020.12.06
조건문 활용- 토글(toggle)  (0) 2020.12.06
JS의 이벤트  (0) 2020.12.06
JavaScript 란?  (0) 2020.12.06

 

 

웹 페이지는 한 번 화면에 출력되면 자기 자신을 바꾸는 능력이 없습니다. 그것을 가능하게 해주는 것이

자바 스크립트 입니다.

 

 

자바스크립트는 사용자와 상호작용하는 언어입니다. 


 

 

 

 

 

 

night 와 day 라는 버튼이 있다.

 

각 각의 버튼을 클릭 했을 때 그것에 반응해서 웹 페이지를 바꿀 수 있다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>JavaScript 란?</h1>
   
   <input type="button" value="night" onclick="
   		document.querySelector('body').style.backgroundColor='black';
        document.querySelector('body').style.color='white'
    ">
    <input type="button" value="day" onclick="
        document.querySelector('body').style.backgroundColor='white';
        document.querySelector('body').style.color='black'
">

<p> 코딩하는 코린이</p>
</body>
</html>

 

input 의 onclick 이라는 속성의 값으로 자바스크립트 코드를 넣어서 

onclick의 속성이 위치하고 있는 버튼을 클릭했을 때 자바스크립트 코드를 실행하게 된다.

 

 

자바스크립트 코드를 보면

 

대략

document ( 이 문서에서 ) querySelector('body')  <body> 태그를 선택하겠다!

그 다음 <body> 태그에 style 속성 값으로 color= black 를 사용하겠다! 는 뜻이다.

 

 

 


 

 

 

'JavaScript' 카테고리의 다른 글

JavaScript 함수 (function)  (0) 2020.12.06
리팩토링(refactoring) 이란?  (0) 2020.12.06
조건문 활용- 토글(toggle)  (0) 2020.12.06
JS의 이벤트  (0) 2020.12.06
script 태그  (0) 2020.12.06

react 

 

 

npm 이란?

패키지 관리 도구이자 의존성을 관리해준다.

npx를 사용하면 npm보다 좋다. 그 이유는 npx는 최신버전에 해당하는 패키지를 설치하여 실행하고, 실행된 이후에 해당 패키지를 제거한다. npm은 로컬 스토리지에 있는 패키지가 새로운 버전이 나왔을 경우, 이미 존재하는 패키지를 제거하고 다시 설치해야한다는게 가장 큰 문제이다.

npx는 스크립트를 적으면 패키지 설치를 하지 않고 실행을 할 수 있다.

[출처] react 1강 - 설치하기|작성자 getinthere

 

 

 

npx create-react-app my-app
cd my-app
npm start

 

 

 

 

https://reactjs-kr.firebaseapp.com/docs/installation.html#trying-out-react

 

Getting Started – React

A JavaScript library for building user interfaces

reactjs.org

 

 

 


npm

 

Node Package Manager(노드 패키지 매니저)는 자바스크립트 프로그래밍 언어를 위한 패키지 관리자이다.

 

 


 

 

Node.js

2009년 5월 27일 처음 소개된 Node.js는 오픈 소스 JavaScript 엔진인 크롬 V8에 비동기 이벤트 처리 라이브러리인 libuv를 결합한 플랫폼이다. 다시 말해, JavaScript로 브라우저 밖에서 서버를 구축하는 등의 코드를 실행할 수 있게 해주는 런타임 환경이다. Ryan Dahl이 처음 개발했으며, 처음엔 리눅스와 macOS만 지원되었으나 2011년 7월에 Windows 버전도 발표되었다.

2014년 12월 한때 Node.js의 포크인 io.js가 나타나면서 Node.js 0.12 버전, io.js 3.3 버전까지 서로 분열된 모습으로 이어지는 듯 했지만, 2015년 9월에 Node.js 4.0 버전으로 병합되어 현재에 이르렀다.

 

 

'react' 카테고리의 다른 글

리엑트의 이벤트(Event)  (0) 2020.12.07
함수형 컴포넌트 useState 사용  (0) 2020.12.07
state , useState 사용하기  (0) 2020.12.07
클래스형 컴포넌트  (0) 2020.12.07
JSX란?  (0) 2020.12.06

단위 테스트 (Unit Test)

컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차다.

즉, 모든 함수와 메소드에 대한 테스트 케이스를 작성하는 절차를 말한다.

이를 통해서 언제라도 코드 변경으로 인해 문제가 발생할 경우, 단시간 내에 이를 파악하고 바로 잡을 수 있도록 해준다.

이상적으로 , 각 테스트 케이스는 서로 분리되어야 한다. 이를 위해 가짜 객체를 생성 하는 것도 좋은 방법이다.


이점 (왜 작성해야 할까?)

  • 단위 테스트는 개발단계 초기에 문제를 발견하게 도와준다.
  • 단위 테스트는 개발자가 나중에 코드를 리팩토링하거나 라이브러리 업그레이드 등에서 기존 기능이 올바르게 작동하는지 확인할 수 있다. (회귀 테스트)
  • 단위 테스트는 기능에 대한 불확싱성을 감소 시킬 수 있다
  • 단위 테스트는 시스템에 대한 실제 문서를 제공한다. 즉, 단위 테스트 자체가 문서로 사용 할 수 있다

 


프레임워크

 

가장 대중적인 테스트 프레임 워크는 xUnit 으로 개발환경(x)에 따라 Unit 테스트를 도와주는 도구라고 생각하면 된다.

 

xUnit 프레임워크

 

  • JUnit - Java
  • DBUnit - DB
  • CppUnit - C++
  • NUnit -. net

 

 

'프로젝트 > 스프링 부트 웹서비스' 카테고리의 다른 글

의존성 관리  (0) 2020.12.03

IDE (통합 개발 환경)

 

Intellij 

 

이때까지 이클립스만 사용했었는데,

 

이번에 첨으로 인텔리제이를 사용하게 되었다.

 

인텔리제이는 네이버,카카오,라인,쿠팡,우아한형제들 등 많은 IT 서비스 회사에서 사용한다고 하니

 

이번 기회에 익혀두면 좋을 것 같다.

 


의존성 설정

build.gradle

buildscript {
    ext {
        springBootVersion = '2.4.0.RELEASE'
    }
    repositories {

        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.4.0")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'



group 'org.example'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8


repositories {
    mavenCentral()
}

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
    compile('org.springframework.boot:spring-boot-starter-web')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

test {
    useJUnitPlatform()
}

 

  • ext : build.gradle에서 사용하는 전역변수를 설정한다 (springBootVersion 이라는 전역변수 생성)
  • apply plugin : 자바와 스프링 부트를 사용하기 위해 추가해야 한다. 특히 io.spring.dependency-management 플러그인은 스프링 부트의 의존성들을 관리해주는 플러그인이다
  • repositories : 각종 의존성(라이브러리)들을 어떤 원격 저장소에서 받을지 정한다.
  • dependencies : 프로젝트 개발에 필요한 의존성을 선언 하는 곳

'프로젝트 > 스프링 부트 웹서비스' 카테고리의 다른 글

단위 테스트  (0) 2020.12.04

※ JSP 페이지의 주요 기능 중 하나는 데이터를 보여주는 것이다.

   하나의 JSP 페이지에 데이터를 보여주기 위한 자바코드와 단순히 화면을 출력하는 HTML 코드를 함께 작성하면

   기능을 확장하거나 코드를 재사용하는 데 어려움이 있다.  

 

   따라서 프로그램의 효율을 높이기 위해 화면을 출력하는 부분과 데이터를 처리하는 로직 부분을 구분하여 작성하며, 로직 부분의 코드에 자바빈즈라는 클래스를 사용한다.

 

 


자바빈즈

자바빈즈는 동적 콘텐츠 개발을 위해 자바 코드를 사용하여 자바 클래스로 로직을 작성하는 방법이다.

 

JSP 페이지에서 화면을 표현하기 위한 계산식이나 자료의 처리를 담당하는 자바 코드를 따로 분리하여 작성하는 것이다.

 

 

 


 

useBean 액션 태그

 

useBean 액션 태그는 JSP 페이지에서 자바빈즈를 사용하기 위해 실제 자바 클래스를 선언하고 초기화하는 태그다

<jsp:useBean id="user" class="user.User" scope="page"/>
  • id : 자바빈즈를 식별하기 위한 이름
  • class : 패키지 이름을 포함한 자바빈즈 이름 (기본 생성자 있어야하고 , 추상클래스 사용 안됨)
  • scope: 자바빈즈가 저장되는 영역(page, request, session , application 중 하나 사용)

 


 

setProperty 액션 태그

 

setProperty 액션 태그는 useBean 액션 태그와 함께 자바빈즈의 Setter() 메소드에 접근하여

자바빈즈의 멤버 변수인 프로퍼티의 값을 저장하는 태그다.

 <jsp:useBean id="board" class="board.Board" scope="page" />
<jsp:setProperty property="title" name="board"/>
<jsp:setProperty property="content" name="board"/>
<jsp:setProperty property="writer" name="board"/> 
  • name : useBean 태그에 id 속성 값으로 설정된 자바빈즈를 식별하기 위한 이름
  • property : 자바빈즈 프로퍼티 이름, 만약 프로퍼티 이름에'*' 를 사용하면 모든 요청 파라미터가 자바빈즈 프로퍼티의 setter( ) 메소드에 전달됨을 의미한다.
  • value : 변경할 자바빈즈의 프로퍼티 값이다. 
  • param : 자바빈즈의 프로퍼티 값을 전달하는 요청 파라미터의 이름이다. param과 value 동시 사용 불가

위의 코드는 글 등록하는 JSP 파일에서 form 태그로 값을 가져와서 property 에 값을 담았다 = (board 클래스 setter( ))

 

 


활용 

회원 정보 수정 작업 중

 

userUpdateAction.jsp 파일에서

UserDAO dao = new UserDAO();
	int result = dao.update
       (
        userID, 
        request.getParameter("name"),
        request.getParameter("password"),
        request.getParameter("email")
        );
		if(result == -1){
			PrintWriter script = response.getWriter();
			script.println("<script>");
			script.println("alert('회원 수정 실패.')");
			script.println("history.back()");
			script.println("</script>");
		}else{
			PrintWriter script = response.getWriter();
			script.println("<script>");
			script.println("alert('회원 수정 성공')");
			script.println("location.href = 'index.jsp'");
			script.println("</script>");
		}

UserDao update 매개변수에

세션 값으로 설정한 아이디와 함께 form 태그에서 받은 데이터 값을 다 넘겨 주었다.

 

UserDao.java

public int update(String id , String name, String pw, String email) {
		
String sql = "update user set name = ? , password =? , email =? where id =? ";
		

	try {
		pstmt = conn.prepareStatement(sql);
		pstmt.setString(1, name);
		pstmt.setString(2, pw);
		pstmt.setString(3, email);
		pstmt.setString(4, id);
		return pstmt.executeUpdate();
	}catch(Exception e) {
			
		e.printStackTrace();
	}finally {
		try {
		if(pstmt !=null) pstmt.close();
		if(conn !=null) conn.close();
		}catch(Exception e) {
			e.printStackTrace();
			}
		}
		
	return -1;
	}

매개변수로 아이디, 이름 , 비밀번호, 이메일을 받는다.

 

 

코드가 되게 길고 매개변수를 하나 하나 적어줘야 하는 불편함이 있다.

 


자바 빈즈를 사용하면

 

<jsp:useBean id="user" class="user.User" scope="page"/>
<jsp:setProperty property="*" name="user"/>

 

UserDAO dao = new UserDAO();
			
	int result = dao.update(user);
	if(result == -1){
		PrintWriter script = response.getWriter();
		script.println("<script>");
		script.println("alert('회원 수정 실패.')");
		script.println("history.back()");
		script.println("</script>");
	}else{
		PrintWriter script = response.getWriter();
		script.println("<script>");
		script.println("alert('회원 수정 성공')");
		script.println("location.href = 'index.jsp'");
		script.println("</script>");
}

 

매개변수에 user 객체 담아서 보내면

코드가 간결해진다.

 

 

public int update(User user) {
		
String sql = "update user set name = ? , password =? , email =? where id =? ";
		

try {
	pstmt = conn.prepareStatement(sql);
	pstmt.setString(1, user.getName());
	pstmt.setString(2, user.getPassword());
	pstmt.setString(3, user.getEmail());
	pstmt.setString(4, user.getId());
	return pstmt.executeUpdate();
}catch(Exception e) {
			
	e.printStackTrace();
}finally {
	try {
		if(pstmt !=null) pstmt.close();
		if(conn !=null) conn.close();

	}catch(Exception e) {
		e.printStackTrace();
	}
			
}
		return -1;
	}

'프로젝트 > JSP CRUD 게시판' 카테고리의 다른 글

세션(로그인,글 작성/수정/삭제)  (0) 2020.12.02
JSP 내장 객체  (0) 2020.12.01
Eclipse (Emmet 환경설정)  (0) 2020.12.01
게시판 목록 페이징 하기  (0) 2020.11.30
게시판 목록 만들기  (0) 2020.11.30

 

 


세션설정

 

 

 

로그인을 성공 했을 때

sessionID라는 세션 이름과 함게 user.getId()로 로그인 했을 때 사용했던 아이디를 세션 값으로 설정하였다.

 

 

 

user.getId() 

 

값은

 

request.getParameter( ) 대신

 

자바빈즈로 값을 가져왔다.

 

 

 


세션활용

 

설정 했던 세션 이름 sessionID를 가져와서 

String sessionID = null;
if(session.getAttribute("sessionID") != null){
		sessionID = (String) session.getAttribute("sessionID");
	}

 

 

세션 값이 없으면 (로그인을 하지 않았다면)

 

화면에는 로그인, 회원가입 이 보이고

 

세션 값이 null이 아니라면 (로그인을 했다면)

 

로그아웃과 회원 수정 화면이 보이게 설정해두었다.

 

 

  • 메인화면
<h1>메인화면</h1> <br/>
	<% 
	String sessionID = null;
	if(session.getAttribute("sessionID") != null){
			sessionID = (String) session.getAttribute("sessionID");
	}
	
	if(sessionID != null){
		
	
	%>
	<h2 id="sessionID">	<span id="sessionID"><%=sessionID %></span> 님 환영합니다. </h2>
	
	<% 
	}
    %>

 

 


세션 제거

 


		session.invalidate();
	

현재 세션에 저장된 모든 속성을 제거한다.

 

 

로그아웃 버튼을 눌러

<a class="dropdown-item" href="logout.jsp">로그아웃</a> 

 

logout.jsp 에 파일에 위해 세션 제거 코드를 넣고

 

<script>
			location.href= "index.jsp";
		</script>

페이지 이동을 하면 된다.

 

회원 탈퇴도 마찬가지다!!!!

'프로젝트 > JSP CRUD 게시판' 카테고리의 다른 글

자바빈즈 (useBean , setProperty)  (0) 2020.12.02
JSP 내장 객체  (0) 2020.12.01
Eclipse (Emmet 환경설정)  (0) 2020.12.01
게시판 목록 페이징 하기  (0) 2020.11.30
게시판 목록 만들기  (0) 2020.11.30

+ Recent posts