본문 바로가기
코딩도전기/JSP

CODO Day14_Java Servlet(server) Page(Web/WAS/TOMCAT/Scriptlet/내장객체(Request객체))

by 코도꼬마 2023. 2. 20.

# 프로그램 다운로드 시

  • Binary : 실행파일
  • Source  : Code 

 

 

Web의 구성

  • ServerClient에게 request를 받아 response를 보냄
  • Clientrequest를 받아야만 response를 보낼 수 있음(Server가 먼저 보낼 수 없음)
  • Script 언어인 JSP를 사용하여 간단하게 Web을 처리 할 수 있음
  • JSP를 JAVA 코드로 자동변환해 주는 것이 WAS인 TOMCAT

 

WAS(Web Application Server)

  • 다양한 로직 처리 요구시 동적인 컨텐츠를 제공하기 위해 만들어진 애플리케이션 서버

 

WAS 구동

  • Dynamic Web Project/WebContent/WEB-INF/lib/web.xml 안에 있는 welcome-file-list 중에서 해당파일을 찾아 서버 실행
  • 404error : 원하는 페이지를 찾지 못했다는 에러
<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
</welcome-file-list>

 

 

주소창

http://localhost/8080/01_Start/

 

  • localhost  :  IP Address(건물이름)
  • 8080  :  Port(00호)
  • 01_Start  :  Service Name
  • 원래 

# 주소창의 IP를 제외한 port와 Service Name은 물리적 변화 없이 변경 가능

  • Server 폴더의 server.xml에서는 port번호 및 기타설정을 변경할 수 있음
  • Executor 옵션을 통해 톰캣의 요청처리를 Thread pool로 사용할 수 있음
  • Context는 root폴더를(docBase) 어느 url(path)로 매칭할 것인지 설정할 수 있음
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>Hello</h1>
</body>
</html>

 

  • 순수 JSP만으로 이루어지는 개발방식은 현재 거의 존재하지 않음
  • 하지만 JSP의 사용법을 이해하면 PHP,  ASP 등의 다른 스크립트 언어를 배우는데 도움이 됨

    스크립트 언어란?
    - 컴파일 없이 인터프리터로 즉시 실행 될 수 있는 언어
    - 컴파일하지 않음 / 목적파일이 없음(JAVA의 경우 class파일)
    - Java script, JSP, ASP, PHP, shell script, VB script

 

  • html은 서버역할을 수행 할 수 없어서 JSP를 사용
  • JSP에서는 Scriptlet을 사용하여 JAVA CODE를 사용

 

Scriptlet 이란? 
Java Server Page(JSP) 페이지에서(쉽게 말하면 HTML 페이지) Java코드를 작성하고 실행할 수 있도록 돕는 코드블록

 

Scriptlet 사용방법

  • <% %>      :  JAVA LOGIC을 표현 할 수 있는 영역
  • <%@ %>  :  Page 속성을 정의하는 영역
  • <%! %>     :  변수나 메서드 선언을 하는 영역
  • <%= %>    :  변수나 메서드 반환 결과를 출력하는 영역
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ include file = "header.jsp" %>
	<ul>
	<% //java 로직 영역을 지정해준다.
	for(int i=0; i<10; i++){
	%>
		<!-- java의 값을 html에 출력하고 싶은 경우 -->
		<li><%=i%></li>
	<%
	}
	%>
	</ul>
	<%@ include file = "footer.jsp" %>
</body>
</html>

 

 

Scriptlet 영역 구분

  • if문은 html에서 사용할 수 없으므로 영역으로 처리
  • for문 역시 html에서 사용할 수 없으므로 영역으로 처리 / i 값은 java code로 부터 나온 값이므로 출력문으로 표시
  • scriptlet으로 출력되는 정보를 java script에서도 활용 가능
<%@page import="java.util.Calendar"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%!
	//변수나 메서드 선언문 
	Calendar c = Calendar.getInstance();
	int hour = c.get(Calendar.HOUR_OF_DAY);
	int min = c.get(Calendar.MINUTE);
	int sec = c.get(Calendar.SECOND);
%>
<div class="header">
	현재 시간은 <%=hour%>시 <%=min%>분 <%=sec%>초

	<%
	if(hour>=12){
	%>
		오후입니다.
	<% }else{ %>
		오전입니다.	
	<%	
	}	
	%>
</div>

 

 

JSP 주석 사용법

JAVA와 같으며, JSP구문 전체 주석 부분이 다름

	//한줄 주석
    
	/*
	여러줄 주석
	*/

<%-- 
	영역 자체를 주석
--%>

 

 

TOMCAT에서 JSP를 JAVA로 바꿔주는 방법

  • JSP 저장폴더의 .meta\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\[project]\org\apache\jsp
    - [jsp파일명]_jsp.java 파일

 

 

 

내장 객체

  • Server와 Client 간에는 요청(request)과 응답(response)을 주고 받음
  • 그렇기 때문에 request 객체response 객체는 웹서비스의 핵심 객체
  • JSP는 두 객체처럼 자주 사용하는 객체는 따로 선언하지 않도록 내장객체로 만들어둠
  • 그 외 내장객체 : Cookie, Cookie, Page Context, Out

 

Request 객체

  • Client로부터 온 요청에 관한 모든 정보를 담고 있음(매우 다양)

 

 

# 자바스크립트 변수에 값 할당 시 double quote(“”)로 감싸는 이유

  • 문자열은 "" 안에 넣어주지 않으면 변수로 인식하여 에러가 발생하기 때문에 할당값이 문자열로 작성될 경우 "" 안에 넣음

'코딩도전기 > JSP' 카테고리의 다른 글

JSP Templates 설정  (0) 2023.03.02
CODO Day17_JSP(JSTL태그&함수)  (0) 2023.02.23
CODO Day16_JSP(Scope/AtionTag/JavaBean/ElTag/JSTL)  (0) 2023.02.22
CODO Day15_JSP(Out/Response/Cookie/Session)  (0) 2023.02.21
JSP_TEST  (1) 2023.02.20