GET 요청

무엇을 달라고 하는 요청에는 옵션이 있을 수 있다.

기본적으로 클라이언트가 요청하는 것은 문서

 

http://localhost/hello <- 이렇게 요청할수 있다.
하지만 옵션을 설정할 수 있다.
http://localhost/hello?cnt=3 <- 이부분이 쿼리 스트링이라고 한다.
옵션을 설정안하면 저번 설정대로 100번을 출력하지만 
옵션을 지정하면 3번만 출력하게 할 수 있다.

 

이렇게만 설정 할 경우 쿼리스트링을 전달 안하면 404에러가 난다.

그걸 방지하기위해 기본값이란걸 설정할건데 그것은 다음 시간에

이렇게 할경우 띄어쓰기 없이 바로 100개가 연달아 출력된다.

<br>태그를 이용해서 줄바꿈을 할 수가 있다. Hello Servlett!!<br > <-로 수정

server 탭 우클릭 재시작

그대로 할 경우 

익스플로러는 <br>태그가 정상적으로 작동하고 크롬으로는 <br>이 텍스트로 출력되어 나온다.

이유는 브라우저에 컨텐츠  형식을 알려주지 않을 경우 자의적인 해석을 하기 때문인다.

익스플로러는 html해석, 크롬은 텍스트로 해석한다.

서블렛을 실행하려면
사용자에게 요청할수있는 url을 주면서 그 url과 서블렛을 매핑해야한다.

그러기위해서는 Web.xml외부파일을 재사용해서 설정했었다.

하지만 그럴 필요가 없다.

Annotation을 이용하면 더 쉽게 매핑을 할 수 있다.
@WebServlet("/hello")를 위에 붙이면 된다.

전 프로젝트의 Web.xml을 열어보면 Web-app이 있는데 그 안의 metadata-complete="true"를 "false"로 바꿔서 실행하면 된다.

JSP 프로젝트에서 RESOURCE의 SRC -> NEW -> CLASS 생성 WebContent ->HTML 생성 www.index.html

 

body에서 환영합니다. 를 적음

글씨가 좀 작을 경우

Windew -> preferences -> General Appearance -> colors and Fnots 의 Text Font에서 설정
ctrl + f11 혹은 위의 run클릭

 

톰캣 9.0 누르고 finish 포트 오류가 난다면 톰캣을 닫는다.
실행되면 위의 body의 환영합니다가 보인다
크롬으로 선택해서 실행하려면 Window -> 네비게이션에서 선택하면 인터넷에서 실행이 된다.


프로젝트명을 컨텍스트명을 안쓰게 할것.
프로젝트명을 우클릭 후 preferences 클릭
Web Project Settings  컨텍스트 명을 / <- 로 변경
이렇게 선택하면 기본 프로젝트가 된 것.
오류가 난다.
서버 탭에서 컨텍스트명을 바꿨기 때문에 더이상 JSPPrj가 필요가 없다.
딜리트키로 삭제
그리고 다시 선택후 시작


이것은 HTML 문서고

서블릿을 만들기 위해서는


자바 리소스의 src에서 클래스 파일 추가
클래스 명은 Nana

패키지 명은 com.newlecture.web 로 설정

전에 만들었떤 web.xml을 복사해와서

WEB-INF에 붙여넣기
밑의 소스를 선택하면 전에 설정했던 내용이 그대로 있다.
전의 소스에서 Nana클래스명은 이제 패키지를 가지고 있으므로

com.newlecture.web.Nana로 로 변경

그 동안의 강의에서 했던 과정은 굉장히 불편했다.

그것을 통합해서 쉽게 하는 방법이 이클립스를 이용하는 것이다.

 

코드수정, 컴파일, 배포, 톰캣서버 재시작, 브라우저로 요청 -> 일련의 과정이 ctrl + f11로 가능

 

설치 과정은 생략

웹이 담당 하는 것은 UI

웹이라고 하는 것은 서버에서 클라이언트로 원격으로 데이터를 보내는 형태
또는 클라이언트로부터 입력을 받을 수 있음.

 

서블릿 코드 작성하는 법:

출력방법:

기존에 만들었던 Nana.java 파일을 위처럼 수정한다.

 

그리고 실행하면 출력이 된다.



저번에 만들었던 nana클래스 파일은 WEB-INF 폴더를 만들고  classes에 넣음.

 

web-inf의 자원들은 특수한 의미의 자원으로서 서버쪽에서만 사용할 수 있고 

클라이언트 측에서 이 폴더 안쪽을 들여다 볼 수 없고 요청할 수도 없음.

그래서 이 폴더에 클래스 파일을 둠.

 

그리고 특별한 방법으로 요청할 수 있게 만듬

 

그 방법은

톰캣에서 URL로 사용자의 요청을 받은 다음에 그것을 매핑된 서블릿 코드로 실행하여 돌려주는 방식.

 

http://localhost:8080/nana.txt

http://localhost:8080/WEB-INF/nana.txt

둘 다 똑같은 파일을 품고있지만 WEB-INF는 외부에서 요청 할 수 없는 폴더이기에 아래 코드는 오류가 남.

 

web.xml 편집

여기다가 매핑 정보를 넣는다.

 

그리고

http://localhost:8080/hello 를 url에 실행

 

실제로 hello라는 파일이 저 주소에 있는게 아니고 요청을 받는 웹 서버는 파일을 찾아보고 없으면 이 것을 WAS에게 넘기면 WAS가 자기 매핑 정보를 찾아서 hello가 있구나 하고 서블릿 코드를 실행한다.

왜 웹 서버 응용 프로그램을 Servlet이라 명칭할까?
서버 어플리케이션은  필요에 따라서 기능 별로 선택적으로 실행 될 수 있도록 코드가 나눠져 있다.
조각나 있는 서버 어플리케이션을 서블릿.

 

자바는 main으로 시작하지만
서블릿 프로그램을 만들 때는 service()로 시작

 

class 명은 자유 extends HttpServelet
public void service(....

 

이클립스 없이도 작업이 가능하다.

 

메모장을 켠 후 코드를 복사해와서 저장 후 cmd를 통해 컴파일이 가능하다.

 

+ Recent posts