1.1 웹 프로그래밍이란?
-> 어플리케이션을 구현하는 행위입니다.
-> 웹을 기반으로 작동되는 프로그램입니다.
-> 1개 이상의 사이트가 연결되어있는 인터넷 서비스의 한가지 형태입니다.
------------------------------------------------------------------------------------------------------
프로토콜(Protocol) : 네트워크상에서 약속한 통신규약 (Http, FTP, SMTP, POP, DHCP)
IP : 네트워크상에서 컴퓨터를 식별할 수 있는 주소
DNS : IP주소를 인간이 쉽게 외우도록 맵핑한 문자열
Port : IP주소가 컴퓨터를 식별할 수 있게 해준다면, Port번호는 해당컴퓨터의 구동되고 있는 프로그램을 구분할 수 있는 번호
http -> 프로토콜
www.jongkyu.tistory.com -> 컴퓨터 주소(DNS를 통한 IP주소로 변경)
80 -> 포트(port)
/entry -> information path
------------------------------------------------------------------------------------------------------
컴포넌트 : JSP, Servlet, HTML 등의 웹어플리케이션을 구현하기 위한 구성요소
웹서버 : 클라이언트의 요청에 의해 정보를 제공해 주는 서버 (Aphach, IIS).
별도의 구현이 필요한 로직이 있을 경우 웹어플리케이션 서버에 요청.
웹브라우저 : 웹서버에 정보를 요청하고, 웹서로부터 정보를 받는 매개체. 이때 HTTP 프로토콜을 사용함.
필요한 학습
서블릿 소스
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloWorldServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=EUC_KR");
PrintWriter out = response.getWriter();
out.println("<HTML><HEAD><TITLE>로그인</TITLE></HEAD>");
out.println("<BODY><H2>종규 : 헬로종규</H2>");
out.println("오늘날짜 : " + new java.util.Date());
out.println("</BODY></HTML>");
}
}
------------------------------------------------------------------------------------------------------
JSP 소스
<%@ page contentType="text/html;charset=utf-8"%>
<HTML>
<HEAD>
<TITLE>로그인</TITLE>
</HEAD>
<BODY>
<H2>종규 : 헬로종규</H2>
오늘날짜 :
<%=new java.util.Date()%>
</BODY>
</HTML>
뒤에도 계속 보다보면 의문이 뜬다.!!!
JSP와 Servlet 같이 쓴다는데 Servlet만으로도 페이지 만들고 JSP만들수 있는데 왜 2개 같이쓰지?
그거에 대한 해답은
Servlet은 톰캣 위에서 동작하는 java 프로그램입니다. 더 정확히 말하자면 servlet이 초기화 되는 과정을 보면 된다.
톰캣과 같은 WAS가 java 파일을 컴파일 해서 Class로 만들고 메모리에 올려 Servlet 객체를 만든 후 이객체는 doPost, doGet을 통해 요청에 응답한다.
초기화 과정을 더 자세히 보면
init, Service, Destory 이런 콜백이 각 시점에 불리는걸 볼 수 있다.
요약하자면 WAS를 통해 컴파일 된 후 메모리에 적재되어 클라이언트의 HTTP Get, Post 등의 요청을 처리하는 자바 프로그램이다.
서블릿 에는 HTML을 넣기 불편하다. 그래서 JSP가 나왔다.
JSP소스를 보면 HTML내부에 JAVA코드가 있어 작성하기 쉽다. 하지만 로직과 디자인이 한 파일내에 섞여있어 유지보수가 어렵다.
그리고 JSP같은경우 Tomcat이 Servlet으로 바꾸어서 돌린다.
MODEL 1 방식
JSP에서 사용자가 요청을 해서 Java Bean(DAO,DTO)을 호출해 처리한다. 이런방식을 MODEL1방식이라한다.
장단점
-> 개발 속도가 빠르다.
-> 배우기 쉽다.
-> JSP코드가 복잡해져 유지보수가 어려워진다.
MODEL 2 방식
View는 JSP로, Controller는 Servlet을 사용한 것이 바로 Model2이다.
HTML중심이 되는 JSP, 다른 자바 클래스에게 데이터를 넘겨주는 부분은 Java코드가 중심이 되는 Servlet이 담당하게 된다.
참고 사이트
: http://anster.tistory.com/128
JSP의 특징
1. 자바의 모든 기능을 사용할 수 있어 발전 가능성이 무한하다.
2. 서블릿으로 컴파일된 후 메모리에서 처리되기 때문에 많은 사용자의 접속도 원활하게 처리 할 수 있다.
3. JSP 또는 다른 서블릿 간의 데이터를 쉽게 공유 할 수 있다.
4. 빈즈(Beans)라고 하는 자바 컴포넌트를 사용할 수 있다.
5. 커스텀 태그를 만들어 사용할 수 있으며, JSTL(JSP Standard Tag Library)과 같은 태그 라이브러리를 이용할 수 있다.
6. 스트러츠, 스프링 @MVC 등 다양한 프레임워크와 결합하여 개발할 수 있다.
JSP 학습에 필요한 기술
JSP는 자바언어 기반이며 개발 시 순수 자바 코드가 50% 이상으로 탄탄한 자바 기본기가 요구된다.
기술 |
설명 |
요구 수준 |
HTML |
클라이언트 기술로서, 웹 프로그램의 기본이 되며 시각적인 부분을 담당한다. |
HTML 문서 구조와 기본 태그 FORM 관련 태그 HTML5 기본 구조 |
자바스크립트 |
웹 화면에 사용자와의 상호작용 및 동적 웹 페이지를 구현할 때 필요한 기술이다. |
기초문법 객체와 메서드 내장객체 이벤트 핸들링 |
CSS |
웹 화면의 레이아웃과 디자인 요소를 구현할 때 필요한 기술이다. |
스타일시트 정의 및 셀렉터 이해 DOM 연동에 의한 동적 스타일 제어 |
자바 | 소스코드를 작성하기 위한 프로그래밍 기본 언어로서, Java SE를 기준으로 한다. | 자바기본, 객체지향개념, 상속,오버로딩,오버라이딩, 인터페이스 구현, java.util,java.io패키지, 스레드, 예외 핸들링 |
JDBC | Java DataBase Connectivity의 약자로서, 자바에서 데이터베이스 프로그래밍을 하기 위한 기술이다. | JDBC 드라이버 세팅, ResultSet, PreparedStatement, 데이터 핸들링, 기초SQL문 |
서블릿 | JSP의 기본이 되는 자바 기반의 웹 프로그래밍 핵심 기술이다. | 서블릿 구조이해, 간단한 서블릿 프로그래밍, request,response 처리, GET/POST 처리 |
추가적으로 다음기술들에 대한 경험이 있다면 고급 웹 프로그래밍 학습에 도움이 된다. | ||
데이터베이스 | 프로그램의 데이터를 처리하려고 할 때 반드시 필요하다. | 다양한 SQL문의 사용 데이터베이스 연계 프로그래밍 경험 데이터베이스 함수 및 내장 프로시저 |
XML | eXtensible Markup Language의 약자로서, 확장 가능한 구조적 문서 표현을 제공한다. 많은 프로그램에서 데이터 구조를 XML 기반으로 처리한다. | XML 스키마 및 DTD 이해 XML DOM 개요 |
모바일 프로그래밍 | 최근에는 스마트폰을 중심으로 하는 모바일 기반의 개발이 증가하고 있는 추세다. | 안드로이드 혹은 아이폰 앱 개발 경험 하이브리드 앱 개발 경험 |
프레임워크 | 개발자로 하여금 더욱 좋은 프로그램을 만들 수 있도록 미리 제공되는 틀을 말한다. | 소프트웨어 아키텍쳐 이해 스프링 프레임워크 스프링3 @MVC |
JSP에 관해서 이것만은 알고 있자.
1. JSP는 일반 텍스트 파일로 되어있다. (텍스트 파일은 컴퓨터가 이해할 수 없다. 즉 실행 가능한 프로그램이 아니며 특정 동작을 할 수 없다.
2. JSP는 HTML 코드와 몇몇 특수한 태그, 그리고 자바 코드가 섞여 있다.
3. 사용자가 요청할 경우 JSP는 컨테이너(톰캣)에 의해 서블릿 형태의 .java 소스로 변환되고 컴파일된다.
4. 컴파일된 .class는 컴퓨터에서 실행할 수 있는 형태로 특정한 기능을 수행할 수 있게 된다. 이후 소스 변경 전까지 해당 파일은 메모리에 상주하면서 다시 컴파일 되지 않고 서비스 된다.
'IT일반과목 > JSP' 카테고리의 다른 글
20180826 집공부6 <액션,객체,리다이렉트> (0) | 2018.08.26 |
---|---|
20180826 집공부5 <지시어2> (0) | 2018.08.26 |
20180825 집공부4 (0) | 2018.08.25 |
20180825 집공부3 <지시어1포함> (0) | 2018.08.25 |
20180824 집공부2 - 설치환경 구성하기 (0) | 2018.08.24 |