본문 바로가기
[ View ]/JSP

[ JSP ] 웹 프로그래밍(JSP)의 개요 및 구성 요소

by 환이s 2023. 3. 1.

오늘부터 웹 프로그래밍(JSP) 포스팅을 해보려 합니다.

 

지금까지 알아본 JAVA, SQL , HTML, JAVAScript를 활용하는 중요한 단계라고 생각합니다. 앞으로 개발자를 준비하시는 분들이라면 꼭 알고 넘어가야 하는 파트이므로, 열심히 포스팅해 보겠습니다!

 

 

■  JSP(JAVA Server Pages)란?

 

JSP동적인 웹 서버에서 동적인 페이지를 만들어주는 서버 사이드 스크립트 언어이며, C/S 환경을 갖고 있습니다.

 

 

 Servlet과 기능적으로는 굉장히 비슷하지만 아주 큰 차이가 있는데, 그건 바로 작성하는 언어의 기반이 다르다는 것입니다.  Servlet클래스의 형태를 띠고 있고 자바의 형태를 온전히 가져가는데 반해 JSP는 HTML 코드를 기반으로 그 사이에 자바 코드를 삽입하는 식으로 만듭니다. 즉, Servlet은 누가 봐도 자바의 형태고 자바 언어를 사용합니다. 하지만 JSP는 HTML 안에 자바 코드를 삽입하는 형식으로 코드를 작성합니다.

 

※ JSP 간단 정리

 

  • 자바 기반 스크립트 언어
  • 자바의 기능을 그대로 사용 가능
  • HTTP에 대한 클라이언트의 요청 처리/응답
  • 웹 애플리케이션에서 결과 화면을 생성할 때 주로 사용
  • JSP는 내부적으로 servlet으로 변환되어 실행됨

 

 

 Servlet에 대해서 좀 더 알아봅시다.

 

■  JAVA Servlet

서블릿이란 웹 페이지를 독적으로 생성하기 위한 서버 측 프로그램입니다. 

 

이는 자바 언어를 기반으로 만들어지며 웹 애플리케이션 서버(Web Application Sever) 위에서 컴파일되고 동작합니다.

서블릿의 호출 방식은 두 가지만 아시면 됩니다. 이전 포스팅에서도 자주 나왔던 GET, POST 방식입니다. 

호출 방식은 다음과 같습니다.

 

  • get방식 == > doGet() 실행
  • post방식 ==> dopost() 실행

ex ) <form method = "post">

 

web.xml을 이용한 서블릿 매핑 방법

 

web.xml : 배치기술서(deploy descriptor), jsp 프로젝트의 중요 정보들이 기록됩니다.

<servlet>
<servlet-name>서블릿의 별칭</servlet-name>
<servlet-class>서블릿 클래스 이름</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>서블릿의 별칭</servlet-name>
<url-pattern>서블릿을 호출할 url</url-pattern>
</servlet-mapping

 

■  웹 컨테이너

 

컨테이너는 마치 내용을 담을 수 있는 그릇처럼 특정 요소들을 담을 수 있는 소프트웨어 모듈입니다. 즉, 동적인 데이터들을 처리해 정적인 페이지로 생성해 주는 역할을 합니다.

 

웹 컨테이너는 웹 애플리케이션을 실행할 수 있는 컨테이너로서 JAVA Servlet과 상호작용하는 WAS(Web Application Server)의 구성 요소로서 Servlet의 생명주기(Life Cycle)를 관리하며 JSP와 Servlet을 실행해 줍니다. 

 

지금까지 웹 프로그래밍 개요 및 구성 요소에 대해서 알아봤습니다.

그럼 지금부터 문법과 예제코드를 통해서 JSP의 기본 문법에 대해서 알아봅시다.

 

■  JSP의 기본 문법

 

scriptlet(스크립틀릿)
<% 자바코드 영역 %> 


expression(표현식) : 웹브라우저에 출력
<%=식 or 값%>
<% out.println(식 or 값); %> 


Jsp 선언문 - 근래에는 잘 안쓴다. (model 1 ==> model 2)
<%! 전역변수, method 선언 %>


페이지 지시어(page directive)
<%@ page language="java" 타입등 %>

 

예제 코드를 통해서 스크립틀릿, 표현식, 선언문에 대해서 알아봅시다.

 

<예제 1>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>declarationTest</title>
</head>
<body>
<% //스크립틀릿
 String str1 ="java1";
%>
<%! //jsp 선언부(변수,메소드 선언 기능), 주의 !표시 꼭 해야함
	String str2="hello";
	String getStr2(){
		return str2;
	}
%>

// 표현식
<%= str1 %><br>
<%= str2 %><br>
<%= getStr2() %>

</body>
</html>

 

 

페이지 지시어 예제로는 현재 날짜를 출력하는 예제 코드를 통해서 알아봅시다.

 

<예제 2>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ page import="java.util.Date" %> // 페이지 import 지시어
    <%@ page import="java.text.SimpleDateFormat" %> // 페이지 import 지시어
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>date</title>
</head>
<body>
<%
Date nowDate = new Date(); // 날짜 객체
out.println(nowDate+"<br>"); //화면 출력
System.out.println(nowDate);//톰캣의 console에 출력

//HH 24시간, hh 12시간, a 오전/오후
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy년 mm월 dd일 a HH:mm:ss");
String formatDate = dateFormat.format(nowDate);
%>
<!-- 표현식 -->
현재 날짜는 <%= formatDate %> 입니다. <br>

<!-- 스크립틀릿 -->
현재 날짜는 <% out.println(formatDate); %>입니다.

</body>
</html>

 

 


마치며

 

오늘은 간단한 웹 프로그래밍 개요, JSP 기본 문법을 알아봤습니다.

기본 문법은 자주 사용하므로 기억해 두시는 게 좋습니다.

다음 포스팅은 정말 중요한 웹 프로젝트 생성 및 SQL을 활용한 DB 연결로 찾아뵙겠습니다.

728x90

'[ View ] > JSP' 카테고리의 다른 글

[ JSP ] 에러 처리  (0) 2023.03.06
[ JSP ] 액션 태그  (0) 2023.03.05
[ JSP ] model 종류 및 내장 객체 응용  (0) 2023.03.04
[ JSP ] 내장 객체  (2) 2023.03.03
[ JSP ] DB 연결  (0) 2023.03.02