4) 글로 적는 웹개발 공부 - 웹(Web)
- WWW(World Wide Web) 은 HTTP 프로토콜이다.
- HTTP 프로토콜은 요청 / 응답 방식이다.
- 클라이언트에서 요청시 넘어가는 데이터가 파라미터(Parameter)이다.
- 파라미터는 이름(name) 과 값(value) 로 구성되어 있다.
- 웹서버는 클라이언트의 요청(request) 을 받고 정적인 문서를 응답.
- 컨테이너란 객체의 생명주기를 관리한다. *프레임워크는 생명중기를 직접 생성한다. 더 자세히 알아보기!
- 생명주기란 객체가 생성되고, 서비스되고, 소멸되는 과정을 말한다. *필요할 때마다 생성, 소멸 메서드를 호출한다.
- 서블릿컨테이너(Servlet Container)는 Servlet & JSP 의 생명주기를 관리한다.
- 서블릿컨테이너는 HttpServlet 라고도 합니다.
- 서블릿을 만들려면 HttpServlet 클래스를 상속한다.
- 서블릿과 url 맵핑을 web.xml 에 설정한다.
- 서블릿의 url 과 똑같은 주소가 요청되면 서블릿 컨테이너는 그 서블릿이 객체로 만들어져 있는지 확인한다.
- => 객체가 없다면 객체를 생성하고, init메서드를 호출한다.
서블릿 생명주기 메서드 종류 | |
- init() 메서드
- 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 라고도 함) 생성 규칙
- 멤버필드를 private 선언한다. 즉 은닉화
- 기본 생성자를 선언한다.
- 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)
- JSP(Jave Server Page)
|
'개발자의 길 > 글로 적는 웹개발' 카테고리의 다른 글
5-2) 글로 적는 웹개발 공부 - 복습 (0) | 2019.09.18 |
---|---|
5) 글로 적는 웹개발 공부 - 복습 (0) | 2019.09.17 |
3-2) 글로 적는 웹개발 공부 - 오라클 디비(Oracle DB) (0) | 2019.09.15 |
3) 글로 적는 웹개발 공부 - 오라클디비(OracleDB) (0) | 2019.09.14 |
2-6) 글로 적는 웹개발 공부 - 자바(Java) (0) | 2019.09.13 |