JSP 수업 4일차인데 수업이 빨라서 개념이 자꾸 헷갈리고 정확하게 잡히지 않아서 정리한 내용을 토대로 헷갈리지 않게 따로 정리하고자 포스팅을 한다.
1. GET 방식과 POST 방식
1) GET 방식
- GET 방식으로 전송하면 URL에 파라미터 값이 날아간다.
- ? 뒤에 날아가는 것을 쿼리 스트링이라고 함
https://yelin1217.tistory.com/manage/newpost/?type=post&returnURL=%2Fmanage%2Fposts%2F
2) POST 방식
- POST 방식으로 전송하면 데이터의 영역으로 날가아며, URL에 보여지지 않는다.
3) GET 방식과 POST 방식의 차이점
- GET 방식은 전송할 수 있는 파라미터 값의 길이 제한이 있지만, POST 방식은 데이터 영역을 이용하기 때문에 데이터 전송에 제한이 없다.
- 보안적으로도 GET 방식은 URL에 다 노출되기 때문에 취약하지만 POST는 안전하다.
2. redirect와 forward
1) redirect
- 리다이렉트는 웹 서버가 웹 브라우저에게 다른 페이지로 이동하라고 응답하는 기능
- 새로운 페이지에서 request와 response 객체가 새롭게 생성되어짐 즉, 한 번의 요청이 있을 때 마다 새로운 요청과 응답이 생성되어짐
- 클라이언트가 요청을 하면 서블릿 또는 JSP를 거쳤다가 다시 돌아와서 다른 서블릿 또는 JSP에게 요청.(URL이 변경 되어짐) 즉, 요청을 한 번 갔다가 응답을 받고 그 응답된 URL로 다시 요청하는 것
- 리다이렉트 할 때는 한글 파라미터는 꼭 반드시 인코딩을 해야한다.
2) forward
- 클라이언트가 한 번 더 요청을 보내도록 하는 리다이렉트와는 다르게 포워드는 서버 내부에서 일어나는 호출
- 서블릿 또는 JSP에서 포워딩 코딩으로 서버에서 가져와 요청한 URL(request)에 뿌려줌(서버 자체 동작으로 URL이 변경되지 않음)
- 포워드는 request와 response가 1개이므로 새롭게 생성되지 않고 유지 됨. 즉, request와 response 객체를 공유함
- 포워드는 request하면 서버 내에서 포워딩을 해주고 그걸 다른 URL에 response해서 웹 브라우저에 띄우기 때문에 요청한 URL이 보여지고 출력되어지는 것은 response하는 URL의 웹 브라우저가 보여짐
비유)
리다이렉트는 공연 입장권을 사서 갔는데 다른 공연이라고 안내를 해주어서 다시 입장권을 산 후에 공연을 보는 것
포워드는 공연 입장권을 사서 갔는데 입장권에 해당 하는 공연을 보여주는 것
3. JSP와 Servlet
- JSP와 Servlet 모두 java 언어를 사용하는 웹 기술로 기능은 동일
1) JSP
- jasper로 인하여 서블릿(.java 파일) 생성하여 자바 코드를 생성하고 자바 코드를 컴파일하여 .class 파일 생성하여 서블릿 클래스가 되어짐
- HTML 안에 java 코딩을 하는 것(스크립트릿으로 자바 코딩을 하고 표현식이나 EL로 출력)
2) Servlet
- 서블릿은 서블릿 규약을 따르는 자바 클래스를 선언하여 자바 코드를 생성하고 자바 코드를 컴파일한 후에 .class 파일이 생성 되어짐
- 서블릿을 등록하기 위해서는 web.xml 파일 또는 @WebServlet 어노테이션으로 서블릿과 URL 간의 매핑 작업을 통해 서블릿 클래스를 요청할 때 요청URL로 요청하여 서블릿을 호출
- Tomcat과 같은 웹 서버를 실행하여 요청URL를 통해서 서블릿이 응답
- java 안에 HTML 작성(메서드를 통해 결과를 가져옴)
'TIL > View Template' 카테고리의 다른 글
[SIST] JSP_days05_페이지 모듈화 (0) | 2022.06.20 |
---|---|
[SIST] JSP_days05_에러 처리 (0) | 2022.06.20 |
[SIST] JSP_days04 (0) | 2022.06.18 |
[SIST] JSP_days04_급여 등급에 해당하는 사원 정보를 가져와서 아코디언 / 탭 형식으로 출력하는 예제(+JSTL 맛보기) (0) | 2022.06.18 |
[SIST] JSP_days04_부서 선택시 해당 부서의 사원 정보를 테이블로 출력하는 예제 (0) | 2022.06.18 |