jsp 웹 개발 기초

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: 페이지 연결하는 부분. 내장객체 관리.