* 본 글은 [뉴렉처]의 Servlet&JSP 프로그래밍 강의를 듣고 정리한 글입니다.
2020 Servlet&JSP 프로그래밍
www.youtube.com
처음이자 마지막으로 동적인 페이지를 서블릿으로 직접 만들기
- 다음부터는 JSP로 만듦
- service( )메소드에 동적인 페이지를 만드는 코드 넣기
- GET 요청을 처리하는 doGet( )메소드와 POST 요청을 처리하는 doPost( )메소드가 있음
- 기존 서블릿과 동적 페이지를 만드는 서블릿을 하나로 합침
동적인 페이지(서버 페이지) 만들기 - CalcPage.java
- 1) Calc3.java에서 출력을 위한 설정만 두고 나머지는 다 지움
- 출력을 위한 설정
- response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
- response.setContentType("text/html; charset=UTF-8");
- 출력을 위한 설정
- 2) response가 가지고 있는 getWriter( )메소드를 이용해 PrintWriter 객체 out 생성
- PrintWriter out = response.getWriter( );
- 3) CalcPage.java에 calc3.html의 코드를 모두 붙여넣기
- 서블릿에 갑자기 html 코드를 넣었으니 오류 발생
- 4) 오류를 해결하기 위해 PrintWriter 객체 out으로 문자열 출력 전용 메소드 write( )를 html 코드 모든 줄에 붙임
- html 코드 줄 앞에는 out.write(” 를, 뒤에는 "); 를 붙이면 됨
- out.write(” 를 먼저 붙이면 이클립스가 자동으로 들여쓰기를 해서 코드 형태를 이상하게 만듦
out.write(”을 붙이는 작업보다 "); 를 붙이는 작업을 먼저 하는 게 좋음
- out.write(” 를 먼저 붙이면 이클립스가 자동으로 들여쓰기를 해서 코드 형태를 이상하게 만듦
- html 코드 줄 앞에는 out.write(” 를, 뒤에는 "); 를 붙이면 됨
- 5) 쌍따옴표 안에 쌍따옴표가 들어가니까 범위가 깨져서 오류 발생
- 안쪽에 들어가는 쌍따옴표 안에 문자열이 들어간다는 걸 표시하기 위해 \ 사용
- 변경 전 - out.write("<meta charset="UTF-8">");
변경 후 - out.write("<meta charset=\"UTF-8\">"); - 요령) 바꾸고 싶은 값을 선택하고 Ctrl+F를 누르면 아래와 같은 창이 떠서 값을 일괄적으로 바꿀 수 있음
- 6) 서블릿에서 html 코드 안에 연산식을 넣으면 연산식을 계산한 결과를 산출 > 동적인 페이지의 필요성이 여기서 발생
- 문자열 출력 전용 메소드 write( ) 대신, 여러 종류의 데이터를 다양한 서식에 맞춰 출력하는 printf( )메소드 사용
- printf( )메소드에서 f는 fomatted (서식화된 출력을 지원한다는 의미)
- 서블릿에 넣을 코드: out.printf("<td class = \"output\" colspan=\"4\">%d</td>", 3+4);
- 문자열 출력 전용 메소드 write( ) 대신, 여러 종류의 데이터를 다양한 서식에 맞춰 출력하는 printf( )메소드 사용
printf( ) | |
System.out.printf ("출력 서식", 출력할 내용); | |
%d | 정수형 출력 |
%s | 문자열 출력 |
%f | 실수형 출력 |
%c | 문자형 출력 |
%n | 줄 바꿈 |
%b | boolean 출력 |
동적인 페이지(서버 페이지) 만들기 - CalcPage.java 실행 결과
- CalcPage.java 결과
- calc3.html과 화면에 출력되는 결과는 같음
- But, URL이 /calcpage로 다름
- calc3.html은 URL이 /calc3.html
- 비교) calc3.html 결과
- calc3.html의 태그에 연산식을 넣으면 그냥 연산식이 출력됨
- <td class = "output" colspan="4">3 + 4</td>
- calc3.html의 태그에 연산식을 넣으면 그냥 연산식이 출력됨
'☕ Java 웹 프로그래밍 > Servlet & JSP' 카테고리의 다른 글
[Servlet&JSP] 쿠키 삭제하기 (0) | 2023.06.03 |
---|---|
[Servlet&JSP] 계산기 서블릿 완성하기 (0) | 2023.06.03 |
[Servlet&JSP] 동적인 페이지(서버 페이지)의 필요성 (0) | 2023.06.02 |
[Servlet&JSP] 서버에서 페이지 전환하기(redirection) (0) | 2023.06.02 |
[Servlet&JSP] Application, Session, Cookie 정리 (0) | 2023.06.01 |