분류 전체보기

Web/게시판 만들기

[JSP] 게시판 만들기 07 - 글 삭제 구현

글 삭제 구현 지금까지 만든 게시판은 보안 요소가 전혀 없는 게시판이었습니다. 그래서 글 삭제 부분도 보안 요소는 없습니다(?) 글 삭제는 DELETE 쿼리만 실행하면 되기 때문에 엄청나게 간단합니다. Controller case "/deleteOk.do": command = new DeleteCommand(); command.execute(request, response); viewPage = "deleteOk.jsp"; break; } 삭제 기능은 write나 update 같은 입력 폼이 필요하지 않으므로 deleteOk.do 만 사용합니다. DeleteCommand package com.command; import java.sql.SQLException; import javax.servlet.htt..

Daily/TIL

[TIL] 2022.01.19 - JS DOM 예제

왜 나만 졸려하는걸까.. 나도 뭘 마셔야되나.. JavaScript (JS) DOM (Document Object Model) 예제 예제 1 - 버튼 클릭으로 style 바꾸기 스타일 DOM으로 변경 스타일 변경 하기 const style에 div.style을 저장하고, const color에 style.color를 저장하였는데 이렇게 하지 않고 그냥 div.style.color로 하여도 되긴하다. 위 방법처럼 button에 바로 onclick을 주어도 되고, 이벤트 리스너를 추가해도 된다. 스타일 DOM으로 변경 스타일 변경 하기 button 클릭 시 EventListener가 동작한다. 위 코드와는 다르게 button에 onclick을 주지 않았다. 예제 2 - className 값 1 값 2 값 3..

Daily/TIL

[TIL] 2022.01.18 - JavaScript

JavaScript (JS) Closer (클로저) 지역 변수를 외부에서도 참조(By Reference)할 수 있는 함수 함수 중첩을 이용해 함수 호출이 종료되더라도 그 함수의 지역 변수 및 지역 변수 체인 관계를 유지할 수 있는 구조를 갖는다. 내부에 선언된 함수 객체가 반환되어 계속 유지되는 상태 -> 그 함수 객체에 딸린 [[scope]]에서도 참조를 계속 유지하는 상태 부모 함수가 종료된 후에도 부모 함수의 Variable(Activation) Object는 가비지 콜렉팅 되지 않고 유지된다. 간단하게 생각하면 자바의 캡슐화와 유사하다고 생각하면 된다. 밖에서 사용하지 못하도록 감추는 것이다. function func() { var x = 1; return { increase : function(..

Programing Language/JavaScript

[JavaScript] 호이스팅 (Hoisting) 예제

호이스팅(Hoisting) 스코프 안에 있는 선언들을 모두 스코프의 최상위로 끌어올리는 것이다. 선언문들을 미리 실행하는 것이라 생각하면 된다. 실제 메모리에서는 변화가 없다. var 키워드나 함수 선언문 같은 경우는 코드 실행 전 자바스크립트 내부에서 미리 변수를 선언하고 undefined로 초기화를 해놓는다. let 키워드, const 키워드와 함수 표현식도 호이스팅이 발생하긴 하나 변수를 선언만 해놓을 뿐 초기화하지 않는다. 초기화는 변수 선언문을 만났을 때 수행한다. 이때 선언과 초기화 사이에 일시적으로 변수 값을 참조할 수 없는 구간을 Temporal Dead Zone(TDZ)이라 한다. 예제 1 console.log(typeof(funcHello)); console.log(typeof(func..

Daily/TIL

[TIL] 2022.01.17 - JavaScript

JavaScript 비교 연산자 script 언어는 equals()가 없고 연산자로만 표현한다. == 는 기존 equals()와 동일하다. ===와 !==는 타입까지 비교할 때 사용한다. 특수 연산자 delete 객체(Object), 개체의 속성(Property), 배열의 특정 인덱스에 있는 원소를 지우는 연산자이다. var 키워드로 선언된 변수는 삭제할 수 없다. delete가 실행 가능하면, 속성이나 원소가 undefined로 설정된다. 이때 배열의 길이에는 변화가 없다. 실행이 가능하면 true를 반환하고, 실행이 불가능하면 false를 반환한다. 정의할 필요 없이 한 번 쓰고 버리는 변수나 함수 같은 경우 delete 연산자 사용 시 메모리 관리에 효율적이다. in 저장된 객체에 해당되는 속성이 ..

Web/게시판 만들기

[JSP] 게시판 만들기 06 - 글 수정 구현

글 수정 구현 하나둘씩 기능을 만들어갈수록 새로 구현하는 기능들이 처음부터 끝까지 다 다른 내용이 아니라, 기존에 구현한 내용들과 어느 정도 유사성을 가진다는 것을 알 수 있습니다. 어떻게 보면 수정 시 필요한 jsp 파일들은 view.jsp와 write.jsp, writeOk.jsp를 섞어놓은 것이라고 볼 수 있습니다. BookController case "/update.do": command = new SelectCommand(); command.execute(request, response); viewPage = "update.jsp"; break; case "/updateOk.do": command = new UpdateCommand(); command.execute(request, respons..

Daily/TIL

[TIL] 2022.01.14 - JavaScript 변수 및 자료형

JavaScript (JS) ECMAScript 브라우저에서 사용되는 JS 같은 것들은 모두 ECMAScript를 토대로 한다. 옛날 JS는 브라우저마다 함수와 기능이 달랐었다. 그래서 ECMAScript 명세에 맞추어 만들기로 하였고, 이게 표준이 되었다. use strict 모드 자바스크립트의 장점은 자유롭다는 거지만 이게 단점으로 적용하여 디버깅하기가 힘들 수 있다. use strict 모드를 사용하면 문법 검사를 브라우저 자체에서 타이트하게 해 준다. JavaScript 자료형 Boolean 타입 논리 요소를 나타낸다. true와 false 두 가지 값이 존재한다. Null 타입 null 하나의 값만을 가질 수 있다. Undefined 타입 값을 할당하지 않은 변수가 가지는 타입이다. Null 타..

Web/게시판 만들기

[JSP] 게시판 만들기 05 - 글 읽기와 조회수 증가 구현

글 읽기와 조회수 증가 구현 list.do에 있는 목록 중 하나를 클릭 시 해당 글을 상세 보기 하는 기능을 만듭니다. 이때 글을 클릭해서 볼 때마다 조회수도 1 증가시킵니다. 조회수 증가라함은 거창하게 보일 수도 있지만 사실 UPDATE문 하나만 사용하면 됩니다. 😏 view를 위한 SELECT문과 조회수 증가를 위한 UPDATE 문 각각 한 개씩 필요하게 됩니다. Controller case "/view.do": command = new ViewCommand(); command.execute(request, response); viewPage = "view.jsp"; break; ViewCommand package com.command; import java.sql.SQLException; impor..

Programing Language/Java

PreparedStatement - Connection.prepareStatement()

공식 문서 참조 https://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html PreparedStatement (Java Platform SE 7 ) Sets the designated parameter to SQL NULL. This version of the method setNull should be used for user-defined types and REF type parameters. Examples of user-defined types include: STRUCT, DISTINCT, JAVA_OBJECT, and named array types. Note: To be portable, docs.oracle.com 데이..

Daily/TIL

[TIL] 2022.01.12 - CSS

CSS margin 겹침 (통합) 현상 (margin-collapsing) 두 개 이상의 margin 값이 세로 방향으로 만났을 때 하나의 margin으로 합쳐지는 현상이다. 이런 게 있는지 이번에 처음 알았는데 그동안 디자인할 때 왜 그렇게 margin이 안 맞았는지 이제야 알았🤣🤬 div가 위 아래로 위치해있다 가정하고, 위 div의 margin-bottom이 20px이고, 아래 div의 margin-top이 30px 일 때 두 개가 만나면 bottom, top이 합쳐진 50px가 아닌 둘 중 큰 값인 30px가 된다. line-height 폰트는 그대로 있고 폰트 위 아래의 행간이 넓어진다. background color | image | repeat | position | attachment | ..

Daily/TIL

[TIL] 2022.01.11 (YIL) - HTML 태그 정리 및 CSS 정리

2개월 동안 HTML부터 Spring까지 다시 복습하는 시간을 가져본다 ! 근데 어제는 정리를 안 했기 때문에 TIL가 아닌 YIL (Yesterday I Learned) HTML XML 구조 언어로 인터넷에서 기존에 사용하던 HTML의 한계를 극복하고 SGML(Standard Generalized Markup Language)의 복잡함을 해결하기 위해 만들어졌다. !DOCTYPE (문서형 선언 DTD) 문서형 선언 Document Type Definition 줄여서 DTD이다. (오 한글로 치면 ㅇㅅㅇ) !DOCTYPE을 사용해 브라우저가 현재 HTML5 또는 HTML4 또는 XHTML로 작업할 거라는 걸 알려준다. 브라우저가 해당 문서는 웹 버전이라는 것을 인식시키게 하므로 필수적으로 넣어야 한다. ..

Web/HTML & CSS

[HTML] <br>과 <br/>의 차이

과 의 차이 / 하나의 차이는 구조언어의 차이로 인해 발생한 것이다. W3C에서는 HTML4를 만들고 이후 HTML 4.01을 만든 뒤 HTML5가 아닌 XHTML 1.0을 만들었다. 이때 XHTML 1.0은 HTML 4.01을 XHTML로 다시 규정한 것이다. HTML4에서는 br 태그를 로 사용하였지만 XHTML은 로 사용한다. img 태그와 input 태그도 마찬가지이다. 따라서 과 의 차이는 어떤 구조 언어에서 사용되냐의 차이가 있을 뿐 의미와 기능은 동일하다. HTML4에서는 무조건 로 사용하여야 하지만 XHTML에서는 무조건 로 사용하여야 한다. HTML5는 두 가지 모두 사용 가능하다.

밈아
'분류 전체보기' 카테고리의 글 목록 (10 Page)