jsp 웹 개발 기초
□ 자바로 웹페이지 만들기
자바로 웹페이지를 짜는 법은 두 가지가 있다.
(1) 서블릿
-> 컴파일 방식(실행코드 방식)
보안이 뛰어나다.
(2) jsp(자바 서버 페이지스)
-> 스크립트 방식 (<% %>)
컴파일하지 않으므로 빠르다.
실전에서는 보안이 필요한 부분은 서블릿, 그렇지 않은 부분은 jsp로 짠다.
□ 톰캣이 변환하는 과정

□ 톰캣 =웹 컨테이너 =어플리케이션 서버
톰캣은 (1)JSP 또는 (2)서블릿을 변환해준다.
□ JSP, ASP, PHP
JSP: 자바 서블릿 페이지.
ASP: 호환이 좋지 않다. 윈도에만 가능하다.
PHP: 퍼스널 홈페이지(Personal Home Page) 의 약자이다. (작은 사이트 위주)
□ 스프링
스프링은 클래스를 관리하는 관리자 역할을 한다. “컨테이너” 라고도 부른다.
(컨테이너: 컴포넌트를 관리한다. 자바 클래스가 컴포넌트다.)
□ 서블릿
서블릿: “서버에서 실행되는 가벼운 프로그램”이라는 뜻. (server + let)
jsp 파일은 HttpServlet를 상속받은 class로 변환됐다.

스크립트릿, 표현식은 메소드 안에 들어간다.
선언식은 클래스 안에 들어간다.
현재는 html에서 출력할 때 out.println이 생략되어 있다.
(<%= name %>은 <% out.printlin(name); %>과 같다)
□ 디렉티브(지시자)
(1) page : 페이지 디렉티브. jsp 파일에 대한 정보를 가지고 있다. jsp 맨 위의 <%@ page..>
– contentType: html인지, xml인지 pdf인지 지정할 수 있음.
ex) <% page contentType=”text/html” %>
<% page contentType=”text/xml” %>
charset=”EUC-KR” 또는 “UTF-8” (한 페이지에서는 둘 중의 하나로 완전히 통일시킬 것)
– import: 자바 클래스 포함시킬때. 자바 라이브러리 불러올 때
ex) <% page import=”java.util.Date” %>
– errorPage: 에러났을때 이동시킬 페이지(파일)지정.
(2) taglib
태그로 자바 문법을 정의
ex)
|
<% for(int i=1;i<=10;i++) { %> html <% } %> |
위 코드를 아래처럼 바꿔준다.
|
<c:forEach var=”i” start=”1″ end=”10″> html </c:forEach> |
이처럼 태그형 프로그램으로 바뀐다. 이것을 JSTL이라고 한다.
(3) include
jsp 안의 특정부분에 다른 jsp를 불러올 때 사용
□ 스크립트 요소
(1) 스크립트릿: 자바 일반식. 자바 코드를 실행한다.
<% %>
<%
일반 자바코드
%>
(2) 표현식: 값을 출력한다.
<%= %>
<%= 값%>
(3) 선언식: 자바 메서드(함수)를 만든다
<%! %>
<%! 멤버변수
또는 메소드 선언 %>
잘 쓰지 않는다. 우리에게 import가 있기 때문에 메소드를 굳이 만들지 않는다. 선언식을 쓰면 재사용이 되지 않는다, import로 재사용하자.
□ 기본객체(내장 객체: 미리 메모리 할당이 된 객체명)
(1) request
요청.
클라이언트의 정보, 요청값 읽기/쓰기
map으로 구성되어 있다. “키”와 “밸류”로 구성되어서, 키를 주면 밸류를 받아온다.(map: 순서가 없다. 키는 중복불가능, 밸류는 중복가능)
-getRemoteAddr()
접속된 클라이언트의 ip어드레스를 출력한다.

-getRequestURI()
URI를 구한다.
-getContextPath()
ContextPath를 구한다.
getParameter(): 값이 한개 넘어올때.
getParameterValues(): 체크박스때만 씀. 값이 여러개 넘어올때.
(2) response
응답에 대한 정보, 이동정보(리다이렉트)
(3) session
서버의 정보를 저장할 때 쓴다.
서버 측에 클라이언트 정보를 저장.
ex) 로그인
리퀘스트로 로그인 요청 -> 세션에 저장 -> 리스폰스로 결과값 돌려준다. 세션 내용이 지워지려면, (1)로그아웃 하거나(2) 브라우저 끄면 지워준다.
(4) application: 서버에 대한 정보를 갖고 있음.
(5) out: 메모리에 대한 정보.
(6) config: 환경설정 관련. 나중에 web.xml로 변경됨
(7) exception: 예외처리에 대한 정보. (try catch 절로 대체)
(8) page: jsp파일에 대한 정보. this와 같은 의미
(9) pageContext: 페이지 연결하는 부분. 내장객체 관리.