1. 개요, 환경변수 설정 및 웹 어플리케이션 생성
개요, 환경변수 설정 및 웹 어플리케이션 생성
- html
- 클라이언트에서 실행
- 사용자 컴퓨터의 브라우저 : html문서 요청
- 웹서버 : 해당 html문서 탐색, 순수 html문서로 결과 응답
- jsp
- 웹서버에서 실행
- 사용자 컴퓨터의 브라우저 : jsp문서 요청
- 웹서버
- 해당 jsp문서 탐색
- 서블릿(java파일 생성)으로 변환 (parsing과정)
- 컴파일 (class파일 생성) (jsp문서 해석, 가공)
- 컴파일된 서블릿(class) 최종적으로 웹브라우저에 응답
웹페이지 요청
- 요청(request) : 사용자pc -> 웹서버
- 응답(response) : 웹서버 -> 사용자pc
- http://www.naver.com
- http://202.131.30.11/
- http://202.131.30.11:80/app/index.jsp
- http://202.131.30.11:80/app/list.jsp?currentpage=1
- ip 접속, 포트를 찾은 후 연결, jsp파일 요청
- 포트
- 80 : http(웹서버)
- 21 : ftp
- 25 : smtp
- 1521 : dbms
인터넷 주소
- 세가지 구조
- 도메인(ip), 어플리케이션(서버에서 자원의 위치, 폴더), 소스페이지(웹페이지, html jsp, asp등)
- http://202.131.30.11:80/app/index.jsp
- http://도메인/어플리케이션/소스페이지
- ip
- 서버(컴퓨터)를 찾는 주소
- 포트 (port)
- 호스트가 외부와 통신을 하기 위한 통로
- 컴퓨터 내 프로그램을 찾는 주소
- 프로그램들마다 모두 포트를 가지고 있고, 포트를 통해 해당 프로그램에 통신으로 접근
- 어플리케이션
- 웹 프로젝트의 이름 (서버에서 자원의 위치, 폴더)
- 소스페이지
- 웹 페이지
- 파라미터
- 소스페이지를 호출할 때 넘겨주는 인자값
- 같은 소스페이지여도, 파라미터값에 따라 다른 화면을 보여주기 위함
URL
- Uniform Resource Locator
- 웹 상에서 서비스를 제공하는 각 서버들에 있는 파일들의 위치를 표시하기 위한 것
- 프로토콜://호스트:포트/경로/파일명/확장자/쿼리문자열
- http://java.sun.com:80/javase/6/docs/api/index.html
- 프로토콜
- 서버와 클라이언트가 통신할 때 사용할 프로토콜 입력
- http, ftp, https 등
- 호스트(도메인
- 클라이언트가 접속할 서버 주소
- 포트
- 서버와 클라이언트가 통신할 때 사용할 포트
- uri (Uniform Resource Identifier)
- url에서 프로토콜, 호스트명 포트번호를 제외한 것
- 존재하는 자원을 식별하기 위한 일반적인 식별자를 규정
- /javase/6/docs/api/index.html
- 포트번호 다음 슬래쉬부터
- 쿼리문자열
- 주소 뒤에 추가로 붙는 정보
- 인자
- 각각 &을 이용하여 구분
- 이름과 값은 =을 이용하여 구분
- ?이름1=값1&이름2=값2..
2. 개발환경 구축
- 웹 프로그래밍 절차
- 개발환경 구축
- 웹 어플리케이션 코드 개발 및 테스트
- 완성된 웹 어플리케이션을 서비스 환경에 배포
- 배포(deploy)
- jsp/서블릿의 경우 war파일로 묶어 배포하거나, 개별 파일을 배포하기도 한다
- 개발된 결과물을 실제 서비스로 사용되는 서버 장비에 복사하는 과정이 배포
- 프로그램
- jdk
- 자바 개발 도구
- jsp 2.2 표준 : 자바 6 이상의 버전 필요
- 웹 컨테이너
- jsp와 서블릿을 실행시켜주는 컨테이너
- 톰캣, 제티, GlassFish
- 또는 WAS(Web Application Server)
- WebLogic, JEUS, JBoss
- 코드 편집기
- jdk
웹컨테이너 설치
- 톰캣
- 설치시 포트번호 9090
- 8080은 오라클에서 사용중
- 톰캣 설치 및 실행 확인
- http://localhost:9090
- 설치시 포트번호 9090
디렉토리 확인
- bin : 톰캣을 실행하고 종료시키는 스크립트 파일 위치
- conf : server.xml파일을 포함한 톰캣 설정 파일 위치
- lib : 톰캣을 실행하는데 필요한 라이브러리(jar)파일 위치
- logs : 톰캣 로그파일 위치
- temp : 톰캣이 실행되는 동안 임시 파일이 위치
- webapps : 웹 어플리케이션이 위치
- work : 톰캣이 실행되는 동안 사용되는 작업 파일이 위치
- 웹 어플리케이션은 기본적으로 webapps 디렉토리에 배포
- server.xml파일을 사용해 경로 변경 가능
환경변수 및 설정
- 시스템 변수
- CATALINA_HOME 생성
- 값 : 톰캣 설치경로
- c:\Tomcat9.0
- PATH 편집
- %CATALINA_HOME%bin 추가
- classpath 편집
- 기존
- %classpath%;.;C:\Java\jdk1.8.0_321\jre\lib\ext\ojdbc8.jar
- 추가
- c:\Tomcat 9.0\lib\jsp-api.jar
- c:\Tomcat 9.0\lib\servlet-api.jar
- 확인
- %classpath%;.;C:\Java\jdk1.8.0_321\jre\lib\ext\ojdbc8.jar;c:\Tomcat 9.0\lib\jsp-api.jar;c:\Tomcat 9.0\lib\servlet-api.jar
- 기존
- CATALINA_HOME 생성
- 톰캣 실행
- 시작, 모든프로그램, apache tomcat9.0, Monitor Tomcat 실행
- 웹브라우저 테스트
- http://localhost:9090
- servlet-api.jar 복사
- C:\Java\jdk1.8.0_321\jre\lib\ext 붙여넣기
- ojdbc8.jar 복사
- C:\Java\jdk1.8.0_321\jre\lib\ext 붙여넣기
- 기존 jdbc 사용 간 해당 작업 실행 완료
- C:\Tomcat 9.0\lib 붙여넣기
- C:\Java\jdk1.8.0_321\jre\lib\ext 붙여넣기
- c:\Tomcat 9.0\conf\context.xml 수정
- <Context>를 <Context reloadable=”true” privileged=”true”>로 변경
- 컨텍스트 변경시 자동으로 재로딩 되도록 설정
- c:\Tomcat 9.0\conf\context.xml
- 포트번호 9090 확인
- 톰캣 재실행 후 웹브라우저 테스트 확인
3. 웹 어플리케이션 생성
웹 어플리케이션 생성
- 웹 컨테이너에 직접 개발 디렉토리 생성
- 웹 컨테이너 디렉토리 / webapps / 아래 개발 디렉토리 생성
- 개발디렉토리 (testsite) 폴더의 하위 볼더로 WEB-INF 폴더 생성
- WEB-INF 폴더의 하위폴더로 classes 폴더 생성
생성 및 확인
- jsp 파일 생성 후 testsite 폴더 저장
- http://localhost:9090/testsite/폴더명.확장자명 확인
<%@ page contentType="text/html;charset=euc-kr"%>
<%@ page import="java.util.*" %>
<!--page 지시자(디렉티브) -page에 대한 정보 설정-->
<%
//스크립트릿 = jsp코드를 넣는 곳
Date d = new Date();
String str = d.toLocaleString();
out.print(str); //out=>jsp의 내장 객체, out.print() => 웹에 출력하라는 것
/*자바의 여러 줄 주석*/
//자바의 한줄 주석
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> jsp연습1 </TITLE>
</HEAD>
<BODY>
<h1>jsp페이지</h1>
<p>현재 날짜 : <%=d %></p>
<!-- 표현식 => out.print(d)와 동일-->
<!--html 주석-->
<%-- jsp 주석 --%>
</BODY>
</HTML>
<!-- testsite\now1.jsp-->
- <%@ : 지시자, page에 대한 정보 설정
- jps의 영역
- jsp영역
- <% ~ %> 사이 작성
- html 영역
- javascript 영역
- jsp영역
4. Server.xml 수정
a. 기본 경로인 webapps 이외의 경로 추가
기존 호스트 문구 하단
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
경로 추가
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context path="/samplesite" docBase="C:\lecture\jsp\samplesite"></Context>
</Host>
- context path를 추가해, url에 해당 경로 입력시 탐색할 폴더 경로 지정
b. get 방식의 한글처리 추가
- get 방식으로 보낸 데이터가 한글인 경우를 처리하기 위한 수정
기존
<Connector port="9090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
인코딩 추가
<Connector port="9090" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="euc-kr" />