onnnzeoz
article thumbnail

tomcat은 jsp를 java로 변환해 줌

톰캣와 데이터베이스로만 이뤄진 서버 : 2티어 구조

웹서버 아페치까지 이뤄진 서버 : 3티어 구조

 

post method로 한글을 보내면 깨져보인다, 그래서 request를 (UTF-8)로 인코딩해줘야 한다.

 

<java />
req.setCharacterEncoding("UTF-8");

1. out 객체

서버에서 페이지로 문자열을 출력하는 기능을 한다. 

 

2. response 객체

1.페이지 이동시키거나 2. 페이지 그리기

응답 전용이라 가장 빠름 그래서 제일 위에 뜸

 

out은 response에서 추출되어 나온 하위객체여서 순서가 느리다.

 

scriptlet 출력문은 사실 out 객체다(그래서 출력도 당연히 가능)

동급일 때는 위에서 아래로 읽기 때문에 더 빠르게 화면에 출력되는 것뿐

 

 

session과 cookie도 내장 객체 

 

post : url에 노출 시키면 안될때 사용

 

웹에서 만들어지는 특정한 데이터를 저장하고 싶을 때 : cookie와 session이라는 저장객체를 사용한다

저장 위치가 서로 다르다 (cookie - client | session - server)

3. cookie 기본 정보

자바에서 접근제한자로 서로 갖다 쓸 수 있는데 다른 언어에선 힘듦, 

a페이지의 내용을 b,c,d 페이지에서도 볼 수 있게 한 것 

사용자 피씨에 저장이됨(=client) ->그래서 보안에 취약함 (ex 자동로그인)

그래서 요즘은 '방금 본 상품' 같은거 (누가봐도 상관없는 정보들) 정도에만 쓰임

문자열만 저장 가능

브라우저를 닫거나 서비스를 종료해도 정보가 남는다

사용자 피씨에 저장이 되는거니까 request가 아니라 response를 통해 저장을 함 

 url에서 이 파일이 exam 폴더 밑에 있다는 거까지 다 보이는거

 

4. cookie 만드는 법

1. 쿠키 객체화 하기

Cookie cookie = new Cookie("key", "value");

 

2. 쿠키의 수명을 지정

cookie.setMaxAge(60*10);

 

3. 쿠기 저장

response.addCookie(cookie);

5. session

server(의 메모리)에 저장되는거라서 보안상 훨씬 우수

오브젝트(자바에서 사용하는 모든 것)로 저장가능

너무 쓸데 없는 정보는 담지 않음

로그인했는지 안했는지 session에 물어봄

로그아웃하면 날라감

cookie와 다르게 브라우저가 변경되면 끊어짐 

cookie보다 다루기 편하다

개발자 도구에서 볼 수 없다

세션도 객체화를 시켜야함

원래 뽑ㅂ아내는 방법은 request.getSession()를 통해서 해야함

근데 귀찮으니까 다 생략하고 session 줌 그래서 session.setAttribute()가 됨

 

500에러 :서버를 다룰 때 '자바'가 잘 못된거

 

  cookie session
값 넣는 법 (쿠키에 값을 저장) response.addCookie(cookie); session.setAttribute("name", "eunyoung");
이렇게 넣은 쿠키값 가져오기 request.getCookies();8  
최대값 넣는 법 cookie.setMaxAge(60); session.setMaxInactiveInterval(60);
값 보내는 법 response.addCookie(cookie); response.sendRedirect("index.jsp");
쿠키|세션 속성 삭제할 때 수명을 0으로 만듦 -1은 무한대임 세션 자체는 지워지지 않음
session.removeAttribute("name");
값 확인할 때 (값 나타낼 때) <%=cookie.getName() %> //이름 확인
<%=cookie.getValue() %> //값 확인
<%=cookie.getMaxAge() %> //만료시간 확인

session.getAttribute("name");
초기화하는 법   session.invalidate();
response.sendRedirect("index.jsp");
값 받는 법 String lang = request.getParameter("name"); String lang = request.getParameter("name");

 

세션한텐 고유의 id가 있음 서버가 정해주는거 (우리가 임의로 정하는게 아님)

세션 저장 : 세션 객체에 포함되어있는 속성을 저장하겠다는거

세션 속성 삭제하는 행위를 로그아웃이라고 부른다

세션초기화:세션 삭제하고 다시 만드는것 (세션 종료 -> 재생성(id가 변경된다)

세션자체는 지워지지않는다는 것은 세션이 존쟇지ㅣ 안흔 ㄴ상태는 없다는 것, 삭제해도 바로 다시 만들어, 그래서 id가 매번 바뀌어

로그인 내용을 삭제해버리면 로그아웃이 됨

 

<java />
<form action="result.jsp" method="post"> <table> <tr> <th>ID</th> <td><input type= "text" name = "userId"/></td> </tr> <tr> <th>PW</th> <td><input type= "password" name = "userPw"/></td> </tr> <tr> <th colspan="2"><input type= "submit" name = "login"/></th> </tr> </table> </form>

form안에 있는 내용을 submit을 통해서 action으로 보내는거

profile

onnnzeoz

@onnnzeoz

비전공자의 개발 공부 일지입니다 💦 국비 풀스택 과정 수강중