일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 사용자예외클래스생성
- 집합_SET
- oracle
- NestedFor
- 자동차수리시스템
- 메소드오버로딩
- 다형성
- 어윈 사용법
- 컬렉션 타입
- Java
- 생성자오버로드
- 참조형변수
- 컬렉션프레임워크
- 한국건설관리시스템
- exception
- 오라클
- 객체 비교
- 예외미루기
- abstract
- 대덕인재개발원
- 환경설정
- 추상메서드
- 자바
- 예외처리
- 정수형타입
- cursor문
- 제네릭
- GRANT VIEW
- 인터페이스
- EnhancedFor
- Today
- Total
목록Java_Servlet (26)
거니의 velog
1. 현재 /WebContent 위치에 실습용 HTML 파일을 따로 저장하는 폴더를 만들자. WebContent 폴더를 선택하고 마우스 오른쪽 버튼을 클릭 > New > Folder를 선택한다. 2. 폴더 이름을 test01로 입력한 후 폴더가 생성되었는지 확인한다. 1. 실습 예제 (1) : 서블릿에 로그인 요청 시 유효성 검사하기 * 문제 : ID를 정상적으로 입력했을 떄는 로그인 메시지를 표시하고, ID를 입력하지 않았을 때는 다시 로그인하라는 메시지를 표시하도록 작성하시오. 1. test01 폴더에 login.html을 만들고 다음과 같이 작성한다. 아이디 : 비밀번호 : 로그인 다시 입력 2. LoginTest 클래스를 다음과 같이 작성한다. ID나 비밀번호를 제대로 입력하지 않으면 오류 메시지..
* 웹 사이트에 로그인할 때 ID나 비밀번호를 입력하지 않고 로그인하면 오류 메시지가 출력된다. 앞에서는 태그에서 바로 서블릿으로 데이터를 전송했지만 전송 전에 로그인하면 ID와 비밀번호 입력 유무 체크하기처럼 전송 데이터에 대해 유효성 검사를 하는 경우가 많다. 이런 기능은 자바스크립트로 구현하므로 이번에는 자바스크립트로 서블릿에 요청하는 방법을 알아보자. 1. 다음과 같이 sec03.ex03 패키지에 LoginServlet5 클래스를 생성하고 login2.html을 추가로 생성한다. 2. 다음과 같이 login2.html을 작성한다. 자바스크립트 함수에서 태그에 접근하여 값 입력 여부를 체크한 후 action 속성에 전송할 서블릿 이름을 지정한다. 그런 다음 submit() 함수를 호출하여 서블릿으로..
* 웹 프로그램에서는 GET 방식과 POST 방식을 혼합해서 많이 사용한다. 이 때 각 방식마다 일일이 구분해서 구현해야 한다면 불편할 것이다. 이번에는 전송된 방식으로 doGet()이나 doPost() 메서드로 처리한 후 다시 doHandle()을 호출해서 모든 기능을 구현하는 예제를 실습해 보자. 1. 앞에서 실습한 login.html을 다음과 같이 수정한다. GET 방식으로 로그인하기 위해 method는 get으로, action은 login4로 수정한다. 2. sec03.ex02 패키지에 LoginServlet4 서블릿을 만들 때 doGet()과 doPost()를 모두 추가한다. 3. LoginServlet4 클래스를 다음과 같이 작성한다. doGet()과 doPost() 메서드에서 doHandle..
1. GET/POST 전송 방식 * 웹 브라우저에서 서블릿으로 전송하는 방법은 크게 GET 방식과 POST 방식이 있다. 이전에 작성한 환율 계산기 결과 화면을 다시 보면? * 주소창을 자세히 보면 물음표(?) 뒤에 입력된 값, 외화 종류 그리고 요청을 나타내는 문자열이 서블릿 매핑 이름 뒤에 붙어서 전송된다. 이렇게 URL 주소에 데이터를 붙여서 전송하는 방식을 GET 방식이라고 한다. 그런데 로그인 창에서 입력한 ID와 비밀번호를 이런 식으로 보이게 전송하면 개인 정보가 유출될 가능성이 높다. 이처럼 GET 방식으로 데이터를 전송할 경우에는 전송하는 데이터가 노출되므로 보안에 취약하다. 반면에 POST 방식은 전송하는 데이터를 숨겨서 전송하므로 보안성이 좋다. * 즉, GET 방식은 보안과 관련 없는..
* 이번에는 서블릿이 처리한 결과를 클라이언트에게 응답하는 기능을 알아보자. (1) doGet()이나 doPost() 메서드 안에서 처리한다. (2) javax.servlet.http.HttpServletResponse 객체를 이용한다. (3) setContentType()을 이용해 클라이언트에게 전송할 데이터 종류(MIME-TYPE)를 지정한다. (4) 클라이언트(웹 브라우저)와 서블릿 통신은 자바 I/O 스트림을 이용한다. * 서블릿의 응답 처리는 doGet()이나 doPost() 메서드의 두 번째 매개변수인 HttpServletResponse 객체를 이용하여 처리한다. 그리고 웹 브라우저와 서블릿의 응답 과정은 자바 I/O 의 기능인 스트림을 이용하여 이루어진다. 1. MIME-TYPE * 우리가 ..
1. 태그 이용해 서블릿에 요청하기 * JSP, ASP, PHP가 나오기 전에는 HTML, CSS, 자바스크립트를 이용해 웹 프로그램을 만들었다. 서블릿과 JSP는 이러한 HTML, CSS, 자바스크립트 같은 기존의 것을 버리는 것이 아니라 여기에 자신의 기능을 추가하여, 즉 서로 연동하여 동작한다. 특히 사용자의 요청은 HTML 태그나 자바스크립트로부터 전송 받아서 처리한다. * 클라이언트 웹 브라우저에서 서블릿에 요청하는 방법은 다음과 같다. * 웹 브라우저에서 여러 가지 입력 서식을 이용해 전송을 클릭하면 사용자가 입력한 데이터가 서블릿으로 전송된다. 그러면 서블릿은 여러 가지 메서드를 이용해서 전송된 데이터를 받아 온다. 2. 태그의 여러 가지 속성 * 사용자가 자신의 ID와 비밀번호를 입력한 후..
* 톰캣과 같은 WAS(Web Application Server, 웹 애플리케이션 서버)가 처음 나왔을 때 웹 브라우저 요청을 스레드 방식으로 처리하는 기술이 바로 서블릿이었다. 모든 웹 프로그램은 이 서블릿의 기능을 뼈대로 동작한다. 따라서 이 내용을 잘 이해하고 나면 전체 웹 프로그램이 어떤 식으로 동작하는지 쉽게 이해할 수 있다. 그 외의 기능들은 주요 서블릿 기능이 효율적으로 동작하기 위해 제공하는 세부 기능이라 할 수 있다. 1. 서블릿 기본 기능 수행 과정 * 다음은 서블릿이 수행하는 세 가지 주요 기능이다. 요약하면 클라이언트로부터 요청을 받아 비즈니스 로직을 처리하고, 그 결과를 다시 클라이언트에 돌려주는 과정이다. (1) 클라이언트로부터 요청을 받는다. (2) 데이터베이스 연동과 같은 비..
* 앞서 살펴보았듯이 여러 서블릿을 web.xml에 설정할 경우 복잡해진다는 단점이 있다. 따라서 각 서블릿 클래스에 기호(@)를 이용해서 서블릿 표시를 해주면 훨씬 가독성이 좋아진다. 이처럼 소스 코드에 직접 기능을 설정하는 방법을 애너테이션(annotation)이라고 한다. * 톰캣 7 버전부터는 서블릿 매핑을 web.xml 외에 애너테이션을 이용해 서블릿 클래스에 직접 설정할 수 있는 기능이 추가되었다. 두 가지 방법 다 많이 사용되지만 실제로는 애너테이션을 이용하는 방법을 많이 선호한다. 1. 애너테이션을 이용한 서블릿 매핑 * 애너테이션을 이용해 서블릿 매핑을 하려면 @WebServlet을 이용하면 된다. 그리고 애너테이션이 적용되는 클래스는 반드시 HttpServlet 클래스를 상속받아야 한다..
* 클라이언트 1이 요청하면 톰캣은 FirstServlet이 메모리에 로드되어 있는지 확인한다. 최초의 요청이므로 init() 메서드를 호출하여 FirstServlet 인스턴스를 메모리에 로드한다. 그런 다음 doGet()이나 doPost() 메서드를 호출하여 서비스를 한다. * 클라이언트 2가 다시 동일한 서블릿을 요청하면 톰캣은 다시 FirstServlet이 메모리에 로드되어 있는지 확인한다. 이번에는 메모리에 있는 것이 확인되므로 바로 doGet()이나 doPost() 메서드를 호출하여 서비스를 한다. * 다음은 브라우저의 다른 탭에서 동일한 요청을 했을 때의 결과이다. * 톰캣을 실행한 후 브라우저로 요청하여 출력 결과를 확인해 보자. 맨 처음 브라우저에서 /first로 요청하면 최초의 요청이므로..
7. 다수의 서블릿 매핑하기 * 온라인 쇼핑몰 같은 경우 대부분 상품 조회, 주문, 회원 관리 등의 기능으로 이루어져 있다. 만약 이런 기능을 모두 서블릿 하나에 만들어서 제공한다면 소스가 복잡해져 관리하기 불편할 것이다. 따라서 일반적인 웹 애플리케이션은 각 기능에 대한 서블릿을 따로 만들어서 서비스를 제공한다. 즉, 프로젝트에서 여러 개의 서블릿을 만들어 사용한다. * 이번에는 다른 서블릿으로 SecondServlet.java로 추가해 본다. package sec01.ex01; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet..