JSP & Servlet

3. 0811_action tag, 내장 객체, 세션 & 쿠키

55yudi 2021. 8. 12. 00:39

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에서 상태에 대한 보전을 위해서 사용

 

쿠키

- 상태가 없는 프로토콜을 위해 상태를 지속시키기 위한 방법
- 세션과는 달리 클라이언트 자신들에게 그 정보를 저장
- 사용자도 모르게 클라이언트에서 서버에게 보내지고 있다
- 인터넷옵션- 개인정보- 고급 - 쿠키 허용

 

쿠키 세션2

 

쿠키 세션2

 

쿠키테스트


-----------------------------------------------------------------
쿠키생성

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