- 자바 프로그래밍(eomcs-servlet)
- 서블릿 작성 방법
- HTTP 프로토콜 이해: GET, POST, HEAD 요청
- HttpServlet 클래스 사용법
- URL 인코딩(퍼센트 인코딩) 원리 및 목적
ㄴ ex01 패키지에 Servlet04 라는 이름의 패키지를 생성
Servlet04.java
ㄴ Add default serial version ID 를 선택하여 추가
=>
Servlet04.java
=>
Servlet04.java
=>
Servlet04.java
=>
Servlet04.java
=>
Servlet04.java
Servlet04.java
package eomcs.servlet.ex01;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/ex01/s4")
public class Servlet04 extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("GET 요청 받음!");
resp.setContentType("text/plain;charset=UTF-8");
PrintWriter out = resp.getWriter();
out.println("GET 요청을 받았습니다!");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("POST 요청 받음!");
resp.setContentType("text/plain;charset=UTF-8");
PrintWriter out = resp.getWriter();
out.println("POST 요청을 받았습니다!");
}
}
Postman 설치
=>
=>
ㄴ Download Desktop App 선택
=>
ㄴ Mac Apple Chip 선택 (MacBook Air M1)
=>
ㄴ Postman 설치
=>
=>
=>
ㄴ Workspaces 탭 선택
=>
ㄴ My Workspace 선택
=>
ㄴ [+] 버튼을 선택하여 Create new collection 을 실행
=> 새로운 컬렉션 생성
=>
ㄴ 컬렉션 이름을 servlet-app 으로 변경해주기
=>
ㄴ servlet-app 컬렉션의 [v] 선택하여 Add a request 선택하기
=>
ㄴ GET 방식 테스트 추가하기
ㄴ /ex01/s4 로 설정해주기
=>
ㄴ 경로를 localhost:8888/ex01/s4 라고 설정하기
ㄴ [Save] 버튼 선택하여 저장하기
=>
=>
ㄴ 서버 start 하기
=>
ㄴ [Send] 선택 시 GET 요청을 받음
=>
=>
=>
ㄴ POST 요청 테스트 완료
ㄴ Add request 선택
=>
ㄴ /ex01/s4 로 설정해주기
=>
ㄴ HEAD 로 설정하고, 경로를 localhost:8888/ex01/s4 라고 설정하기
=>
=>
ㄴ HEAD 는 GET 으로 요청됨
ㄴ PUT 로 설정하고, 경로를 localhost:8888/ex01/s4 라고 설정하기
ㄴ /ex01/s4 로 설정해주기
=>
ㄴ 405 에러 발생
=>
ㄴ 변화 없음을 확인
Charles Proxy 다운로드
=>
=>
=>
ㄴ macOS (dmg, 54.6MB) 선택
=>
ㄴ [Agree] 선택
=>
ㄴ Charles 를 Applications 로 drag & drop 하기
=>
=>
=>
=>
ㄴ Proxy Setting... 선택
=>
ㄴ 포트번호가 겹치므로 Charles Proxy 의 포트는 9999 로 설정해주기
=>
ㄴ maxOS 는 macOS Proxy 를 체크해줘야 함
=>
ㄴ Proxy 테스트 시 localhost 로 하면 안 되고, 실제 ip 주소를 입력해야 함
=>
ㄴ 보조 프로그램 설치
ㄴ 포스트맨에서 GET 요청하기
=>
ㄴ POST 요청을 Charles Proxy 를 이용해 확인하기
ㄴ Raw 를 선택하여 날것 그대로 보기
ㄴ 포스트맨에서 POST 요청하기
=>
ㄴ POST 요청을 Charles Proxy 를 이용해 확인하기
ㄴ 포스트맨에서 Params 를 입력 후 [Send] 선택
=>
ㄴ Params 를 입력한 GET 요청을 Charles Proxy 를 이용해 확인하기
ㄴ POST 요청으로 값 전달 테스트를 하려면 Body 탭에서 x-www-form-urlencoded 를 선택하여 추가한 후 [Send] 선택하기
=>
ㄴ Params 를 입력한 GET 요청을 Charles Proxy 를 이용해 확인하기
Servlet04.java
package eomcs.servlet.ex01;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/ex01/s4")
public class Servlet04 extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("GET 요청 받음!");
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out = resp.getWriter();
out.println("GET 요청을 받았습니다!");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("POST 요청 받음!");
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out = resp.getWriter();
out.println("POST 요청을 받았습니다!");
}
}
ㄴ plain -> html 로 변경해주기
=>
ㄴ Params 를 입력한 GET 요청을 Charles Proxy 를 이용해 확인하기
=>
ㄴ Params 를 입력한 POST 요청을 Charles Proxy 를 이용해 확인하기
ㄴ 포스트맨을 이용하여 HEAD 요청 해보기
=>
ㄴ Params 를 입력한 HEAD 요청을 Charles Proxy 를 이용해 확인하기
ㄴ 가각간 입력 후 [Send] 선택
=>
ㄴ GET 요청을 Charles Proxy 를 이용해 확인하기
ㄴ 한글 -> 퍼센트 인코딩 되어 전달됨
ㄴ ABCabc!@#$&? 가각간 입력 후 GET 요청하기
=>
ㄴ GET 요청을 Charles Proxy 를 이용해 확인하기
ㄴ servlet-app/src/main/webapp 경로에 ex04 폴더 생성
ㄴ eomcs-java/eomcs-servlet/app/src/main/webapp 에 있는 실습 자료 복사
=>
ㄴ bitcamp-study/app/src/main/webapp 위치에 붙여넣기
=>
ㄴ /Users/yangsoyul/git/eomcs-java/eomcs-servlet/app/src/main/java/com/eomcs/web 경로의 ex04 폴더 복사
=>
ㄴ /Users/yangsoyul/git/bitcamp-study/servlet-app/app/src/main/java/eomcs/servlet 경로에 붙여넣기
=>
=>
ㄴ 각 파일 모두 패키지 변경해주기
=>
ㄴ 서버 start 해주기
=>
=>
test01.html
ㄴ /web 제거
=>
test01.html
ㄴ 경로 위와 같이 변경해주기
=>
=>
=>
=>
ㄴ form 에 값 입력
=>
test02.html
=>
=>
=>
=>
ㄴ 값 입력 후 [전송] 선택
=>
=>
ㄴ Charles Proxy 로 확인
=> name=%ED%99%8D%EA%B8%B8%EB%85%99&age=20
ㄴ POST 요청은 Payload 탭에서 전달된 값 확인 가능