[IT국비지원] 개발자 교육 14일 차 : JSP(2023.08.14)fit.구디아카데미,김지훈 강사님

Nicole Gold·2023년 8월 13일
0

K-digital training

목록 보기
15/60

이하 구디아카데미 김지훈 강사님의 수업자료와 강의 내용 정리, 실습한 내용을 정리함!

새로운 마음으로 달려봅시다😊

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
  • 기본적으로 html 은 서버 역할을 수행할 수 없다.

  • 그래서 우리는 JSP를 사용한다.

  • JSP 에서는 Scriptlet 을 사용하여 JAVA CODE를 사용할 수 있다.

  • 서버가 켜지면 가장 먼저 찾게 되는 페이지들

Scriptlet 을 사용하는 방법

  • 표현 방식과 사용법은 아래와 같다.
expressiondescription
<% %>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보다 크거나 같으면 오후입니다 출력, 아니면 오전입니다 출력

  • title 변수 선언

  • 메서드 whileSum 은 total이 0인 상태에서 i가 0일때 100보다 작거나 같을 때까지 i를 증가해서 total에 누적한다.

  • div footer 영역에 title을 표시해 주고 답은 whileSum 입니다 출력시킨다.

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

코딩 테스트 좀 더 해보기!

profile
JAVA 개발자로 가는 길

0개의 댓글

관련 채용 정보