본문 바로가기

Web Application

절대경로, 상대경로, Scope, Jsp코드

*경로

경로 설정하는 경우 

1)<A href="경로>

2)<form action ="경로">

3) 자바스크립트언어 href.location="경로";

 

경우의 종류

http://localhost:8090/app/a.html

1)절대경로: context인 /app부터 뒤 끝까지, 또는 전체경로 기재할것.

2)상대경로: 현재 요청에서 브라우저가 보여주는 파일경로 기준

목적경로가 상위 폴더에 있을 경우, cmd의 경로 ..을 이용하여 접근한다

ex) app6/product/shop/image.jsp => 현재 jsp 파일 위치

      app6/product/shop2/image1.jpg => 찾고자 하는 이미지 파일1

      app6/product2/shop2/image2.jpg => 찾고자 하는 이미지 파일2

      app6/product/shop/image3.jpg => 찾고자 하는 이미지 파일3

image src = "../shop2/image.jpg  ==> 이미지파일1의 상대경로

image src = "../../product2/shop2/image.jpg ==> 이미지파일2의 상대 경로

image src = "image3.jpg ==> 이미지파일3의 상대경로

 

절대경로

장점: 접근하기가 쉽다. /context명/경로 형식 사용

단점: context가 변경되면 전부 바꿔줘야 한다. (유지보수가 어려움)

 

상대경로

장점: context명을 따로 지정하지 않기 때문에 context명 변경이 쉽다.

단점: 접근하기가 까다롭다. 현재 경로를 알아야 된다.

 

절대경로와 상대경로 간단 정리

*절대경로의 기준은 논리적, 물리적으로 구분되어지는 경로이다.

==> 논리적: /context, 물리적: webapp

*상대경로의 기준은 현재 브라우저에서 보여지는 자원의 디렉토리의 기준 경로이다.

 

**scope

개념: 메모리 저장소, key/value(map계열) 형식으로 저장 및 조회

3가지 종류

 1) request scope: HttpServletRequest

     setAttribute(key,value), getAttribute(key)

 2) session scope: HttpSession

     setAttribute(key,value), getAttribute(key)

 3) application scope: ServletContext

     setAttribute(key,value), getAttribute(key)

 

1) request scope의 생명주기: 요청->처리->응답(html) , 랜더링은 생명주기에 포함안된다.

=>서로 다른 서블릿끼리는 request 정보가 공유가 안된다. 계속 새로운 주소로 만들어진다.

 

2) session scope(로그인, 장바구니 기능)

==>생명주기는 같은 브라우저가 유지될 경우에 같다.(엣지랑 크롬이랑 다름)

 

3) application scope - servletContext

-> web application과 생명주기가 같으며, 가장 오래 살아남는다.

=> tomcet 모듈(컨데이너 서버)을 제거하지 않으면 data 계속 참조 가능. 브라우저가 꺼져도 컨테이너의 모듈이 살아있으면 계속 사용 가능하다.

 

*JSP 

브라우저 -> 요청 -> jsp -> 변환단계(*jsp.java -> 기존 서블릿과 유사) -> 컴파일 단계(*_jsp.class) -> 실행 -> 결과(html)-> 응답

 

**jsp 코드**

스크립트 코드

<%@ %> : 디렉티브 태그 (directive tag)

<%! %> :디클레이션 태그 (declaration tag) => 거의 안씀. 그래도 알아두자.

<% %> : 스크립트릿 태그 (scriptlet tag)  => doGet 메서드내에서 구현코드(응답처리코드 제외)

<%= %> : 이엘(EL) 태그(expressing tag)  => 출력 태그

=> <%= 변수 %> (변수; 세미콜론 주면 안된다.), 위치가 중요하며 있는곳에서 출력이 된다.

또한 스크립트릿 태그안 변수만 사용 가능하다. 디클레이션 태그에 있는 변수는 사용 불가.

액션코드:<jsp:~~~ > 

=> model1 architecture에서 사용되었던 코드.(위임없이 jsp만 또는 서블릿만으로 설계된 구조)

 

*jsp의 내장변수

의미: jsp 내에서 선언하지 않고 사용 가능한 변수. 자동으로 선언됨. 따라서 변수명이 정해져있다.

request, response, session, application, out, config

'Web Application' 카테고리의 다른 글

Filter, session, cookie  (0) 2022.08.09
mybatis 시작  (0) 2022.08.05
Servlet & Jsp 위임(forward, redirect)  (0) 2022.08.04
Servlet & Jsp의 파라미터 및 DB 연동  (0) 2022.08.02
Web Application. Servlet & Jsp  (0) 2022.08.01