10/16

지난주 금요일에는 귀찮아서 블로그 정리를 못했다.

오늘도 sql 문 에 대해 배웠다.

 

aggregate-function : (집계함수,  집합함수,  그룹함수)

MAX, MIN, COUNT, SUM, AVG

 

MAX : 최대값

집계함수는 같은 ROW의 데이터를 불러오지 않는 다 그러므로 아래와 같이 

최대가격과 그것의 품명을 조회 하려 할때 서로 다른 ROW의 데이터를 불러오게 된다 .

같은 ROW의 데이터를 불러오고 싶으면 

서브쿼리를 사용하여 불러올 수 있다.

 

MIN : 최솟값

최댓값과 마찬가지로 사용 할 수 있다.

 

COUNT : 갯수

사용방법은 MIN,MAX 와 같다. 해당 COLUMN 의 데이터 수량을 세어준다 

NULL은 포함하지 않는다.

NULL 을 포함하여 조회 하고 싶다면  IFNULL을 이용하면 된다.

 

AVG: 평균

NULL은 포함하지 않고 평균을낸다.

 

 

GROUP BY : 그룹함수 사용 시 그룹함수의 범위(그룹) 지정

해당 컬럼의 데이터 명 끼리 묶어 집합시킨다.

제품의 카테고리 ID별 최고값을 조회하는것

 

 

HAVING : 그룹함수 연산결과를 조건으로 줄 수 있는 키워드

GROUP BY 사용 후 WHERE 를 사용 하여 범위를 지정할 수 없다.

그룹함수 사용 후 범위결과를 주고 싶으면 HAVING을 쓰면 된다.

 

 

ALTER TABLE : 테이블 수정

컬럼 추가, 변경, 삭제(삭제는 잘 안함)
제약 사항 변경 ( NOT NULL, UNIQUE, PRIMARY KEY, DEFAULT, FOREIGN KEY )

 

10/12

오늘은 어제에이어서 null체크 그리고 unique 기본값인 default 각 테이블 의 컬럼타입과 제약사항을 확인 할 수 있는 

DESC 유효범위 체크를 하는 CHECK, SQL테이블의 정규화 하는 과정과 그 과정에 서 PRIMARYKEY가 필요한것 
PRIMARYKEY 외래키 를 이용하여 연결 방법 , 몇개가 연결 되어있는지에 따른 방법 JOIN을 사용 하여 2개 이상의 
테이블을 조합 하여 원하는 값을 조회 할 수 있는것을 배웠다. 

 

DESC(DESCRIBE) 제약사항 확인 명령어

조회해보면 UNI 와 PRI 가 있는데 UNI는 UNIQUE / PRI는 NOT NULL과 UNIQUE를 같이 사용할때 KEY 에 보인다.

 

CHECK (유효범위 체크) 명령어

체크 명령어를 사용 하면 지정한 범위 안의 데이터 값만 들어갈 수 있고 체크한 범위를 확인 하고 싶으면 
SHOW 명령어를 사용하여 TABLE 을 확인하면 볼 수 있다.

 

PRIMARY KEY (주키, 기본키, PK) 

정규화를 시키려면 값이 중복되지 않은 유일한 값이고 테이블에 종속되어 변할 위험도 없으면서 수정될 일이 없는 것을 
주키 또는 PRIMARY KEY라고 한다 이것을 생성해야 정규화를 시킬수 있다. 

PRIMARY KEY 생성법은 다음과 같다.

PRIMARY KEY를 갖는 테이블을 생성하고 값을 넣은후 조회해보면

잘 들어 가있는것을 볼 수 있다 그리고 ID 컬럼이 PRIMARY KEY 화 된것도 볼 수 있다
그런데 PRIMERY KEY 는 우리가 일일히 생성 해줄 필요가 없기 때문에 

뒤에 AUTO_INCREMENT 를 써서 자동으로 1개 씩 늘어날 수 있도록 해주자.

조회해보면 

우리가 ID의 번호를 넣지 않았어도 자동으로 잘 들어간 것을 볼 수 있다.

※ PRIMARY KEY 는 꼭 하나만 올 필요 없이 여러개 와도 괜찮다 하지만 가능하면 한 테이블당 
PRIMARY KEY는 하나씩만 사용하도록 하자 

 

NOMALIZATION (정규화) 

정규화의 조건으로는 3가지의 NF 를 만족해야 한다.

  • 첫번째 정규화 (FIRST NORMAL FORM) 1NF
    • 원자적 데이터를 가진 테이블, PK(주키) 컬럼이 있어야 한다
  • 두번째 정규화 (SECOND NORMAL FORM) 2NF
    • 1NF를 출족하고, 부분적 함수 의존이 없어야 한다.
    • 부분적 함수 의존 (partial funtional dependency)
      • 키가 아닌 컬럼의 값이 키 컬럼 일부에 종속되지 않아야 한다.
      • 키의 일부가 변경되면 키가 아닌 컬럼이 변경되어야 하며 부분적 함수 의존이 생긴다.
  • 세번째 정규화 (THIRD NORMAL FORM) 3NF
    • 2NF 까지 충족하고, 이행적 종속이 없어야 한다.
    • 이행적 종속 (transitive dependency)
      • 키가 아닌 컬럼이 키가 아닌 다른 컬럼에 의존
      • 키가 아닌 컬럼이 변경되면 다른 키가 아닌 컬림이 변경 되어야 할 때

person 과 school 2개의 테이블을 생성 하는데 person 에서 들어갈 학교의 이름과 학교의 주소가 종속관계에 있어
내보내어 따로 테이블 을 생성 하였고 person에 제약사항(REFERENCES)를 만들어 school의 외래키를 받아왔다.

각 테이블에 알맞게 데이터를 넣으면 (※ 이때 제약사항을 건 테이블 부터 생성 해야 한다.)

person 테이블이 school의 id 를 잘 받아 오는것을 볼 수 있다.

다이어 그램을 보면 

이런식으로 연결되어 있다.

 

CARDINALITY (중복도)  관계도??

테이블 연결된 관계에서는 3가지가 있다.

  • 1 : N
    • 제일 많이쓰는 쓰는 상태
  •  1 : 1
    • 민감한 정보를 따로 관리 하고 싶을때 사용 한다.
  • N : M
    • 다대 다 형태로 바로 연결은 불가능 하고 [ 1 : N + 1 : M ] 이런식으로 하나의 테이블 을 중간에 넣어 
      다대 다를 연결해준다.

이런식으로 말이다.

 

JOIN (합치기)

두개의 테이블 을 결합하는것

JOIN DMS ,(컴마)와 같은 식으로 사용 된다.

JOIN한 테이블 들을 조회 하면 ROW의 갯수가 각각의 테이블 ROW 수를 곱한수 만큼 나온다.

 

JOIN을 활용한 예 

오늘은 여기까지 배웠다.

10/11

오늘은 sql 의 update, null, create-schema, create-table, data-type 에 대해 배웠다.

 

UPDATE(수정) 명령어

update는 원하는 데이터 의 컬럼 값을 변경 하는 명령어다 단 주의 할 것은 찾는 것을 지정 해주지 않으면
한 테이블의 모든 컬럼들이 변경한 값으로 저장되어 버리는 참사가 일어날 수도 있다.

인텔리제이에서는 방지해주긴 한다.

업데이트 사용 방법 ▲

update 를 우선 써주고 수정 하고자 하는 테이블의 이름 그 다음줄 에는 

set 을 넣어 컬럼 = 수정데이터 값 , 을 넣어 변경 그 다음줄은 

where 를 넣어 수정할 타겟을 지정해주고 변경해주도록 한다.

수정한 값들이 잘 들어간 것을 볼 수 있다.

 

 

NULL(빈 값) 에 관하여

null 은 0과 다르고 데이터가 없는 상태인 false 인 상태이다. 그러므로 비교연산이나 산술연산 시일반적으로 null을
불러와서 조회 할 수가 없다.

 

알아두기 

  • 0과 null은 다르다
  • 빈 String 과 null은 다르다
  • 가능하면 null이 들어가야할 경우에는 빈 String 이라도 넣어두자 null을 넣으면 어려워진다.

null 조회하기 -> (IS NULL)

NULL인 데이터가 조회되는것을 볼 수 있다.

null 에 조회 할 때만 데이터를 변경하여 조회하기->
(IFNULL(변경할 컬럼명, 컬럼타입에 맞는 데이터 값))

조회 할때에 null인 상태이면 이상하니깐 빈 값이라도 넣어 조회하고플 때에 사용

 

 

CREATE-SCHEMA 명령어

schema 는 database 와 같은 말이다

두개의 DB(schema) 가 생성 되었다.

 

schema 옮기기 (USE) 사용

 

schema 지우기 (DROP) 사용

schema 를 지우는것은 신중히 사용 하도록 하자.

mydb2 만 지웠고 사라진것을 볼 수 있다.

 

 

CREATE-TABLE명령어

테이블생성은 스키마와 동일하게 테이블 명을 작성 해주고 소괄호를 친다음 그안에 컬럼명과
컬럼타입을 넣어주는 식으로 생성 해 줄 수 있다.

이런식으로 ▲

 

-- 테이블명, 컬럼명 작성 관습
-- lower_snake_case (*) 여러 관습이 있지만 이걸로 사용할 예정
-- UPPER_SNAKE_CASE
-- UpperCamelCase
-- lowerCamelCase

 

테이블을 생성해주고 컬럼 명과 컬럼 타입을 지정해줘서 생성 

각 컬럼에 데이터를 넣어주면

테이블도 잘 생성 되었고 컬럼도 잘 생성 되었으면 각 컬럼에 데이터들도 잘 들어간 
것을 볼 수 있다.

 

 

데이터의 타입 (테이블 생성시 컬럼의)

mariaDB 에서는 데이터의 타입을 크게 4가지 로 나누고 있다

  • 수형 (정수, 실수)
  • 문자열
  • 날짜 (날짜시간)
  • 그외 나머지들

 

(수형)정수 : int 타입의 데이터

sql 에서 int 타입은 작은 따옴표로 감싸져 있더라도 숫자의 형태만 유지한다면 잘 들어간다 

 

 

(수형)실수 : DEC(IMAL) 타입의 데이터

실수 타입에서 주의 할 것은 태이블 생성시 실수 컬럼에 범위 제한을 안 주면 정수 타입으로 반환을 하게 된다.

---------------------------------------------------------------------------

 

그래서 테이블 생성시 DEC에 소괄호를 친후 범위를 지정해주고 데이터를 입력해주면

잘 들어가 있는것을 볼 수 있다.

 

 

문자열 : VARCHAR 타입의 데이터

문자열은 VARCHAR 뒤에 소괄호를 써서 들어갈 텍스트의 길이를 제한 해주면 된다.

조회 해보면

입력한 컬럼에 잘 들어가 있는것을 볼 수 있다.

 

날짜 :  DATE(YYYY-MM-DD)타입의 데이터

날짜 타입에 맞게 데이터를 넣어주면 

잘 들어가 있는 것을 볼 수 있다.

 

날짜, 시간 :  DATETIME(YYYY-MM-DD HH:MM:SS)타입의 데이터

잘 들어가 있는 것을 볼 수 있다.

 

추가로 ※ 현재날짜를 넣을때는 NOW() 를 활용 하면 된다 

활용 예 ▼

23년 10월 11일 5시 35분에 넣은 데이터

잘 들어가 있다. 

10/10

오늘은 like, insert, delete 명령어에 대해 배웠다.

LIKE(해당문자를 포함한) 명령어

※ (%)퍼센트 ->  0개 이상의 아무 문자를 나타내고 ,

※ ( _ )언더바 -> 1개의 아무 문자 를 나타낸다.

LIKE명령어는 where절 컬럼 명 뒤에 사용 되고 (퍼센트, 언더바)와 조합하여 찾고자하는 글자를 조합하여
사용 하면 된다.

 

위의 코드는 ch의 앞뒤로 비어있던 어떤 문자가 오던 상관 없이 customerName 컬에 ch 만 포함하고
있다면 찾아오는 명령문이다. 

 

LIKE를 사용할때에 대소문자 구분없이 다 찾아오게 된다.

 

앞에 어떤 문자가 오든 er로 끝나는 customerName 컬럼 을 조회하는 명령문.

 

언더바 ( _ ) 를 사용하여 컬럼에서 원하는 갯수만큼의 글자를 갖은 것도 조회가 가능하다.

 

 

INSERT (SQL에 데이터 집어 넣기) 명령어

insert의 사용 방법은 

문장 첫 시작부터 바로 INSERT INTO를 입력하고 집어 넣고자 하는 테이블 명을 입력후 소괄호 안에 입력을원하는 컬럼들
을 입력한 후 VALUES를 입력 insert into 에 입력한 컬럼명에 맞게 그리고 데이터 타입에 맞출수 있도록 하여 값을 
입력하면 된다.

---------

insert 명령어 실행 후

테이블 명을 조회 

insert 한 명령어가 잘 들어가 있는것을 볼 수 있다.

 

---------

---------

모든 컬럼의 데이터를 입력하려 할 때에는 컬럼 나열을 생락 가능하다.

---------

---------

id 값에 번호를 안 넣거나, 하나의 데이터에만 값을 넣어도 

데이터가 잘 들어간다 단 제일 큰 id 이후 순으로 순서가 들어가는것 같다. 

 

DELETE(SQL에 데이터 삭제하기) 명령어

delete의 사용방법은 insert 처럼 바로 DELETE 후 FROM 그리고 원하는 테이블 명을 입력 WHERE를 사용후 삭제하고픈 
컬럼의 데이터를 골라 지우면 된다. 테이블 명을 통째로 지울 수도 있지만 인텔리제이에서 막는다.

그리고 삭제를 하기전 우선 삭제하고자 하는 데이터가 맞는지 먼저 조회 후 삭제하도록 하자.

---------

삭제하고자 하는 데이터를 먼저 조회하고 

그 데이터가 맞다면 삭제 명령어 실행 후 조회하면 없어진 것을 볼 수 있다.

 

---------

---------

 범위를 지정 하여 삭제도 가능하다.

기존에 있던 ID가 9 까지 라서 10부터 조회하면 아까 지워진 손을 제외하고 조회 되게 된다.

조회 후 삭제 명령어를 실행시킨다음 다시 조회 해보면 

지워진것을 확인 할 수 있다.

10/6

오늘도 어제에 이어 sql문 에 대해 배웠고 배운것을 활용하여 spring과 jsp를 이용 하여 표현해보았다.

 

arithmetic(산술) 명령어

mariaDB sql문에서도 산술연산이 가능하여 사용 가능하다

-----

price 에 +1 한것만 출력한 결

-----

-----

가격을 2배한 결과 

-----

 

CONCAT 명령어

mariaDB sql 에서는 문자 연결을 CONCAT이라는 내장함수를 이용하여 사용한다.

모든 제품명 뒤에 1이 붙은것을 볼 수 있다.

 

ADDDATE 명령어

mariaDB sql 에서는 날짜를 더하거나 뺄때 그형식 그대로를 유지하고 싶으면 ADDDATE 를 이용한다.

기존 12-08 에서 12-09 로 늘어난 것을 볼 수 있다.

 

ALISAS(별명, 별칭) 명령어

alisas는 컬럼(테이블)의 이름을 바꿔준다

변경한 이름으로 바뀌어 테이블이 조회된다.

AS를 안붙이고 작성해도 변경이 가능하다.

 

띄어쓰기나 키워드를 넣고 싶다면 백틱(` `)을 사용하여 넣을 수 있다.

 

카테고리 이름 변경하여서 사용가능 하다 join은 아직 안배웠지만 예를 들기 위해 사용

 

 

ORDER BY (정렬) 명령어

테이블 명을 입력하면 테이블 명으로 자동 오름차순 으로 정렬한다.

 

원하는 테이블의 번호를 안다면 몇번째 테이블인지 숫자를 입력하여도 가능하다.

 

ORDER BY에 두개의 테이블을 넣으면 앞에것을 기준으로 먼저 정렬하고 뒤에것으로 도 정렬해준다.

 

ORDER BY 에 원하는 테이블 명을 작성한 후 그 뒤에 DESC를 입력하면 내림차순으로 정렬해준다.

 

 

LIMIT (조회) 행 제한 명령어

limit 를 사용 하면 조회하는 row의 수를 제한한다 위의 코드에서는 나이 많은 순으로 2명만 조회 하는것이다.

 

 

limit 에 숫자를 2개 쓴 경우는 1번째 자리는 인덱스 0부터 이고 2번째 자리는 조회해줄 row의 수3개를 나타낸다.

limit 의 첫 번째 자리를 1 로 바꾸니 원래 2,3, 에 있던 사람들이 위로 올라온것을 볼 수 있다.

 

COUNT 명령어

count 명령어는 from 의 해당 row의 갯수를 조회 해주는 명령어이다.

 


배운것 spring으로 응용하여 jsp에 출력 하기

1) concat을 사용하여 성과 이름을 합치고 as를 사용하여 테이블 이름 변경 하기

jsp는 안만들고 콘솔 창에 보이출력되게만 controller를 작성하였음

 

10/5

 

Not 명령어

mariaDB 에서 not 명령어를 사용하게 되면 조건이 true가 아닌것을 보여준다.

where 뒤에 붙여서 사용 한다.

 

And Or 명령어

And 는 조건이 모두 true일 경우 에 표시

Or 는 조건중 하나라도 true 일 경우 표시

And 와 Or 연산자 중 And가 선 순위 연산자 이다.

 

Between 명령어

Between은And를 사이에 두고 양쪽으로 두 조건을 입력한다.

Between은 이상이하 로 비교하고 초과 미만은 And나 Or에서 등호를 뺀,
비교 연산자로 밖에 표현 할 수 밖에 없다. 

Between과 And 는 같이 사용한다.

 

In명령어

In 은 하나라도 갖고 있으면 출력 해준다 

or의 간단한 버젼이라고 이해해도 좋을꺼 같다.

 

 

※ 주의 연산자 중에서 ( ) 괄호를 칠 경우 우선순위 설정 하게 된다.

 

배운것 spring으로 응용하여 jsp에 출력 하기

1) 소비자 ID별 조회

conroller
jsp
html화면

/main19/sub10번 창에 고객의 id 번호를 입력하는 창을 표시하고

번호를 입력하면 /main19/sub11로 포워딩 하는 명령어 작성

 

controller

sub10에서 받은 id 값을 cid로 저장하여 sql문 where 절 뒤에 customerID와 맞는 고객 정보를 불러
올 수 있게 함 

반환 을 sub6페이지 타입으로 하여 보냄

html 화면

입력한 고객id 의 정보를 출력 하고 sub6타입을 받아 sub11 로 포워딩 함

 

 

2) 국가별 공급자 조회 (오늘 가장 코드가 길었던것)

2번 예제는 html에서 버튼을 클릭할때마다 파람의 갯수가 늘어나는 조건을 달았다.

main20 sub10 controller

sub10에서 중복되는 나라 이름을 제거하고 값을 전달 하기 위해 distinct를 사용하였고,

main20 sub10 jsp

sub10 controller에서 model에 저장한 countryList를 표시할 수 있게 코드 작성 하고 js로 중복 선택 가능하게 코드 작성

조회 버튼을 누르면 main20/sub11로 포워딩 시킨다.

main20 sub10 의 html

조회 버튼 옆 + 버튼을 누를때마다 아래에 국가 선택 창이 늘어난다.

 

 

main20 sub11 controller

url에 뒤에 올 파람의 갯수가 우리가 누르는 국가의 갯수 만큼 늘어날 예정이라 qustion이라는 변수에 ?,
의 갯수를 저장시키고 sql뒤에 붙여준다. 
그리고 나서 model에 정보들을 저장 한 후 jsp에 값을 던져준다.

 

main20 sub11 의 jsp

controller 에서 전달해준 model을 잘 사용 하면

main20 sub11 의 html

+를 누른 만큼 url에 param이 생기고 jsp를 만들어준 대로 잘 표현이 되었다.

 

 

 

 

 

preparedstatement -> 정적sql 을 미리 컴파일 하여 사용할 목적

 

오늘은 오랜만에 js를 사용하게 되어서 당황스러웠고, 단순하게 sql을 조회 할때는 쉬운줄 알았는데
sql문을 응용하여 실제로 사용하려 하니 생각한대로 되질 않아 좀 화가나기도 했지만 그래도 재미
있는 하루 였다. 내일도 이어서 계속 sql 에 대해 배울꺼 같다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10/4

데이타 베이스 -> 자료를 영구하게 저장하거나 삭제하는

 

서버가 데이터 베이스에 어떻한 언어(language)로 명령을 한다 -> 이 명령어를 structured query language라고 한다.

 

우리가 배우는 db는 관계형db이다. (rdbms) ->  우리가 저장하는db는 테이블형시으로 저장한다.

위키 이미지

생성 일기 수정 삭제 -> (crud) sql을 이용하여 crud를 할 예정 이다.

w3schools에서 자주 찾아보자.

 

schema, database -> 테이블의 상위 개

 

 

select는 컬럼을 거르는것이고

 

where는 레코드를 선택(솎아낸다.)

 

JDBC (java datavase connectivity) 서버와 디비가 서로 다른 컴퓨터에서 작동하기 때문에 연결 을 시켜줘야 한다,

(이것이 자바다 20 장 에 나와있다.)

jdbc 를 쓰는일이 많지 않다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9/26

session cookie

session 은 서버가 갖고 있는(저장한) 객체

cookie 서버와 유저의 컴퓨터가 주고 받는것이 쿠키

 

input 요소들

1. text

String type으로 데이터를 받아 들인다.

 

2. password

글자를 입력할때 안보이게 해준다. 

 

3. date

년 월 일 을 받아온다.

4. button

버튼 타입을 보여주고 value를 설정해주지 않으면 빈칸 버튼이 생성 된다.

 

5. number

number는 Intger타입 값만 들어간다.

 

6. submit

submit 은 action attribute경로로 이동하게 되고 button과 같은 기능을 한다.

value 값을 안주면 제출이라고 나오고

value 에 값을 주면 넣어준 값이 버튼 위에 표시된다.

 

7. radio

라디오는 같은 name을 갖고 있는것들중 하나만 선택 하는 기능이다.

 

다중 선택은 불가능 하다.

 

8. checkbox

체크 박스도 라디오와 같이 같은 name을 갖고 있어야 하지만 다중 선택이 가능하다.

9. hidden

웹페이지에 보이지 않게 한다 하지만 응답 페이지에는 코드가 보인다.

10. datetime-local

date처럼 년 월 일 을 갖고오고 추가로 시간 까지 갖고 온다.

 

 

 

 

※ input의 submit 과 button 태그의 차이점은 

하는일은 갖지만 input태그는 종료태그가 없고 button태그는 종료 태그가 있어서 태그
사이에 컨텐츠를 넣을 수 있다.

 

 

 

※ jsp 의 input 타입을 Controller에서 받을 때 

String 타입으로 모든것을 받을 수 있지만 상식선에서 타입을 맞춰 받도록 하자

number처럼 숫자를 받는것을 명시적으로 알거나 checkbox처럼 배열 타입으로 값을
갖고 올때는 Intger나 List 같은 것을 쓰자


form의 label 태그

라벨태그은 input태그와 주로 같이 사용된다 input태그에 들어갈 주제를 작성해준다

input의 id 와 label의 for를 같은이름으로 주면 웹페이지 상에서 라벨을 클릭해도 인풋이 클릭이 된다.

인풋과 라벨은 짝꿍으로 다닌다

 

 


form 의 textarea 태그

textarea태그는 여러 줄 을 입력 받는 태그입니다.


form 의 select태그와 option 태그

select 태그는 input태그의  radio와 checkbox와 비슷하다 option태그는 선택하고싶은 조건을 
제시하고 select는 옵션중에 선택 해주면 됩니다.

9/25일

어제는 여러번 반복시키기 위해 forEach 태그를 사용하였고 오늘 은 if태그를 이용해 원하는 내용을 출력하는것을 배울
예정이다.

 

$ { } : EL (Expression Language)

EL에서는 스트링타입의 숫자도 숫자로 인식한여 계산한다.

EL에서 나누기를 하면 나눈 값이 나오는것이 아니라 소숫점으로 나온다.

EL에서는 div 라는 명령어로 나누기를 할 수 있다.

 

EL 에서 사용할 수 있는 산술 연산자

< +, - , *, /, % >

  • 더하기 ( + )

 

  • 빼기  ( - )

 

  • 곱하기 ( * )

  • 나누기 ( /, div )

주의 ) 나누기는 자바에서는 정수 몫 값만 나오지만 jstl에서는 소숫점 까지 계속 나온다.

 

  • 나머지 연산 ( %, mod )

 

  • 연산 우선순위 부여 (  )

 

EL에서 사용하는 비교연산자

< <, >, <=, >=, ==, != >

< lt, gt, le, ge, eq, ne >

 

  • < ( lt )

 

  • > ( gt )

 

  • <= ( le )

 

  • >= ( ge )

 

  • == ( eq )

 

  • != ( ne )

 

EL에서 사용하는 논리 연산자

< && ( and ) , || ( or ), ! ( not ) >

  • && ( and )

 

  • || ( or )

 

  • ! ( not )

 

EL에서 사용하는 Empty 연산자

empty : null, 빈 문자열, 값이 없거나, 사이즈가 0 인  colection 이면 true 를 내보낸다.

 

controller 에서 설정한 값 ▼

  • empty 사용 ▼

EL 의 implicit object 중 param

jsp 에 사용되는 jsp el 에는 몇가직 내장 객체 들이 있는데 그중 param 에 대해 배웠다.

url의 query 부분을 map의 형식으로 저장 해주는것이 param 이라고 한다 

아래에 예를 들어 보겠다.

주소창에 위와 같이  query 부분에 값을 입력하면 

위와 같이 param.원하는값의 이름 을 입력하여

param에 저장되어 원하는 query name의 값을 불러올 수 있다.

 

JSTL에 form에 버튼을 눌러 param 여러개 넣기 ( form요소 )

인풋태그를 생성하고 싶은 param만큼 넣고 파람의 이름을 지정해준다.

input안에 원하는것을 입력하고 전송을 누르면

 

주소창의 query 부분에 우리가 입력한 파람의 이름과 원하는 값이 query 에 들어간다.

 

 

 

url 의 구성요소

(scheme, protocol) (authority, domain) (path) (query) (fragment)형식으로 구성되어 있다

 

 

 

 

JSTL 의 if TAG

< 사용 방법 :  <c:if tset="조건" > 조건이 맞을때 사용할 식 </c:if> >

 

 

JSTL 의 chosse, when, otherwise TAG

내가 이해한것으로는 chosse는 switch 같고 when 은 case otherwise는 else 와 같은 기능을 하는거 같다

여기서 주의 할 점은 when이 모두 true 이면 제일 처음 만난  true 만 출력한다.

 

JSTL의 action 속성 : request 파라미터들을 어디로 보낼지 결정하는것

action속성이 없거나 빈 문자열일 경우 현재 경로를 유지한다.

 

 

Form 요소의 action의 기능

url의 경로를 지정해주는 것이다.

1. sub3경로에서 값을 넣으면 /main12/sub4로 이동하여라 라고 form에 지정해 준 것이고

2. 실제로 /main12/sub3 을 띄우고

3. 값을 입력후 전송 버튼을 누르면

4. 지정한 경로로 url의 주소가 변경된것을 확인 할 수 있고 입력 했던 param 도 잘 들어가 있다.

 


 

내일은 form엘레멘트랑 input 엘레멘트를 배울 예정

+ Recent posts