Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Today I Learned

[JSP] 페이지출력하는 방법, Cookie와 Session 본문

JSP

[JSP] 페이지출력하는 방법, Cookie와 Session

꾸주니12 2022. 5. 16. 23:52

+자바스크립트도 사용 가능 

  • 자바스크립트의 변수에 값 할당시 double qoute(“”)로 감싸줘야함 : 이유는 쿼터로 감싸져 있지 않으면 에러가 발생하는데 문자열로 인식하지 못하고, 변수나 숫자나 boolean 등 다른 걸로 인식 (java,java script 등의 언어에 모두 해당)
  • 소스 확인 가능해서 보안상의 문제로 잘 사용하지 않음 

 

- h 자바 변수니까 자바출력문 <%= %> 써주기 

- 쿼터로 감싸주기 : 문자열로 인식하도록 

- join메서드 : 배열에서 하나하나 꺼내옴, ','로 구분하겠다.

 

페이지 출력을 하는 방법 

1.response(내장객체) : 응답전용 객체

- 요청에 대해 응답 페이지를 전달해주는 객체 

- 특정 페이지로 이동하는 것도 가능 

- 페이지를 만드는(write) 객체

- 페이지 출력(그리기) 를 할 수 있음 

- response는 응답전용 이기 때문에 가장 빠름

<% response.getWriter().write("<p>세번째,  response객체를 이용하는 방법</p>"); %>

 

2. scriptlet 사용

<%="<p>첫번째 스크립틀릿 출력문을 사용하는 방법</p>" %>

 

3. out 객체 사용  

- response로 부터 나온 객체로 내장객체 이다.

 - response 로 부터 한번 추출한 객체를 사용하므로 가장 느리다.

<% out.print("<p>두번째, out객체를 이용하는 방법</p>"); %>

 

*주의할 점*

  • 페이지 출력하는 방법을 혼용해서 썼을 때 순서가 바뀔 수 있어서 출력문을 사용할 때 하나만 쭉 쓰는게 좋다.
  • 간편하고 간결한 out객체를 많이 씀 
  • Out객체 속도가 가장느림 성능 문제가아니라 그냥 제일 순서가 늦게 찍힘 

 

sendRedirect()

- 특정페이지로 튕겨보낼 때 / 특정한 페이지를 거쳐갈 때 / 

- Response sendredirect 가장 많이 씀 

- Sendredirect 메서드는 한번밖에 못씀.  조건당 한문장만 : 예를들어 두번쓰게 된다고하면 이페이지로 이동하고 이페이지로 이동해! 라고 하는 것은 어디로 가란말인거야 이 경우엔 이 페이지로 가! 이렇게 하나만 지정해줘야지 

 

 

 

 

Cookie & Session

: 웹에서 만들어지는 특정한 데이터를 저장하고 싶은 경우 Cookie & Session이라는 저장객체를 사용

(다른페이지에서도 데이터가 공유 되야함)

 

 

 

Cookie & Session의 차이점

: 저장 위치가 달라 사용법과 보안수준이 다름 

 

- Cookie

  • client(사용자 pc)에 저장
    • 클라이언트(pc)에 저장되므로 request로 가져오고  response로 저장한다.(<-사용자의 pc에 저장되기 위해 )
    • 브라우저를 닫거나 서비스를 종료해도 정보가 남음 
    • 공공장소에서 사용하는 pc의 경우 쿠키에 저장된 내용을 누구든지 사용 가능하게됨 
  • Java script 로도 제어 가능 - 보안 취약 
  • 보안에 취약 (브라우저에서 쿠키내용 확인 가능함 - 그래서 이름을 알수없게 설정함)
    • 팝업, 국제화 설정 시 한국사이트인지 영문사이트인지 등 - 보안상에 문제가 없는 경우를 저장한다
  • 쿠키는 기본적으로 (String,String 형태) 이다. 저장할 수 있는게 한계가 있다. (key,value)

  • 쿠키는 보통 한 개 이상이기 때문에 request로 가져올 때 배열로 받는다.
  • 브라우저 끼리 저장된 내용은 공유되지 않는다.(크롬 쿠키에 저장하면 다른 브라우저에서는 해당안하는거지)

F12 : 개발자 툴 단축키

쿠키 메서드

이름 : getName()

값 : getValue() 

만료시간확인 :getMaxAge() 

request.getCookies() : 쿠키를 불러올 때. 한개가 아니기 때문에 배열로 받음 

 

예시는 코드를 보기! 05_Cookie - exam 폴더 

 

 

-Session (로그인을 생각해보자)

    • server 에 저장
      • 서버를 껐다 켜면 없어짐. 브라우저가바뀌어도 유지가 안됨 브라우저 껐다 키면 남아있지 않음
      •  즉  저장되는 영역이 쿠키보다 좁다 : 쿠키는 껐다 켜도 저장이 되어있음(뭘?서버를?)
    • Server side program 으로만 제어 가능
    • 보안성 우수
    • cookie보다 다루기 편함 
    • 많은 세션에 저장하면 메모리에 문제 > 주요 정보만 저장 
    • Session은  (String, object) : Value 다들어감 클래스 배열 map 등등 객체타입 : 쿠키보다 활용도 좋음 

 

Session을 사용하는 이유 

  1. 보안성이 좋음
  2. 쿠키보다 사용이 쉬움 

세션 사용시 유효기간 설정 이유 

1.메모리를 차지하기 때문에 계속 들고있는 것은 안좋다 

2. 보안상 문제로(은행어플) 

 

세션 메서드

session. setAttribute(String, Object); : 세션을 저장

session.getAttribute(); : 가져올 때 

세션 값이 object 이기 때문에 string 타입으로 넣으려면 캐스팅을 해줘야한다 / jsp에선 빨간줄만 생기고 왜그런지 안알랴줌

session.getId() : 세션 아이디 확인 (세션이 만들어지면 이름이 생김)

session.setMaxInactiveInterval(n); : 유효기간 설정 / 설정안할 경우 기본값 30분

session.getMaxInactiveInterval(); : 세션 만료시간 확인 

session.removeAttribute(String); : 그 key에 해당하는 값을 삭제 : 세션에 특정한 속성만 삭제하고 싶을 때 

deprecated : 사용하지마. 사선으로 그어져있음

- session.invalidate(); : 세션을 초기화(세션 객체를 아예 지웠다가 다시 만든다.)

(세션 초기화는 잘 하지 않음 

세션 자체를 없애버리는 거라서 모든게 초기화되기 때문에 조심해야함 -> 세션 아이디가 바뀜 

브라우저를 닫으면 로그인상태가 계속 쭉 저장되는게 아니고 로그아웃되기때문에 초기화하는 경우는 드뭄 )

 

 

 

 

 

<에러>

  • js나 프론트엔트 에러는 element console에서 확인
  • nullpointexception 은 값이 안왔다는/없다는  뜻 / 폼에서 값을 입력안한거지
  • 서버오류(500) : sts 에서 서버다루니까 sts콘솔창 확인하기  - 파란색글씨 찾아보기 
  • 404 : 페이지 못찾음 : 페이지명 확인하기 

 

*form 태그 method속성의 Get 방식과 post방식의 차이 

Post : 파라메터값이  보내는 데이터 크기 제한이 없음 속도느림 주소창에? url에 노출안됨 - 보안상 좋음 

Get : 보내는 데이터가 한정적, 입력된 내용이 주소창에 노출 - 보안상안좋음 

 

 

 

 

 

'JSP' 카테고리의 다른 글

[Jsp] Scope, action tag, Model1과 Model2, El tag, JSTL  (0) 2022.12.06
JSP개념,Tomcat, Scriptlet  (0) 2022.05.15