본문 바로가기
java spring/servlet&jsp

서블릿 1

by 킹차니 2021. 3. 30.

서블릿은 동적으로 문서를 만들어주는 기능을 한다.

클라이언트->서버 과정

 

 

서블릿, jsp공부를 위해 이클립스 EE버전을 설치했다. 이클립스에서 Dynamic 프로젝트로 만들면 톰캣도 깔아주고 다 해준다..

 

 

원래는 url과 매핑을 할 때 web.xml에서 매핑을 해줘야한다.

web.xml

 

근데 어느 버전부터 어노테이션 기반으로 url매핑이 가능해졌다.

그 전에 web.xml의 설정을 바꿔줘야 한다.

저기 사진 부분을 false로 바꿔준다.

 

바꿨다면 @WebServlet 어노테이션으로 url매핑이 가능해진다.

 

또한 우리는 자바 형식으로 보내면 안된다.

브라우저에게

1."UTF-8"인코딩방식으로 보내고(한글을 쓰기위해)  : response.setCharacterEncoding("UTF-8");

2. html형식으로 받고 UFT-8인코딩으로 읽어줘~~ : response.setContentType("text/html charset=UTF-8");

 

요 두가지를 꼭 작성해야한다.

 그렇다면 브라우저는 println함수안의 <br>을 html태그로 인식할 수 있을 것이다.

 

근데 이제 사용자가 요청 request를 해서 그걸 처리하는 방식을 써보자.

즉 사용자가 쿼리스트링으로 hello?cnt=7을 날리면 7번만 반복문을 수행하도록 하는 것이다.

쿼리스트링 받기.

코드가 수정되었다. getParameter는 쿼리를 받는 메소드다. request요청으로 날라온 key:value 쿼리를 받아서 value는 문자열이니까

이를 parseInt해서 정수값으로 변환하여 cnt에 저장하고 이 cnt만큼 안녕을 출력하는 것이다.

결과

 

 

 

하지만 사용자가 쿼리를 안날렸을 수도 있다. 그때 cnt는 null이거나 빈문자열일 수 있다.

이러한 상황을 대비하여 다음의 코드로 수정한다.

여기서는 입력받은 쿼리가 null이거나 빈 문자열이라면 우리가 지정해 놓은 디폴트 cnt=100을 이용하여 100번을 출력하게 하는 로직이다.

 

 

이제는 html파일을 사용하여 더 그럴듯하게 출력횟수를 입력받아 보자. 다음과 같이 webapp디렉토리 아래에 hello.html이라는 파일을 만들고 다음의 코드들을 적는다.

input박스를 통해 입력받는 것이다. 위에서 action의 값과 name의 값이 합쳐져서 url을 만든다.

즉 submit을 누르면 ""hello?cnt=사용자 입력 값""와 같은 URL을 날리게 되는 것이다, 결과를 보자.

20을 입력하고 submit해보자.

결과:

 

 

 

'java spring > servlet&jsp' 카테고리의 다른 글

서블릿, jsp 6  (0) 2021.04.03
서블릿 5( 동적 페이지의 필요성)  (0) 2021.04.01
서블릿4(application, session, cookie)  (0) 2021.04.01
서블릿3(여러 개의 버튼 post보내기)  (0) 2021.03.31
서블릿 2 (post, 필터)  (0) 2021.03.30