한 일
- jdk 11.0.2버전 설치
- eclipseEE 2020-09버전 설치
- Tomcat 설치
- Context
- 서블릿 (Servlet)
- JSP파일에 java코드 사용하기(Expression, Scriptlet, Declarations)
JDK 설치
- 11.0.2 (build 11.0.2+9)버전 다운
- 환경변수(제어판-고급-환경변수)
- 새로만들기 JAVA_HOME (경로입력예시 C:\JAVA\JDK\jdk-11.0.2)
- path설정 > %JAVA_HOME%\bin 추가 혹은 변경
- cmd에서 java --version으로 설치버전 확인(11.0.2버전으로 나오면 ok)
eclipseEE 설치
Tomcat
서버사용을 위한 프로그램.
- https://tomcat.apache.org/ - full설치
- 포트번호8090으로 변경(oracle이 8080사용중이라 에러남)
- admin 1234 로 id, pw지정(임의변경ok) > 나머진 기본설정대로
- 주소창에 http://localhost:8090/ 검색해 설치확인(톰캣화면이 뜨면 ok)
- 외부톰캣 실행중지는 윈도우 우측하단의 실행창에서 톰캣우클릭 > configure > stop - startup type: manual로 변경(수동온오프)
이클립스 - 톰캣 연결
- 이클립스에서 하단의 Servers > Tomcat > 9버전선택
- 톰캣설치경로 입력(예 C:\Program Files\Apache Software Foundation\Tomcat 9.0) 폴더 더블클릭해서 윈도우 접근허용해야함
- 연결 후 이클립스에서 서버삭제 후 종료, 다시 시작 후 서버 연결 처음부터
- Servers의 tomcat9.0더블클릭으로 설정진입 > portnumber의 '-'를 8070으로 변경 > 시작(윈도엑세스 허용필요)
주의점
- 이클립스 내부 톰캣과 외부 톰캣은 따로 실행가능.
두 톰캣을 동시에 실행하면 포트번호가 겹쳐 오류가 발생하므로 주의.
- 이클립스 > servers에서 서버를 먼저 생성해준 후 프로젝트를 생성할것.
- 404에러 발생 시 서버를 재시작해 다시 확인해볼것.
UTF-8 설정
- 이클립스 > preperences > enco검색
- workspace, css, html, jsp 모두 utf-8로 변경
그 외 이클립스 설정
preferences > workspace > refresh using native hooks 체크
(파일 수정 시 이클립스에 바로 적용되도록 설정)
프로젝트 생성
이클립스의 Project Explorer > New > Dynamic Web Project
Context
- 등록위치: Servers > Tomcat v9.0... > server.xml파일의 최하단 context태그 확인
- 톰캣의 server.xml에 등록하는 웹 어플리케이션.
- 특징: 웹 어플리케이션 하나 당 하나의 context가 등록됨
context의 이름은 중복x
대소문자를 구분
웹 어플리케이션의 이름과 같을수도 있고 다를 수도 있음
~추후 개념보충 필요~
서블릿과 JSP파일의 생성위치
- jsp: WebContent폴더 아래 위치 (jsp파일의 확장자는 .jsp)
- 서블릿: Java Resources > src폴더 아래 위치
(서블릿의 확장자명은 .java로, 클래스가 HttpServlet을 상속받으면 서블릿이 된다고 생각하면 쉽다. 클래스로 생성 후 extends HttpServlet을 해줘도 된다는 뜻.)
서블릿 (Servlet)
- doGet메서드: get 요청(request, req), 응답(response, res) - 매개변수의 이름은 자동생성할 때마다 바뀔 수 있음
- doPost메서드: form요청시(주소창에 표시되지 않음) 예-로그인
JSP 파일에 java코드 사용하기
- Expression태그: 한 줄의 java코드를 화면에 바로 출력
사용: <%= 여기에 코드를 작성 %>
<%= new String("HelloWorld!").toUpperCase() %>
- Scriptlet태그: 여러줄의 java코드를 실행(출력은 바로 지원하지 않으므로 따로 해줘야함)
사용: <% 여기에 여러 줄의 코드를 작성 %>
<%
for(int i=1; i<=5; i++){
out.println("<br> JSP & 서블릿: " + i);
}
%>
- Declarations 태그: 메서드나 변수를 만들 수 있는 태그. 만든 메서드는 같은 페이지에서 사용가능.
사용: <%! 메서드 작성 %>
// 메서드 생성
<%! private String getInfo() { return "리턴할 문자열"; } %>
// 메서드 사용
<%= getInfo()%>