2022. 9. 21. 11:15ㆍ3층 1구역 - 개발의 장/JSP
1. 서론
뭔가 돌고돌아 본격적으로 jsp를 하는거 같은데....필자가 제목에 jsp는 붙였으나 여태까지 한건 html, js, css이다.
이제 jsp에 자바코드를 적을 수 있게 도와주는
기본 문법에 대해 알아보자.
2. 본론
<%@ Directive %> : 자바 페이지 환결 설정(exam : include file, import)
<%! Declaration(선언부) %> : 자바 코드 작성 (클래스에 작성 방식, field, method, 전역변수, 함수)
<%= Expression(출력부) %> : out.print()와 같은 출력문 작성.
<% Scriptlet(스크립릿) %> : 자바 코드 작성 (메서드 안에 작성 방식), 지역변수
<%-- 주석 --%> : 주석
아래 코드는 스크립릿 내부에 자바코드를 작성할 수 있다는 것을 보여주고 있다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ex01</title>
<!-- http://localhost:8085/jspExam/tag/ex01.jsp -->
</head>
<body>
<%--
<%@ Directive %> : 자바 페이지 환결 설정(exam : include file, import)
<%! Declaration %> : 자바 코드 작성 (클래스에 작성 방식, field, method)
<%= Expression %> : out.print()와 같은 출력문 작성.
<% Scriptlet %> : 자바 코드 작성 (메서드 안에 작성 방식)
--%>
<%
//자바주석
/*자바주석*/
int data = 10;
out.print(data);
%>
<br> <h3><%= data %></h3>
</body>
</html>
스크립릿 내부에 int data = 10; 즉, 10을 data변수에 넣어 out.print(data); 를 통해 10을 출력하는 모습과
Expression(출력부)를 통해 data변수만 작성 == out.print(data); 둘은 같은 뜻이기 때문에
10을 출력한다.
스크립릿에 작성한 out.print();와 <%= Expression(출력부) %>출력이 같다 라는 것을 보여주는 또 다른 코드이다.
<%= Expression(출력부) %>를 썼을 때와 스크립릿을 통해 out.print를 썼을 때 비교 출력을 해주는데
결과를 보면 둘다 동일한 결과를 볼 수 있다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ex02</title>
<!-- http://localhost:8085/jspExam/tag/ex02.jsp -->
</head>
<body>
<%
String name = "홍길동";
%>
<h1>이름은 <%= name %> 입니다.</h1>
<h1>이름은 <% out.print(name); %> 입니다.</h1>
</body>
</html>
아래 코드처럼 변수에 String값이 들어갔다면 java와 동일하게 Integer와 Double형으로 형 변환하여 출력해줄 수 있다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ex03</title>
<!-- http://localhost:8085/jspExam/tag/ex03.jsp -->
</head>
<body>
<%
String data1 = "100";
String data2 = "1.2";
int intData = Integer.parseInt(data1);
double doubleData = Double.parseDouble(data2);
%>
<h1>결과는 <%= intData + doubleData %> 입니다.</h1>
<h1>결과는 <% out.print(intData + doubleData); %> 입니다.</h1>
</body>
</html>
스크립릿에는 자바코드가 들어올 수 있기 때문에 if문도 자유롭게 사용이 가능하다.
%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ex04</title>
<!-- http://localhost:8085/jspExam/tag/ex04.jsp -->
</head>
<body>
<%
boolean data = false;
if (data) {
out.print("참 일때 실행할 문장<br>");
} else {
%>
<h3><%="거짓 일 때 실행할 문장"%></h3>
<%
}
%>
</body>
</html>
for문도 스크립릿을 통해 사용 가능
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ex05</title>
<!-- http://localhost:8085/jspExam/tag/ex05.jsp -->
</head>
<body>
<%
for(int i = 1; i < 7; i++)
out.print(String.format("<h%d> h%d : hello jsp </h%d>", i, i, i));
%>
</body>
</html>
아래 코드는 java내에 util를 사용하는 예제이다.
처음에 기본 문법에 대해 설명할 때 <%@ Directive %> : 자바 페이지 환결 설정(exam : include file, import)
위와 같은 Directive가 있다.
대개 스크립릿에 자바코드를 작성할 때 Ctrl + space키를 통해 자동완성 추천을 받아 알아서 import를 해주는데
jQueary와 같은 다른 라이브러리를 사용할 경우 직접 import 코드를 작성해야 할 듯 하니 지나치지 말고
'이런 애도 있구나~' 라는 정도로 쓰임새만 스쳐지나가도록 하자. (어차피 Array라던가 그런거 쓰면 봐야 돼...)
<%@page import="java.util.Calendar"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ex06</title>
<!-- http://localhost:8085/jspExam/tag/ex06.jsp -->
</head>
<body>
<%
Calendar cal = Calendar.getInstance();
%>
오늘은
<%=cal.get(Calendar.YEAR) %> 년
<%=cal.get(Calendar.MONTH) + 1%> 월
<%=cal.get(Calendar.DATE) %> 일
</body>
</html>
3. 결론
다시 자바코드를 사용하기 시작했다. 치다 보니 알게 된건데, 머리로 생각하기 보단 일단 손이 먼저 코드를 치고 있었다.
필자는 안 그럴 줄 알았는데 강사님께서 어느순간 알아서 칠거 라더니....어느정도 그러고 있다.
흥미롭다...
'3층 1구역 - 개발의 장 > JSP' 카테고리의 다른 글
JSP - 번외) getter와 setter (2022-09-21) (0) | 2022.09.21 |
---|---|
JSP - 기본문법을 이용한 구구단, 1~100 합 구하는 퀴즈(2022-09-21) (1) | 2022.09.21 |
JS - 네이버 회원가입 페이지 베끼는 퀴즈(2022-09-21) (0) | 2022.09.20 |
JSP - 확장자 별로 나누기 (2020-09-16) (0) | 2022.09.19 |
JSP - JavaScript 비밀번호 길이 검사하는 퀴즈 (2020-09-16) (0) | 2022.09.18 |