오늘부터 웹 프로그래밍(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 연결로 찾아뵙겠습니다.
'[ 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 |