#스크립틀릿(<% %>)
html문서 내에 자바코드를 쓸 수 있는 영역
서블릿(Servlet)
웹 서비스를 위한 JAVA의 Class이며 자바로 웹을 만들기 위한 기술 (.servlet 파일로 만들기 가능)
사용자의 요청을 받아서 처리하고 그에 해당하는 응답페이지를 만들어서 다시 전송자에게 전송한다
>> 즉, 웹에서의 동적인 페이지를 java로 구현할 수 있게 도와주는 서버 측 프로그램 (html을 java로 구현)
데이터 요청방식
http://localhost:5000/st/test1.do?name=%EC%B5%9C%EC%A7%80%EC%9B%90&gender=M
<h1>Get방식으로 요청 후 응답페이지 보기</h1>
브라우저에서 서블릿으로 데이터를 요청하는 방식에는 2가지가 있다.
1. GET 요청 방식
특징
- URL의 Header영역에 데이터들을 포함시켜 요청한다
- 사용자가 입력한 값(데이터)들이 url에 노출됨 (네이버 검색)
- 보안유지가 불가능해서 로그인이나 회원가입 같은데 쓰면 안 됨
- Header영역은 전송하는 길이에 제한이 있음
- 방대한 데이터들을 담았을 경우 초과하는 데이터는 절단되서 넘어감
- 게시판 작성 같은 경우 GET방식에 부적합
- url에 데이터가 노출되어 있기 때문에 즐겨찾기(북마크)가 가능
- url을 저장해 놨다가 재요청하는 방식
- 검색기능에 적합
2. POST 요청 방식.
특징
- POST방식으로 요청 시 URL의 BODY영역에 데이터를 포함시켜 넘김
- 사용자가 입력한 값들이 url에 노출되지 않음
- 보안유지가 가능함
- = 로그인이나 회원가입 같은 경우 POST방식에 적합함
- Body영역은 전송하는 길이에 제한이 없다
- 방대한 데이터들을 담았을 경우 초과하는 데이터는 절단돼서 넘어감
- = 게시판 작성 같은 경우 POST방식이 적합함
- 즐겨찾기는 가능하나 데이터가 url에 노출되지 않음
- 기존에 봤던 응답화면을 볼 수 없다
- 검색 기능은 경우 POST방식에 부적합
- Time out이 존재하기 때문에 페이지요청, 기다리는 시간이 있다.
+ form내의 제출버튼(submit타입) 클릭 시
form태그 속성 중 action에 작성된 url로 요청됨 (요청 시 사용자가 입력한 값들도 넘어간다.> value)
<form action="/st/test2.do" method="POST"> <!-- /st/test2.do으로 요청 -->
즉, Controller(Servlet)을 호출한다고 생각하면 된다.
근데 여기서 url의 경로 방식에 2가지가 있다. 절대 경로와 상대경로 2가지로 나뉘는데
절대경로 방식 ( /로 시작하는 경우 )
: http://localhost:5000 뒤에 action값이 더해지면서 요청 (위 코드가 바로 절대경로 방식)
상대경로 방식 (문자로 시작하는 경우)
현재페이지가 보여질 때 url의 마지막 /로부터 그 뒤에 action값이 더해짐
ContextPath (컨텍스트 패스)
"웹 서버에서 웹 애플리케이션들을 구분하기 위한 길(path)"
좀 더 확실하게 이해야 할 거 같은데..
영어로는 "문맥의 길" 정도로 해석
웹 애플리케이션이 웹 서버에 배포됐을 때, 그 애플리케이션이 접근 가능한 기본 URL 경로를 말한다
간단하게 용어 정리를 하고 들어가면 더 이해하기 편할 거 같은데..
[ 용어정리하고 보는 ContextPath ]
웹 애플리케이션 (Web Application)
: 사용자가 웹 브라우저를 통해 접속할 수 있는 프로그램으로 블로그, 쇼핑몰, 이메일 등을 말함
웹 서버(Web Server) = WS = HTML
ContextPath
: 웹 서버 는 여러 개의 웹 애플리케이션을 배포할 수 있기 때문에, 각각의 애플리케이션을 구분하는 루트 경로가 필요한데 이 루트 경로가 바로 ContextPath다
총정리
하나의 웹 서버에서 여러 웹 애플리케이션을 운영할 때, 각각의 웹 애플리케이션을 구분하기 위해서
/app1, /app2 같은 경로(path)를 설정하는데 여기서 /app1, /app2가 각각의 웹 애플리케이션의 ContextPath 이다.
그리고 여기서 이제 아까 처음에 들었던 말을 다시 들어보자
ContextPath란.
웹 서버에서 웹 애플리케이션들을 구분하기 위한 길(path)
실전 예)
http://www.example.com/app1/potato.jpg 을 해석해보자면 라는 도메인이 있고
http://www.example.com 라는 도메인이 있고
/app1 라는 contextPath 안에
potato.jpg 라는 이미지가 있다는 것
Servlet은 반드시 contextPath 뒤에 작성되어야 한다
http:localhost:5000/st/test1.do
/st 라는 contextPath 뒤에( / )
test1.do 라는 Servlet 이 작성돼있다.
- context root와 contextPath:
- context root:
- 정의: 웹 애플리케이션이 웹 서버에 배포될 때의 루트 디렉터리를 의미합니다. 서버의 파일 시스템 상에서 애플리케이션의 물리적 위치를 나타냅니다.
- 설정 방법: Eclipse에서 웹 애플리케이션을 설정할 때 context root를 설정하면, 이는 웹 애플리케이션이 웹 서버에서 접근할 때의 루트 경로가 됩니다.
- contextPath:
- 정의: 웹 애플리케이션이 웹 서버에서 접근할 때의 URL 경로를 의미합니다. 사용자가 웹 브라우저에서 애플리케이션에 접근할 때 사용하는 URL의 일부입니다.
- 설정 방법: context root로 설정한 이름은 웹 애플리케이션이 웹 서버에서 접근할 때의 URL 경로인 contextPath로 사용됩니다. 예를 들어, context root를 myapp으로 설정하면, contextPath는 /myapp이 됩니다.
- context root:
'JAVA' 카테고리의 다른 글
자바 개발자 양성 과정 4주차 - 2 (0) | 2024.08.05 |
---|---|
자바 개발자 양성 과정 4주차[예외] (0) | 2024.08.01 |
자바 개발자 양성과정 3주차 [상속, 다형성, 추상클래스] (2) | 2024.07.24 |
자바 개발자 양성과정 2주차 [객체] (2) | 2024.07.15 |
자바 개발자 양성과정 1주차 (1) | 2024.07.07 |