이하 구디아카데미 김지훈 강사님의 수업자료와 강의 내용 정리, 실습한 내용을 정리함!
새로운 마음으로 달려봅시다😊
Java Servlet Page
Web 의 구성
- 단 방향 통신
- Client 는 Server에 request를 보내고 Server는 Client에 response을 보낸다.
- 우리는 http 프로토콜을 통해서 통신을 JAVA 로 구현해 보았다.
- JAVA 로 이를 구현하기엔 코드가 복잡하다.
- 그래서 우리는 간단하게 Web 을 처리할 수 있는 Script 언어인 JSP 를 사용 한다.
- 그리고 JSP 를 JAVA 코드로 자동 변환 해주는 것이 WAS 인 TOMCAT 이다.
- 실제 서비스 시에는 Web과 TOMCAT 사이에 Web Server가 추가된다.
WAS 설치 및 구동
TOMCAT Downloads
9 버전 > 9.0.78 > 64-bit Windows zip (pgp, sha512)
C드라이브 깔기
window > Preferenxes > General :Workspace > UTF-8 > web > css,html,jsp > UTF-8
General:web browser(use external)
server 더블클릭 > Apache > tomcat 9 > (설치 폴더 선택) > JDK 선택 > Finish
다이나믹 웹 프로젝트 > 제너럴 웹 어쩌고 선택 >
실행법 > 우클릭 > run as > run server
- WEB-INF -> web.xml : 서버가 켜지면 가장 먼저 찾게 되는 페이지들의 모음
- 주소 창의 IP 를 제외한 port 와 Service Name 은 물리적 변화 없이 변경이 가능 하다.
port 8080 > 80으로 변경
- Server 폴더의 server.xml 에서는 port 번호 및 기타 설정을 변경 할 수 있다.
server > Path > Edit
- webapp > new > other > jsp 파일 생성 > file name 설정 > finish
JSP 기본
- 순수 JSP 만으로 이루어지는 개발 방식은 현재 거의 존재하지 않는다.
- 하지만 JSP 의 사용법을 이해하면 PHP, ASP 등의 다른 스크립트 언어를 배우는 데 도움이 된다.
스크립트 언어란?
- 컴파일 없이 인터프리터로 즉시 실행될 수 있는 언어를 말한다.
- 컴파일 하지 않는다. > 목적 파일이 없다.(JAVA 의 경우 class 파일)
- Java script, JSP, ASP. PHP, shell script, VB script
Scriptlet 을 사용하는 방법
expression | description |
---|
<% %> | JAVA LOGIC 을 표현할 수 있는 영역 |
<%@ %> | Page 속성을 정의하는 영역 |
<%! %> | 변수나 메서드 선언을 하는 영역 |
<%= %> | 변수나 메서드 반환 결과를 출력하는 영역 |
index
-
style
- header 클래스 백그라운드 옐로우그린
- footer 클래서 백그라운 블루
-
body
- include file 사용해서 header.jsp 파일 가져옴
- h3 태그에 메인 영역 출력
- li 태그에 1~10까지 넣기
- include file 사용해서 footer.jsp 파일 가져옴
- import 로 java.util 모두 가져오기
- Calendar 를 cal 변수 선언
- hour/min/sec 변수 선언
- 현재 시간 출력
- hour이 12보다 크거나 같으면 오후입니다 출력, 아니면 오전입니다 출력
index 전체 페이지
JSP 주석 방법.
- 주석 사용법은 JAVA 와 같으며, JSP 구문 전체 주석 부분이 조금 특이다.
- <%-- 해당 jsp 구문의 전체 주석 --%>
- <%
// 영역 내 한 줄 주석
%>
- <%
/
영역 내 여러 줄 주석
/
%>
TOMCAT이 java로 변환해준 파일 위치 확인
메타데이터 > 플러그인 > org.eclipse.wst.server.core> tmp0> work >Catalina > jsp 파일명
내장 객체
Request 객체
- Server 와 Client 간에는 요청(request)과 응답(response)이 오간다.
- 그렇기 때문에 request 객체와 response 객체는 웹서비스에 있어서 핵심 객체이다.
- Request 객체는 Client 로부터 온 요청에 관한 모든 정보를 다루고 있다.
- scriptlet 으로 출력되는 정보를 java script 에서도 활용이 가능하다.
- 자바스크립트의 변수에 값 할당 시 double quote(“”) 로 감싸야 한다.
var userName =
"<%=request.getParameter("name") %>";
var gender = "<%=request.getParameter("gender") %>";
index
- 테이블 '이름(text 인풋)/성별(radio 인풋)/취미(checkbox 인풋)/전송 버튼(submit 인풋)' 생성
result
- 이름 입력 창에 name 값을 받아옴
- 성별 입력 창에 gender 값을 받아와 변수 gender에 넣음
- 만약 gener 값이 male이면 남자라고 표시, 아니면 여자라고 표시
- 클라에서 hobby 값을 가져와 배열 변수 hobbys에 넣음
- hobbys 배열 값을 hobby에 반복해서 넣고 hobby를 출력
jsUse
- 이름 입력창의 id 는 name/ 성별 입력창의 id 는 gender / 취미 입력창
- script
- userName 변수에 name 값을 요청해서 담음
- gender 변수에 gender 값을 요청해서 담음
- id name의 html은 변수 userName
- 변수 gender = 'male'이 gender와 동일할 때 남자라고 표기, 아니면 여자라고 표기
- id gender의 html은 변수 gender
- hobby 변수는 배열임
- hobby의 값을 h에 넣고 변수 hobby 에 h를 넣음
- console 에 변수 hobby 보여줌
- table의 자식 tr 중 2인덱스의 tr에서 td를 찾아서 html로 표시해라
out 객체 & response 객체
out 객체
- out 객체는 서버에서 페이지로 output Stream 하는 기능을 한다.
- 하지만 실제적으로는 페이지에 문자열을 출력하는 것 정도로만 사용한다.
Response 객체
- Response 객체는 요청에 대해 응답 페이지를 전달해 주는 객체이다.
- 페이지를 만드는(write) 객체이다 보니 out 객체처럼 출력이 가능하다.
- 또한 특정 페이지로 이동하는 것도 가능하다.
index
- '각 객체별 페이지 출력'에 'print.jsp 링크 걸기
- 'response 객체로 다른 페이지로 이동'에 redirect.jsp 링크 걸기
- ID : ID를 입력하는 text 박스 추가
- 입력 값을 보내는 전송이라고 써진 submit 버튼 추가
print.jsp
redirect.jsp
- 클라의 id 값을 id 변수에 넣음
- 만약 id 가 admin 이라면 end.jsp를 돌려주고, 아니면 index.jsp 페이지를 돌려줌
✔ 작동 중인 서버 끄는 방법
80포트를(포트 넘버 확인) 누가 쓰는지 확인
netstat -ano | findstr 80
pid 5688(pid 넘버 확인) 이 어떤 서비스인가?
tasklist /svc /FI "PID eq 6440"
pid 5688(pid 넘버 확인) 죽이기
taskkill /f /pid 6440
코딩 테스트 좀 더 해보기!