일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 타임존
- 크리스탈레포트이미지
- RequestBody
- EC@
- fcmwebpush
- 오라클오류
- 크리스탈레포트그림
- 서버기본
- 크리스탈리포트이미지
- 스토리지기본
- @RunWith
- ResponseBody
- api문서만들기
- 서블릿용어
- git
- IT기본지식
- Ajax
- JDBC
- 크리스탈레포트누끼
- 추상클래스
- 자료구조
- 타임존설정
- import안될때
- 게시판댓글
- 롬복
- 이미지누끼
- jdbc연결안됨
- 크리스탈리포트이미지삽입
- openaddressing
- lombok
- Today
- Total
엠마의 개발공부일지
서블릿 한장정리 본문
스프링을 공부하는 시점에서, 서블릿에대한 개념정리가 되지않은채 이도저도 아닌상태인것같아
서블릿을 한장으로 정리하여 개념정리를 하고자한다.
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()처리 해줘야한다.
사용자로부터받은 cnt값이 어떤값인지 모르므로 일단 temp값에 넣어두고,
그 값이 null도 아니고, 빈문자("")도 아닌지 확인후,
모든조건이 충족되면 그 값을 적용하여 for문으로 돌린다.
(보통 temp라는 변수대신 가져오는 변수+언더바를 써준다 : cnt_)
보통 아래와같이 WebContent폴더 아래에 html파일에서
a태그로 이어줘도 이동가능하다(이원리는 뭔지 정확히모르겠다)
3-1 GET요청(입력값이 많지않을때)
사용자로부터 값을 입력받을때, 그 값이 url의 일부가된다
form태그의 action + 입력받은값으로 url이 완성된다.
4. POST요청(입력값이 많을때)
각 값을 get.Parameter로 받아서 저장한다.
5. 필터
톰캣은 여러 어플리케이션을 서비스하는 컨테이너임.
여러 서비스를 설정하면서, 모든서비스에 일괄설정을하면 비효율적임.
원하는 서비스를 골라서 request전에, 혹은 response전에 인증 보안과같은 설정을 줄수있음.
필터설정방법1. web.xml에 필터&매핑설정하여 필터경로와 필터이름 설정
필터설정방법2. 만들어놓은 filter.java파일에 @WebFilter("/*")로 어노테이션 설정
필터.java파일에는 filter 인터페이스를 add하여 저장해준다
필터는 톰캣서버가 시작되면 동작을하고, 그다음부턴 설정해놓은때에 따라 동작한다.
(아래와 같이 "hello filter"가 톰캣서버 시작되면 2회 콘솔에 찍힌다)
필터체인으로 필터의 흐름을 넘기고, 그 response가 돌아오면 다음줄이 진행
'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 |