3. 0811_action tag, 내장 객체, 세션 & 쿠키
1. 웹 프로그래밍
- 소스코드
* HTML, CSS, JS, Image
* JSP Pages, Java Classes
2. 웹 애플리케이션
JSP 메커니즘
- HTML처럼 작성하지만, 자바클래스로 변환되어 실행되는 메커니즘임
JSP 태그
<% %>, <%= %>, <%! %>, <%-- --%>
JSP 지시자(Directive) : <%@ _____> : page, taglib, include
- Page : contentType, import
- Include : 다른 jsp를 포함
* Header, Footer 처럼 각 페이지에서 반복되는 헤더와
- Taglib :
@: At
<%@ include> : include지시자 vs.
<jsp:include> : include액션태그
각자 다르게 쓰이는 include임
+ main.jsp
login-form.html
login-action.jsp
dept-list.jsp
+ 책 157쪽, 파일 6장2
액션태그 <jsp:_______>
- 서버나 클라이언트에게 어떤 행동을 하도록 명령하는 태그
- forward 액션태그, include 액션태그(include지시자랑 다름)
login-action.jsp
이 페이지가 언제 실행되나요?
: login-form.html의 form action태그에 login-action.jsp가 있으므로 이것을 클릭하면 실행된다.
로그인 성공 or 실패
1. 클라이언트가 전송한 데이터를 추출한다.
--> 클라이언트에서 사용자가 로그인 하기 버튼을 누르면 jsp가 요청된다.
--> 전송한 데이터 : 아이디, 비밀번호
--> request.getParameter 내장객체를 이용해서 추출
2. 추출된 데이터와 데이터베이스의 저장 데이터를 비교한다.
--> 다른 클래스와 메서드를 사용하면
3. 일치한다면 : 로그인 성공, 불일치한다면: 로그인 실패
--> 실패 if문을 통해 판단(boolean)
4. 만일 성공이라면 목록보기를 출력하고, 실패라면 로그인화면을 출력
--> forward action을 사용한다.
ch12. 세션
상태가 없는 프로토콜인 HTTP에서 상태에 대한 보전을 위해서 사용
쿠키
- 상태가 없는 프로토콜을 위해 상태를 지속시키기 위한 방법
- 세션과는 달리 클라이언트 자신들에게 그 정보를 저장
- 사용자도 모르게 클라이언트에서 서버에게 보내지고 있다
- 인터넷옵션- 개인정보- 고급 - 쿠키 허용
-----------------------------------------------------------------
쿠키생성
Cookie myCookie = new Cookie("CookieName", "What a Delicious Cookie it is!");
myCookie : Cookie 타입의 변수, 지역변수!
new Cookie : 생성자를 호출한 것
쿠키셋팅
myCookie.setValue("Wow!");
setValue : Cookie라는 클래스에서 실행되는 메서드
내장객체 (= 내부객체) ch.7
Request <- 객체의 타입 : HttpServletRequest
- reqeust 내부객체는 브라우저에서 JSP 페이지로 전달되는 데이터의 묶음으로
HTTP 헤더와 HTTP 바디로 구성
- HttpServletRequest (HttpServletRequest 인터페이스임)
- Session (HttpSession 인터페이스임)
내장객체도 타입을 갖는다.
windows 10 cookie 위치
C:\Users\username\AppData\Local\Microsoft\Windows\INetCookies.
Google cookie 위치
C:\Users\username\AppData\Local\Google\Chrome\User Data\Default
userId가 존재하면 null이 아니다.
값이 없으면 비어있는 문자열이 된다.
String str = null;
String str = "";
이 둘은 다르다.
QueryString 의 형태 :
?key=value&key=value