본문 바로가기

교재 실습249

15. 서블릿 만들기 (1) web03 프로젝트에서 자바 패키지 'lesson03.servlets'에 javax.servlet.Servlet 인터페이스를 구현한 'HelloWorld'클래스를 만든다. package lesson03.servlets; import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class HelloWorld implements Servlet { //Servlet 구현 : 서블릿 클래스.. 2022. 1. 9.
14. 웹 프로젝트 준비 프로젝트의 이름은 'web03', 웹 애플리케이션을 실행할 서버(Target runtime)로 'Apache Tomcat v8.5', 서블릿 개발의 목표 버전을 '3.1'로 지정했다. 여기서 지정한 서블릿 개발 목표 버전을 기준으로 이클립스는 소스 코드의 문법을 검사한다. 지정된 버전에 없는 API를 사용하면 오류나 경고 메시지가 출력될 것이다. 1. 웹 애플리케이션 이름을 입력한다. 기본값은 프로젝트 이름이다. 나중에 서버에 자동 배치할 때 이 이름으로 폴더를 만들어 배치한다. 웹 브라우저에서 서블릿 실행을 요청할 때 여기에 지정한 웹 애플리케이션 이름을 URL에서 사용한다. 예시 : http://127.0.0.1(웹 서버 주소):9999(서비스 포트 번호)/web03(웹 애플리케이션 이름)/Servl.. 2022. 1. 8.
13. 서블릿, JSP vs. Java EE vs. WAS - Java EE와 서블릿, JSP Java EE(Java Platform, Enterprise Edition)는 기능 확장이 쉽고, 이기종 간의 이식이 쉬우며, 신뢰성과 보안성이 높고, 트랜젝션 관리와 분산 기능을 쉽게 구현할 수 있는 기술을 제공한다. Java EE 기술 사양은 한 가지 기술을 정의한 것이 아닌 기업용 애플리케이션과 클라우드 애플리케이션 개발에 필요한 여러 가지 복합적인 기술들을 정의하고 모아 놓은 것이다. 기술의 발전과 업무 환경의 변화에 따라 현재도 계속 버전이 올라가며 새로운 기술이 추가되고 있다. Java EE의 하위 기술들 중 서블릿과 JSP를 비롯한 기술들에도 버전이 있다. 참고링크 : https://en.wikipedia.org/wiki/Jakarta_Servlet Jak.. 2022. 1. 8.
12. CGI프로그램과 서블릿 자바에서는 웹 브라우저와 웹 서버를 활용하여 좀 더 쉽게 서버 애플리케이션을 개발할 수 있도록 '서블릿(Servlet)'이라는 기술을 제공한다. 이 서블릿 기술을 이용하여 웹 애플리케이션을 개발하는 것을 '서블릿 프로그래밍'이라고 하는데, 이 '서블릿 프로그래밍'의 핵심은 Servlet 인터페이스를 이해하는 것이다. 먼저 이런 기본 원칙을 배운 뒤 HttpServlet의 사용법을 배워야 한다. 웹 브라우저가 웹 서버에게 실행 요청을 보내고, 웹 서버는 클라이언트가 요청한 프로그램을 찾아서 실행하면 해당 프로그램은 작업을 수행하고 그 결과를 웹 서버에게 돌려준다. 그러면 웹 서버는 그 결과를 HTTP 형식에 맞추어 웹 브라우저에게 보낸다. 이 때 웹 서버와 프로그램 사이의 데이터를 주고받는 규칙을 CGI(.. 2022. 1. 7.
11. 파일 업로드 웹 서버에 바이너리 데이터를 보내도록 고안된 멀티파트 인코딩 방법을 알아본다. 톰캣 서버를 실행한 뒤 http://localhost:9999/web02/MultipartTest.html 링크를 실행한다. MultipartTest.html의 소스를 살펴보면 파일 업로드 POST 요청: Multipart 인코딩 입력폼의 method를 POST으로 지정하고, enctype 속성의 값을 multipart/form-data로 설정합니다. 사진: 설명: 태그의 method 속성을 'post' 이고 enctype 속성이 'multipart/form-data' 인 것을 확인할 수 있다. 태그의 type 속성은 'file' 이다. 입력폼에서 이미지 파일을 추가하고 입력폼에 설명을 적은뒤 추가 버튼을 클릭한다. 이 때 파.. 2022. 1. 6.
10. POST 요청 POST 요청의 데이터 전달 방법을 알아본다. 톰캣 서버를 실행한 뒤 http://localhost:9999/web02/PostTest.html 링크를 실행한다. 태그의 method 속성을 'post'로 하면 POST 요청이 발생한다. POST 요청 1 - 로그인 폼 로그인 폼은 입력값 노출을 방지하기 위해 POST를 사용해야 한다. 아이디: 암호: POST 요청 2 - 계산기 URL에 값이 포함되지 않아서 즐겨 찾기에 추가해도 소용없다. + - * / 로그인 폼에서 아이디와 암호 입력 후 로그인 버튼을 클릭한다. 결과 화면의 주소를 보면 사용자가 입력한 아이디와 암호 값이 보이지 않는데 POST 요청을 보내면 URL에 데이터를 포함하지 않는다. 크롬의 DevTools로 Network 탭에서 HTTP 요.. 2022. 1. 5.
9. GET 요청 HTTP 요청 중 GET요청에 대해 살펴본다. web02 프로젝트를 배치하여 톰캣 서버를 실행한다.이후 http://localhost:9999/web02/GetTest.html 링크를 실행한다. 이렇게 링크 실행 화면이 뜬다. 웹 브라우저 주소창에 URL을 입력하여 서버의 자원을 요청하는 경우 GET 요청이 발생한다. GET 요청의 3가지 3종세트 예시가 보인다. 크롬의 DevTools의 Network 탭에서 요청정보를 확인할 수 있다. GET 요청이 이루어진 것을 확인할 수 있다. 링크를 클릭할 때에도 GET 요청이 발생한다. GetTest.html 링크 화면에서 '구글'링크를 클릭한다. GET 요청 2: 링크를 클릭할 때 구글 페이스북 태그는 GET 요청을 만든다. 크롬의 DevTools의 Netwo.. 2022. 1. 4.
8. HTTP 프로토콜의 이해 (2) 클라이언트와 서버가 주고받는 데이터 형식만 안다면 누구나 클라이언트나 서버를 개발할 수 있다. 간단한 HTTP 클라이언트를 만들었다. package lesson02.client; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintStream; import java.net.Socket; public class SimpleHttpClient { public static void main(String[] args) throws Exception { //1. 소켓 및 입출력 스트림 준비 //Socket socket = new Socket("www.hani.co.kr", 80); Socket socket = ne.. 2022. 1. 3.
7. HTTP 프로토콜의 이해 (1) HTTP 프로토콜은 웹 브라우저와 웹 서버 사이의 데이터 통신 규칙이다. HTTP 프로토콜은 단순히 HTML 페이지나 이미지 파일을 전송하는 차원을 넘어 원격 컴퓨터에 로딩된 함수나 객체의 메소드를 호출할 때도 사용된다. 이 HTTP 프로토콜을 응용하거나 확장한 기술은 SOAP(Simple Object Access Protocol), RESTful(REpresentational State Transfer), webDAV(World Wide Web Distributed Authoring and Versioning), CalDAV 등이 있다. 구글 크롬의 DevTools를 사용하여 웹 브라우저와 웹 서버 사이에 주고받는 데이터를 살펴본다. 요청이나 응답을 처리할 때 참고하라고 알려주는 정보를 헤더라고 한다... 2022. 1. 2.