서블릿은 동적으로 문서를 만들어주는 기능을 한다.
서블릿, jsp공부를 위해 이클립스 EE버전을 설치했다. 이클립스에서 Dynamic 프로젝트로 만들면 톰캣도 깔아주고 다 해준다..
원래는 url과 매핑을 할 때 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을 날리게 되는 것이다, 결과를 보자.
결과:
'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 |