- WWW(World Wide Web)HTTP 프로토콜이다.

- HTTP 프로토콜은 요청 / 응답 방식이다.

- 클라이언트에서 요청시 넘어가는 데이터가 파라미터(Parameter)이다.

- 파라미터는 이름(name)값(value) 로 구성되어 있다.

- 웹서버는 클라이언트의 요청(request) 을 받고 정적인 문서를 응답.

- 컨테이너객체의 생명주기를 관리한다. *프레임워크는 생명중기를 직접 생성한다. 더 자세히 알아보기!

- 생명주기란 객체가 생성되고, 서비스되고, 소멸되는 과정을 말한다. *필요할 때마다 생성, 소멸 메서드를 호출한다.

- 서블릿컨테이너(Servlet Container)Servlet & JSP 의 생명주기를 관리한다.

- 서블릿컨테이너는 HttpServlet 라고도 합니다.

- 서블릿을 만들려면 HttpServlet 클래스상속한다.

- 서블릿과 url 맵핑web.xml 에 설정한다.

- 서블릿의 url 과 똑같은 주소가 요청되면 서블릿 컨테이너는 그 서블릿이 객체로 만들어져 있는지 확인한다.

- => 객체가 없다면 객체를 생성하고, init메서드를 호출한다. 

 

서블릿 생명주기 메서드 종류

- init() 메서드

  • 딱 한 번만 호출
  • 서블릿 컨테이너가 서블릿  객체를 생성한 후 호출
  • 서블릿이 작업하는데 필요한 자원을 준비시키는 코드를 넣는다.

- destory() 메서드

  • 딱 한 번만 호출
  • 웹 어플리케이션의 실행이 멈출 때, 서블릿이 사용한 자원을 초기화시킬 수 있도록 destory() 메서드를 호출한다.
  • 서블릿이 사용한 자원을 초기화 시키는 코드를 넣는다.

- service() 메서드

  • 해당 서블릿에 대해 요청이 들어올 때마다 호출
  • 클라이언트가 요청한 작업을 처리하는 코드를 넣는다.

 

- 각 요청당 요청객체응답객체를 생성한다.

- get 방식이면 doGet 메서드를, post 방식이면 doPost 메서드를 호출한다.

- 브라우저의 주소창에 주소를 입력하거나, a링크 클릭은 get방식이다.

- form 요소에서 메서드(Method) 속성이 post 일 경우 post 방식 호출이다.

- 주소뒤에 '?파라미터명=파라미터값'을 쿼리스트링(Query String) 이라고 한다. *주소창에 보이기 때문에 get방식

- jsp(Java Server Page) 도 사실 서블릿이다. *더 편리하게 사용하기 위해 생겼다.

- 클라이언트가 해당 jsp 페이지를 요청하면 .java 파일이 생성되고 컴파일되어 .class 파일이 생성후 객체가 생성됨

- <%%> 스크립트릿 : 자바코딩을 코딩할 수 있는 곳이다. _jspService() 메서드안에 코딩된다.

- <%=%> 표현식 : HTML영역에 자바의 데이터를 출력한다. outprint() 메서드와 같다.

- <%-- --%> JSP 주석 : .java 파일 생성시 사라진다.

- <%@ %> 지시어 : 클래스 임포트나 페이지의 설정

- <%! %> 선언문 : 클래스 영역 / 멤버 자리이다. *선언문은 메서드나 멤버필드를 쓸 수 있지만 누구나 접근 할 수 있기 때문에 사용을 잘 안한다.

- 커넥션풀은 커넥션을 여러 개 생성하여 모아놓은 것이다.  * META-INF 폴더에 Context.xml 으로 설정


- 웹서비스 개발시 다이나믹 웹 프로젝트(Dynamic Web Project) 로 생성한다.

- 필요한 프레임워크 / 드라이버 / 라이브러리등을 WEB-INF 폴더안의 lib 폴더에 복사한다.

- 필요한 패키지(package) 를 생성 : config / vo / dao / util / mapper 등

- mybatis-config.xml 을 복사 : DataSource 의 JNDI(Java Naming and Directory Interface) 를 맞춰야한다. / mapper 파일의 경로도 제대로 지정해야 한다.

 *JNDI 는 쉽게 말해서 외부에 있는 객체를 가져오기 위한 기술이다. Tomcat 과 같은 WAS(Web Application Server) 를 보면 특정 폴더에 필요한 데이터 소스(라이브러리)가 있는데 그것을 우리가 사용하기 위해서 JNDI 를 이용해 가져오는 것 이다.

- 테이블 당 한 개의 VO 를 생성 / 이 객체와 SQL 간의 맵핑이 이루어진다.

- 데이터베이스와 연결전용 객체인 DAO 클래스 선언 / 테이블 당 한 개

- Mapper 파일도 복사후 이름 변경 : 테이블이름과 동일하게

- 필요한 jsp 파일을 생성한다.

- 해당 jsp 에 필요한 SQL 구문을 mapper 파일에 작성한다.

- 해당 DAO 클래스에 메서드를 선언한다.

- 클라이언트에서 넘어온 파라미터의 값을 얻기 위해 사용하는 메서드는 request.getParameter() 이다.

* 파라미터 자료형은 무조건 String 형이다.

- post 방식의 한글처리 : request.setChractorEncoding() 메서드다.

- 넌뷰에서 뷰로 이동시 response.sendRedirect() 메서드를 이용한다.

- 라이브러리는 lib 폴더에 넣는다.

- 커네션풀은 커넥션을 여러 개 생성하여 모아놓는 것을 말한다. / META-INF 폴더에 Context.xml 으로 설정

* XML(eXtensible Markup Language) 확장될 수 있는 표시언어다. 기존 HTML 과의 차이는 HTML은 이미 약속한 태그들을 이용해야 하지만 XML은 사용자가 임의로 만들 수 있는 언어다. XML 에 대해서 더 알아보자.

- 프레임워크(Framework) 는 프로그래밍의 흐름과 객체의 생명주기를 스스로 처리 

- 라이브러리(Library) 는 프로그래머가 필요할 때 객체를 생성하여 사용

* 프레임워크와 라이브러리 차이에 대해서 더 알아보자.

- 마이바티스(mybatis) 프레임워크는 SQL mapping 프레임워크다.

- 우리가 작성한 SQL 구문과 객체와의 맵핑

- SQL 구문을 작성하는 문서는 mapper 파일 / 테이블 당 한 개를 생성한다.

- DB설정(WAS에서 생성한 커넥션풀을 JNDI로 얻는)과 mapper 파일의 경로 등을 설정하는 mybatis-config.xml 파일

- 테이블 당 한 개의 VO 생성 / 이 객체와 SQL 간의 맵핑

- VO(DTO 라고도 함) 생성 규칙

  1. 멤버필드를 private 선언한다. 즉 은닉화
  2. 기본 생성자를 선언한다.
  3. setter 와 getter 선언한다.

- 데이터베이스와 연결전용 객체인 DAO 객체 생성 / 테이블당 한 개

* DAO 에 대해서 더 알아봅자.

 

■ 다음과 같은 USERS 테이블이 있습니다. Mybatis 설정을 해보세요

컬럼명 자료형 특징
no number(5,0) primary key(기본키)
id varchar2(32) 유저의 id
password varchar2(32) 실제 서비스에서는 암호화
nickname varchar2(32) 유저의 별명
패키지명 들어갈 파일명
config mybatis-config.xml
vo User.java
dao UsersDAO
mapper users.xml
util SqlsessionUtil.java

 

서블릿과 JSP

- 서블릿(Servlet)

  • Jave 코드 안에 HTML 코드(하나의 클래스)
  • 웹프로그래밍에서 클라이언트의 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 Servlet 클래스의 구현 규칙을 지킨 자바 프로그래밍 기술을 Servlet 이라고 말한다.
  • 한마디로 자바를 사용하여 웹을 만들기 위해 필요한 기술이다.
  • 웹 개발을 위해 만든 표준
  • 웹프로그래밍에서 클라이언트의 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 Servlet 클래스의 구현 규칙을 지킨 자바 프로그래밍 기술을 Servlet 이라고 말한다.
  • 클라이언트가 어떠한 요청을 하면 그에 대한 결과를 다시 전송해주어야 하는데, 이러한 역할을 하는 자바 프로그램이다.
  • https://mangkyu.tistory.com/14 더 자세하게 알려준다.

- JSP(Jave Server Page)

  • HTML 코드 안에 Java 코드
  • Java 언어를 기반으로 하는 서버 사이드(Server Side) 스크립트 언어이다.                                                                               * 스크립트 언어란 소스 코드를 컴파일하지 않고도 실행 할 수 있는 언어이다. 스크립트 언어 더 알아보자
  • Servlet 을 보완하고 기술을 확장한 스크립트 방식 표준
  • Servlet 의 모든 기능 + 추가적인 기능 

 

 




 

최근 글