참조형(배열도 참조형)
HttpServletRequest 변수이름:request
HttpServletResponse 변수이름:response
HttpSession 변수이름:session
설계도 -----생성----------데이터----------------> 변수
생성된 데이터,즉 데이터로 바뀐 설계도->인스턴스(instance)
기본형
byte,short,int,long,float,double,char,boolean
데이터----------------------------------------------> 변수
기존의 페이지 전환방법 :
프로그램으로 페이지를 전환하는 방법
Redirect : 사용하는 객체 HttpServletResponse
웹서버가 생성해서 response변수에 데이터를 넣는다.
response.sendRedirect("abc.jsp");
Forward : 사용하는 객체 RequestDispatcher
개발자가 생성해서 개발자가 만든 변수에 데이터를 넣는다.
RequestDispatcher a = response.getRequestDispatcher("목적지.jsp");
a.forward(request,response);
Redirect vs Forward
브라우저의 주소창의 내용
A.jsp---get/post-------->B.jsp-------Redirect----->C.jsp
브라우저의 주소창:C.jsp
브라우저의 내용:C.jsp의 내용
브라우저에서 새로고침을 누른다.
--->C.jsp가 다시 실행된다.
A.jsp---get/post-------->B.jsp-------Forward----->C.jsp
브라우저의 주소창:B.jsp
브라우저의 내용:C.jsp의 내용
브라우저에서 새로고침을 누른다.
--->B.jsp가 다시실행된다.
요청이 웹서버로 들어왔을 때, 로그인한 상태에서의 요청인지,
로그인하지 않은 상태에서의 요청인지를 구분하자.
저장소를 만들어서, 로그인 성공한 경우 저장소에 특정데이터(일반적으로 계정)을
저장한다.
그래서, 요청이 들어올 때 마다 저장소를 검사해서 특정데이터가 있으면 로그인한 상태
에서의 요청으로 판단한다.
요청이 들어왔는데 저장소를 검사해서 특정데이터가 없으면, 로그인하지 않은 상태에서
의 요청으로 판단한다.
저장소에 특정데이터를 넣는 방법(method):setAttribute()
-> session.setAttribute("이름", 특정데이터);
저장소에서 특정데이터를 빼는 방법(method):getAttribute()
A설계도(RequestDispatcher) -----response.getRequestDispatcher("목적지.jsp")----->데이터
생성하는 방법(method)이 B설계도에 있다.
B설계도(HttpServletRequest) ------------생성--------------->데이터-->변수(response)