웹개발 교육/jsp

[47일] jsp (3) - 기본 문법

ewok 2022. 10. 4. 16:19

basic 폴더를 생성하여 작업한다.

 

jsp파일을 생성하면 1번 줄에 에러 표시가 나오는데 실제로 에러가 발생하지 않는다. 이 표시를 없애주기 위해 아까 압출을 푼 apache-tomcat-9.0.67안에 lib 폴더 안에 servlet-api 파일을 아까 jar 파일을 넣어둔 lib 폴더에 복사하여 붙여 넣는다.

프로젝트를 refresh, validate, clean 해준 후 이클립스를 재시작하면 에러 표시가 사라질 것이다.(만약 사라지지 않는다면 다시 한번 반복해보자)

 

주석

JSP 코드의 주석은 <%-- --%>를 사용한다.

<%-- JSP 코드 주석 --%>
<%-- JSP 주석 자동 코딩 Ctrl+Shift+/ --%>

 

JSP Directive (지시자)

<%@ page %>
<%@ include %>
<%@ taglib %>

 

<%@ page %> 지시자

language=""        생략 가능
contentType=""     필수 요소
pageEncoding=""    생략 가능
import=""          자바 패키지 및 자바 클래스 선언

 

JSP 페이지에서 사용 가능한 문법

- HTML tag
- CSS           <style></style>
- JavaScript    <script></script>
- JSP           <% %>

 

JSP 코드 작성 영역 선언

<% %> 스크립트릿(Scriptlet)

 

01_jsp기본문법.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
    
<%-- JSP 코드 주석 --%>
<%-- JSP 주석 자동 코딩 Ctrl+Shift+/ --%>
<%--
	● 한글 인코딩 - 섞어 쓰지 않도록 주의
		- 조합형(UTF-8)  : 초성+중성+종성으로 조합. 더 많은 한글 표현이 가능
		- 완성형(EUC-KR) : MS949

	● JSP Directive(지시자)
		<%@ page %>
		<%@ include %>
		<%@ taglib %>
	
	● <%@ page %> 지시자
		language=""        생략 가능
		contentType=""     필수 요소
		pageEncoding=""    생략 가능
		import=""          자바 패키지 및 자바 클래스 선언
		
	● JSP 페이지에서 사용 가능한 문법
		- HTML tag
		- CSS           <style></style>
		- JavaScript    <script></script>
		- JSP           <% %>
		
	● JSP 코드 작성 영역 선언
		<% %> 스크립트릿(Scriptlet) 

 --%>
    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>01_JSP기본문법.jsp</title>
</head>
<body>
	<h3>JSP 기본문법</h3>
	<hr>
	<h4>대한민국</h4>
	<hr>
	1+2+3
	<hr>
	
	<%
		//한줄 주석
		/* 여러 줄 주석 */
		/*
			스크립트릿(Scriptlet)
			- JSP 코드 작성 영역
			- Tomcat WAS에 의해 JSP 코드가 해석되고, 결과값을 HTML 문서로 변환해서
			  Frontend단으로 응답해준다.		
		*/
		out.print("무궁화");
		out.print(123+456);
		out.print(5+7);
		out.print(8.9);
		out.print('X');
		/*
			● 결과확인
	        	http://localhost:9090/basic04_web/basic/01_JSP기본문법.jsp
		        - http://                프로토콜
		        - localhost:9090/        내시스템:port번호
		        - basic04_web            Context Path 프로젝트명
		        - /basic/01_JSP기본문법.jsp 경로명 및 파일명
	        
			● Context root 가상의 경로 : basic04_web
			    basic04_web의 실제 물리적 경로(src/main/webapp)는 외부에서 접근 불가능
			    프로젝트명 basic04_web으로 접근해야 한다
			    에러 http://localhost:9090/src/main/webapp/basic/01_JSP기본문법.jsp
		*/
		
		//HTML 태그를 JSP에서 사용하는 경우 "" 안에서 작성
		out.print("<h1>악마</h1>");
		out.print("<img src='../images/devil.png'>");
		out.print("<hr>");
	%>
</body>
</html>

서버를 통해 실행 시키면

위와 같이 나오고 페이지 소스를 보면

사용자에게 갈 때는 jsp가 번역되어 html로 간다.

 

HTML 태그를 JSP에서 사용하는 경우 "" 안에서 작성한다.

 

스크립트릿은 문서에 여러 번 가능하다

<%
    out.println("<style>.txt{color:red}</style>");
    out.println("<span class=txt>오필승코리아</span>");	
%>

println은 <br>을 의미하는게 아닌 페이지 소스에서 엔터를 주기위함이다.