엠마의 개발공부일지

서블릿 한장정리 본문

Stack/JSP & Servlet

서블릿 한장정리

Emmababy 2020. 11. 2. 16:49
728x90

 

스프링을 공부하는 시점에서, 서블릿에대한 개념정리가 되지않은채 이도저도 아닌상태인것같아

서블릿을 한장으로 정리하여 개념정리를 하고자한다.

 

0. 프로젝트 생성

 

1. 패키지 & 클래스 생성

 

1-1 생성된 클래스에 기본세팅하기

  •   HttpServlet을 extends하기
  •   service함수 오버라이드하기

 

1-2 웹에 출력하기위한 함수세팅

  • PrintWriter : 웹에 출력하기 위한 메서드(PrintStream(sysout)과 동일) 
  • (Stream()은 입력과 출력 모두를 담당)

 

2-1. 서블릿 실행을 위한 매핑(방법1)

> WEB-INF파일에 세팅해주기

  • <servlet>에는 출력하고자하는 서블릿파일의 경로를
  • <servlet-mapping>에는 url주소를 지정해준다.

ctrl + F11로 실행해보면 아래와 같이 잘 나온다

하지만 URL에 내 프로젝트명이 노출되었으므로, 그부분을 수정해준다.

프로젝트 컨텍스트메뉴(오른쪽버튼) 맨 아래에 Properties안에

Context root를 아래와 같이 변경해준다.

그리고 아래 서버칸에 컨텍스트명을 지워준다

그럼 아래와같이 url이 바뀐걸 볼 수 있다.

 

2-2. 서블릿 실행을 위한 매핑(방법2)                                                                                        

> 어노테이션을 이용(서블릿3.0부터 사용가능)

  아래와 같은 어노테이션설정만으로 기존과 동일하게 웹에 표시가능

 (이때 web.xml에 servlet매핑관련 내용은 주석처리해준다) 

 

방법이 간편하기도하지만, 협업할때 엉켜있는 web.xml코드를 쓰는건 좋지않으므로 

웬만하면 어노테이션을 사용하여 깔끔하게 작업하는것이 좋다

 

* 참고 *  콘텐츠형식 출력하기

실행되는 웹에 따라 각 웹이 자의적해석을 할 수 있으므로, 어떻게 보내고 받을지 정해준다.
  • 사용자에게 보내는 코딩방식
  • 사용자가 받았을때 어떻게 읽어야하는지에 대한 방식

3. GET요청과 쿼리스트링

사용자가 요청을 할 경우, 그 요청에 따른 코드내용은 어떻게 달라지는지 아래와 같이 확인해보자

<사용자요청> : http://localhost/hello?cnt=3

 => 기본 hello요청에 3번만 반복해달라는 옵션을 넣어 요청(옵션부분=QueryString)

 

but, 사용자요청 쿼리스트링부분이 비어있을수도있다. 각 경우는 아래와 같다.

  • 1,2번째 경우는 문자형 형태로 오므로 Integer.parseInt()처리 해줘야한다.

[출처] 유튜브_뉴렉처JSP&서블릿강의 16강

사용자로부터받은 cnt값이 어떤값인지 모르므로 일단 temp값에 넣어두고,

그 값이 null도 아니고, 빈문자("")도 아닌지 확인후, 

모든조건이 충족되면 그 값을 적용하여 for문으로 돌린다.

(보통 temp라는 변수대신 가져오는 변수+언더바를 써준다 : cnt_)

[출처] 유튜브_뉴렉처JSP&서블릿강의 16강

보통 아래와같이 WebContent폴더 아래에 html파일에서

a태그로 이어줘도 이동가능하다(이원리는 뭔지 정확히모르겠다)

3-1 GET요청(입력값이 많지않을때)

  사용자로부터 값을 입력받을때, 그 값이 url의 일부가된다

  form태그의 action + 입력받은값으로 url이 완성된다.

[출처] 유튜브_뉴렉처JSP&서블릿강의 17강

4.  POST요청(입력값이 많을때)

각 값을 get.Parameter로 받아서 저장한다.

[출처] 유튜브_뉴렉처JSP&서블릿강의 18강

5. 필터

 톰캣은 여러 어플리케이션을 서비스하는 컨테이너임.

여러 서비스를 설정하면서, 모든서비스에 일괄설정을하면 비효율적임.

원하는 서비스를 골라서 request전에, 혹은 response전에 인증 보안과같은 설정을 줄수있음.

[출처] 유튜브_뉴렉처JSP&서블릿강의 20강

  필터설정방법1. web.xml에 필터&매핑설정하여 필터경로와 필터이름 설정

  필터설정방법2. 만들어놓은 filter.java파일에 @WebFilter("/*")로 어노테이션 설정

 

[출처] 유튜브_뉴렉처JSP&서블릿강의 20강

필터.java파일에는 filter 인터페이스를 add하여 저장해준다

필터는 톰캣서버가 시작되면 동작을하고, 그다음부턴 설정해놓은때에 따라 동작한다.

(아래와 같이 "hello filter"가 톰캣서버 시작되면 2회 콘솔에 찍힌다)

[출처] 유튜브_뉴렉처JSP&서블릿강의 20강

필터체인으로 필터의 흐름을 넘기고, 그 response가 돌아오면 다음줄이 진행

728x90

'Stack > JSP & Servlet' 카테고리의 다른 글

JDBC프로그래밍을 하기위해선 "타임존"설정이 필수!  (1) 2020.11.24
JSP로 JDBC프로그래밍 하기  (0) 2020.11.23
Servlet용어정리  (0) 2020.11.04
커넥션풀(DBCP)  (0) 2020.10.29
preparedStatement객체의 용도  (0) 2020.10.29
Comments