[개발] 프로그램 지식

JSP 기초 정리 (2) / Summary of JSP basic concepts

  • -
반응형

MVC 패턴

Model : 어플리케이션의 정보, 데이터

View : 사용자가 보게 될 결과 화면 출력

Controller : 사용자의 입력처리와 흐름 제어 담당

넘겨줬을 경우 한글이 안뜨는 경우

URLEncoder 임폴트

URLEncoder.encode( ~, "euc-kr" )

받아올때는 디코드

URLDecoder.decode ( request.getParameter ("" ), "euc-kr" );


오류 잘나는 구간 ( feat. 쌤 )

1. 404Error : 서버에서 해당페이지를 찾을 수 없다는 오류

= 1_1. 보내려고 하는 서버페이지나 HTML페이지의 이름이 잘못됐을 때

1_2. 만든 HTML/JSP페이지가 webapp폴더 아래에 있는지 확인

1_3. 만든 HTML/JSP페이지가 같은 프로젝트 안에 있는지 확인

2. 500Error : Servlet을 먼저 실행하고

HTML / JSP를 실행하지 않았을 때

= 먼저 HTML/JSP(사용자에게 값을 입력받는 페이지) 실행

3. 페이지가 실행이 안되고 Tomcat경고창 나왔을 때

= 3_1. Tomcat이 설치된 경로를 변경했을 때

3_2. URL Mapping 값이 중복해서 지정이 됐을 때**

3_3. Tomcat이 실행되는데 또 실행을 시켰을 때(Port번호변경)

4. Save Problems 오류 : 입력한 한글에 오류

= Select Char..3번째 버튼을 클릭하고 잘못된 한글을 찾아서 수정

5. JDBC연동할 때 많이나는 오류

= java.sql.SQLSyntaxErrorException(SQL문 확인할 것)

6. HTML / JSP에서 서버페이지를 호출 시

(submit버튼을 클릭했을 때) 무한로딩일 때

/ sql Developer에서 검색한 값과

Servlet에서 검색한 값이 다를 때

= sql Command line에서 로그인 후 commit 명령어 입력

7. HTML에서 수정한 태그가 실행하면 반영이 안될 때

= HTML파일을 새로고침 -> Server를 재시작 -> 컴퓨터 재부팅


setCookie 쿠키 객체 생성

/ 만료일 지정

/ 전송까지

1. 쿠키 객체 생성

( 쿠키는 키와 값으로 이루어져 있음 -- 모드 String(스트링) 타입 )

<> 세션은 키는 String이지만, 값은 Object라는 점

그래서 쓸때 항상 형변환 필요한듯

new Cookie ( "키", "값" );

Cookie c = new Cookie ( "키", "값");

2. 만료일자 ( 유효기간 ) 설정

/ 초단위로 설정 가능 3600

= 1시간 / 24시간 하루 / 365일 일년

c.setMaxAge( 1년인 경우 3600*24*365 )

3. 클라이언트에 쿠기 전송 (응답 - response 이용)

response.addCookie(c);

4. 쿠기 생성 후 바로 클라이언트에 전송

response.addCookie( new Cookie ( "키", "값 ));

s 복수형 > 쿠기'들'을 모두 받아올 수 있음

리턴타입

getCookies 쿠키 객체 얻어오기

request.getCookies();

Cookie[] cookies = request.getCookies();

for ( Cookie c:cookies ) {

out.print ( c.getName() + ":" + c.getValue() + "<br>" );

}

아래와 같이 모든 쿠키의 키와 값을 가져옴

F12

로그인 관련 쿠키를 삭제하면

로그아웃을 따로 하지 않아도

로그인정보가 삭제되기때문에 로그아웃됨

쿠키 삭제하기

사실 쿠키 삭제하기 기능이라기 보다는

유효기간을 0초로 설정함으로써

삭제하는 기능처럼 쓸 수 있음

삭제하는 기능은 따로 없고

유효기간을 0으로 설정하므로써

쿠키를 삭제할 수 있음


setSession 세션 세팅하기

앞서 말했든

키는 String형이지만

값은 쿠키와 달리 Object형이다.

session.setAttribute ( "키", "값" or 값 );

값의 형태는 어떻게 사용할지에 따라서

형태가 달라질 수 있음

나중에 get으로 가져올때에 따라서

인트형인지 스트링형인지 달라짐

getSession 세션 가져오기

첫번째 방법

: 한번에 한개씩 가져오는 방법

정수형으로 명시적 형변환시

(int)가 아니라

(integer)로 해주어야 함.

session.getAttribute("키");

cf.

홈택스같은 사이트에서

로그인했을때 30분지나면 로그아웃되는 경우

>> 쿠키 만료일 관련됨

getSessions 세션 가져오기

두번째 방법

: 한번에 모든 세션 가져오는 방법

session.getAttributeNames(); 사용

리턴타입은 enumertation<String>

// Enumeration

: 객체들이 집합에서

각각의 객체들을

한 순간에 하나씩 처리할 수 있는

메소드를 제공

Enumeration names = session.getAttributeNames();

Enumeration에 있는 기능에서

hasMoreElements() 사용

리턴타입은 불리언

names.hasMoreElements()

//hasMoreElements

: 요소가 있으면 True, 없으면 False

// resultset의 rs.next()와 비슷

.toString();

다운캐스팅(강제형변환)이 아니라

무조건 문자열로 바꿔줌

정수는 스트링타입으로 캐스팅될 수 없다

예를 들어서 닉네임이 dsmfow123124 이런식으로 문자열과 숫자가 섞이는 경우를 뜻함

이런 오류를 피하기 위해서 무조건 문자열로 바꿔줌 .toString();

이렇게 되면 dsmfow123124에서의 숫자들도

아에 문자열로 인식이 되는 듯?..

toString() => Object를 String으로 변환

업캐스팅

부모타입으로 변할때는 자동 형변환

object ~ = string, int ~

다운캐스팅

강제형변환

string, int ~ = object ~


세션 삭제 2가지 방법이 있다.

1. 하나하나씩

2. 전체

세션 하나씩 삭제하는 방법

session.removeAttribue("키");

session.removeAttribute();

세션 모두 삭제하는 방법

session.invalidate();

매개변수 아무것도 안들어감!

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.