일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 컬렉션 타입
- 환경설정
- oracle
- 집합_SET
- 오라클
- 예외미루기
- 자동차수리시스템
- exception
- 다형성
- 인터페이스
- NestedFor
- EnhancedFor
- 제네릭
- 생성자오버로드
- 정수형타입
- cursor문
- 예외처리
- 어윈 사용법
- GRANT VIEW
- Java
- 추상메서드
- 객체 비교
- abstract
- 한국건설관리시스템
- 사용자예외클래스생성
- 대덕인재개발원
- 메소드오버로딩
- 참조형변수
- 컬렉션프레임워크
- 자바
- Today
- Total
목록전체 글 (597)
거니의 velog
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cqGzWF/btsrUnA4t66/LcHk5GtPtrA9uOfzjw8Uw0/img.png)
1. 태그 이용해 서블릿에 요청하기 * JSP, ASP, PHP가 나오기 전에는 HTML, CSS, 자바스크립트를 이용해 웹 프로그램을 만들었다. 서블릿과 JSP는 이러한 HTML, CSS, 자바스크립트 같은 기존의 것을 버리는 것이 아니라 여기에 자신의 기능을 추가하여, 즉 서로 연동하여 동작한다. 특히 사용자의 요청은 HTML 태그나 자바스크립트로부터 전송 받아서 처리한다. * 클라이언트 웹 브라우저에서 서블릿에 요청하는 방법은 다음과 같다. * 웹 브라우저에서 여러 가지 입력 서식을 이용해 전송을 클릭하면 사용자가 입력한 데이터가 서블릿으로 전송된다. 그러면 서블릿은 여러 가지 메서드를 이용해서 전송된 데이터를 받아 온다. 2. 태그의 여러 가지 속성 * 사용자가 자신의 ID와 비밀번호를 입력한 후..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/p8oZZ/btsrZxiAIan/fA6kiqhfEIGVAs5PXJxmbK/img.png)
* 톰캣과 같은 WAS(Web Application Server, 웹 애플리케이션 서버)가 처음 나왔을 때 웹 브라우저 요청을 스레드 방식으로 처리하는 기술이 바로 서블릿이었다. 모든 웹 프로그램은 이 서블릿의 기능을 뼈대로 동작한다. 따라서 이 내용을 잘 이해하고 나면 전체 웹 프로그램이 어떤 식으로 동작하는지 쉽게 이해할 수 있다. 그 외의 기능들은 주요 서블릿 기능이 효율적으로 동작하기 위해 제공하는 세부 기능이라 할 수 있다. 1. 서블릿 기본 기능 수행 과정 * 다음은 서블릿이 수행하는 세 가지 주요 기능이다. 요약하면 클라이언트로부터 요청을 받아 비즈니스 로직을 처리하고, 그 결과를 다시 클라이언트에 돌려주는 과정이다. (1) 클라이언트로부터 요청을 받는다. (2) 데이터베이스 연동과 같은 비..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b7TbLp/btsrR7r5BqW/XcmnKoKs9R1kjmEXQGHbw0/img.png)
* 앞서 살펴보았듯이 여러 서블릿을 web.xml에 설정할 경우 복잡해진다는 단점이 있다. 따라서 각 서블릿 클래스에 기호(@)를 이용해서 서블릿 표시를 해주면 훨씬 가독성이 좋아진다. 이처럼 소스 코드에 직접 기능을 설정하는 방법을 애너테이션(annotation)이라고 한다. * 톰캣 7 버전부터는 서블릿 매핑을 web.xml 외에 애너테이션을 이용해 서블릿 클래스에 직접 설정할 수 있는 기능이 추가되었다. 두 가지 방법 다 많이 사용되지만 실제로는 애너테이션을 이용하는 방법을 많이 선호한다. 1. 애너테이션을 이용한 서블릿 매핑 * 애너테이션을 이용해 서블릿 매핑을 하려면 @WebServlet을 이용하면 된다. 그리고 애너테이션이 적용되는 클래스는 반드시 HttpServlet 클래스를 상속받아야 한다..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/oOxM5/btsrTOrZwnI/IPtASjBFmT7GaGxEdrJcqk/img.png)
1. 컬렉션 프레임워크 2. 스레드(동시에 여러 개의 작업을 실행할 수 있는 기술) 3. 자바 입출력 – 파일에 데이터 저장하고 읽어오는 기술 4. 네트워크 – 통신으로 다른 컴퓨터와 데이터를 주고 받는 기술, 데이터베이스와 연동해서 작업. 마이바티스 사용. 5. 웹 서블릿. 6. 중간 프로젝트 시작 List, Set, Map 등 100이란 데이터 하나를 저장해서 쓰려면? 변수 선언해야 함. 숫자가 여러 개가 있다면? 한 묶음으로 저장하기 위해서는 배열을 사용. 배열의 단점? 배열은 크기를 한 번 정하면 변동 불가. 이러한 단점을 상쇄시키기 위해서 만들어진 것이 컬렉션. 특히 이 중에서도 List가 배열을 대신해서 쓰는 객체. 컬렉션은 쉽게 생각하면 많은 데이터를 저장하기 위한 객체. Set도 배열과 비..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bu4XE9/btsr3dyiNIC/z26pKkJOMt3RqvBPq8WfmK/img.png)
[test1.html] Hello~~ 안녕하세요~ html 입니다~ css/javascript를 배웁니다. jquery와 ajax도 배웁니다. html : 문서의 내용을 구성 css : 문서의 스타일을 지정. 예쁘게 꾸미기 javascript : 문서의 동작을 구현 jquery : javascript의 라이브러리 / js를 편리하게 작성 ajax : 비동기 통신을 위한 전송 [style.css] @charset "utf-8"; @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;500;700&display=swap'); * { margin: 0; padding: 0; box-sizing: border-box; } ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/qMY1L/btsrSL3uK4R/5W5liNZJecUYCpHSTbAk71/img.png)
* 클라이언트 1이 요청하면 톰캣은 FirstServlet이 메모리에 로드되어 있는지 확인한다. 최초의 요청이므로 init() 메서드를 호출하여 FirstServlet 인스턴스를 메모리에 로드한다. 그런 다음 doGet()이나 doPost() 메서드를 호출하여 서비스를 한다. * 클라이언트 2가 다시 동일한 서블릿을 요청하면 톰캣은 다시 FirstServlet이 메모리에 로드되어 있는지 확인한다. 이번에는 메모리에 있는 것이 확인되므로 바로 doGet()이나 doPost() 메서드를 호출하여 서비스를 한다. * 다음은 브라우저의 다른 탭에서 동일한 요청을 했을 때의 결과이다. * 톰캣을 실행한 후 브라우저로 요청하여 출력 결과를 확인해 보자. 맨 처음 브라우저에서 /first로 요청하면 최초의 요청이므로..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cM2koD/btsrRRo7Tqg/lrkcJXK1tWsOv5AHrh8nn0/img.png)
7. 다수의 서블릿 매핑하기 * 온라인 쇼핑몰 같은 경우 대부분 상품 조회, 주문, 회원 관리 등의 기능으로 이루어져 있다. 만약 이런 기능을 모두 서블릿 하나에 만들어서 제공한다면 소스가 복잡해져 관리하기 불편할 것이다. 따라서 일반적인 웹 애플리케이션은 각 기능에 대한 서블릿을 따로 만들어서 서비스를 제공한다. 즉, 프로젝트에서 여러 개의 서블릿을 만들어 사용한다. * 이번에는 다른 서블릿으로 SecondServlet.java로 추가해 본다. package sec01.ex01; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cvq4fK/btsrNz9pr64/xMl46OETA6vScwxk5X8eMk/img.png)
* 웹 페이지의 문제점을 보완하여 나온 것이 동적 웹 페이지를 구현하는 JSP라고 했지만, 사실 동적 웹 페이지를 처음으로 구현한 방법은 JSP가 아닌 서블릿(Servlet, 자바로 만든 CGI 프로그램)을 이용해 구현했다. * 그리고 이 서블릿의 문제점을 보완하여 나온 것이 JSP이다. JSP의 많은 기능은 서블릿의 기능을 따르므로 서블릿을 먼저 이해하고 나면 JSP를 좀 더 수월하게 이해할 수 있다. 실제 웹 어플리케이션을 개발할 때도 JSP와 서블릿이 각자의 고유한 역할을 나누어 기능을 구현하고 있다. 1. 서블릿이란? * 서블릿은 서버 쪽에서 실행되면서 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스이다. 서블릿은 자바로 작성되어 있으므로 자바의 일반적인 특징을 모두 가진다. 하지..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cp7DBQ/btsrRSt2BLI/pK3bjFkk4j99bJodrrsQk1/img.png)
* 이번에는 이클립스에서 개발한 웹 애플리케이션을 실제 사용자에게 서비스하기 위해 배치(deploy)하는 방법을 알아보자. * 배치란? - 이클립스에서 개발할 경우 개발자 입장에서는 자신이 만든 기능이 정상적으로 실행되는지 확인하기 위해 빈번하게 톰캣을 재실행하곤 한다. 이런 개발 과정을 거쳐 애플리케이션이 완성되면 이제는 실제 사용자들에게 서비스를 해야 한다. 그 단계에서는 이클립스에 등록된 톰캣에서 실행하는 것은 의미가 없다. 실제로 리눅스나 유닉스 서버에 설치된 톰캣에서 실행해야 한다. 그렇게 하려면 이클립스에서 개발한 웹 애플리케이션 예제 소스 전체를 실제로 서비스하는 톰캣으로 이동하여 실행해야 한다. 이 과정을 "배치(deploy)한다"고 한다. 즉, 웹 애플리케이션을 실제로 서비스한다는 의미다..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bgqdBG/btsrBZVZOry/WIKxwGuYYpEMmX0cYu6Zak/img.png)
1. 이클립스에서 웹 프로젝트 생성 * 이클립스에서는 한 개의 프로젝트가 한 개의 웹 어플리케이션이다. 그리고 프로젝트 이름이 바로 웹 애플리케이션 이름이다. (1) 이클립스를 열고 Project Explorer 영역에서 마우스 오른쪽 버튼을 클릭한 후 New > Dynamic Web Project를 선택한다. (2) 프로젝트 이름에 webShop이라고 입력한 후 Next를 클릭한다. (3) 이클립스에서 지정한 기본값 그대로 두고 Next를 클릭. (4) web.xml을 생성할 것인지 묻는 체크박스에 체크한 후 Finish를 클릭. (5) Project Explorer에 webShop 프로젝트가 생성된 것을 확인할 수 있다. 2. 이클립스에서 HTML 파일 생성 1. 프로젝트 하위 메뉴에서 WebCont..