JSP 기본 동작 하이브리드 웹개발
1. JSP (Java Server Page )
: *.jsp 로 작성
: 동적 웹 컴포넌트 ( 프로그램으로 실행됨 ==> html로 결과가 나옴 )
: html과 동일한 위치에 저장하고, html과 동일하게 요청한다.
예> http://localhost:8090/31Day/Hello.jsp
: 구성요소
- html 태그
- jsp 태그
- JSTL 태그
- EL 태그
2. JSP 태그
일반 JSP 태그 4가지에 대해서 알아보자!
1) directive tag ( 저시자 태그 )
=> JSP에게 특정 정보를 지시할 때 사용.
표기 방법 <%@ ~~~ %>
: 종류 3가지
- <%@ page %> : page directive tag
=> 추가속성
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%> --servlet의 response.setContentType("")과 동일
<%@ page import="java.util.ArrayList" %> --servlet의 import문과 동일
<%@ page import="java.util.Vector" %>
=> JSP 실행시 반드시 발생되는 예외를 처리하는 방법
<%@ page errorPage="error.jsp"%>
<%@ isErrorpage="true"%> : isErrorpage 기본값은 false 이다.
2) declaration tag (선언 태그)
: <%! %>
: 서블릿에서 인스턴스 변수 및 doGet,doPost 제외한 메소드를 사용하는 경우와 동일
예>
public class MyServlet extends Httpservlet{
String name;
public String getName(){ return name }; ㅇ
public vod doGet(HttpServletRequest request,
HTtpServletResponse response){
}
}
JSP 표현
<%! String name;
public String getname(){ return name; } %>
==> *.java(서블릿)으로 변경될 때 서블릿의 인스턴스 변수와 create method로 변경된다.
따라서 사용하는 위치와 무관하다.
3) scriptlet tag(스크립트릿 태그)
--> <% %>
--> 서블릿의 doGet|doPost에서 했던 작업을 지정한다.
4) expression tag (표현 태그)
--> 결과를 클라이언트로 응답
out.print()와 동일한 기능.
--> <%= 변수 &>
out.print(변수명);
3. 내장객체 (내장변수 : implicit object, implicit variable)
sciptlet 태그내에서 자동으로 선언되는 변수 따라서 jsp에서는 그냥 사용하면 된다.
- reqeust
--> 서블릿의 HttpServletRequest
- response
--> 서블릿의 HttpServletResponse
- conflg
--> 서블릿의 ServletConfig
- application
--> 서블릿의 ServletContext
- session
--> 서블릿의 HttpSession
- exception
--> 서블릿의 Throwable(Exception)
--> <%@ page isErrorPage="true" %> 인 경우에 exception내장객체 생성된다.
- pageContext
- out
--> 서블릿의 PrintWriter
4. JSP에서의 포워드
가. redirect
==> response.sendRedirect();
나. forward
==> RequestDispatcher dis = request.getRequestDispatcher();
dis.forward(request, response)
5. MVC ( Model, view , Controller ) 패턴
가. Model 1 Architecture
=> 클라이언트 요청을 JSP 가 처리한다.
브라우저 ------------> JSP <--> DAO
<-----------
=> 개발속도 빠르다. 소규모의 웹 어플리케이션 개발시 적합. 화면구성코드와 로직코드가 같이
혼합된 형태이기 떄문에 빠르게 구현가능하지만, 나중에 유지보수가 어렵다.
=> 이전에 많이 사용하던 개발방법이다. 현재는 사용안한다.
나. Model 2 Architecture (MVC 패턴이라고도 한다. )
==> 기능별로 모듈화 시키는 방법.
=> 처음에는 개발이 어렵다. 하지만 나중에 유지보수는 쉽다.
=> 현재 서비스되는 대부분의 웹스아트 개발시 적용.
서블릿에 요청
웹브라우저 -----------------> 서블릿 --> DAO,DTO
<---------------- JSP
JSP 응답
'프로그래밍 > Jsp' 카테고리의 다른 글
[JSP] Servlet 및 JSP를 이용한 게시판 (0) | 2017.08.17 |
---|---|
JSP프로그램을 위한 이클립스 설치 및 톰캣 이클립스 연동 (0) | 2017.04.26 |