💡 학습 목표
|
- 스크립트릿(Scriptlet): <% ... %> 태그 안에 Java 코드를 작성하여 JSP 페이지에서 실행합니다.
- 선언(Declaration): <%! ... %> 태그 안에 메서드나 변수를 선언합니다.
- 표현식(Expression): <%= ... %> 태그 안에 값을 삽입하여 출력합니다.
<%@page import="java.util.Random"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP 기본 태그 예제</title>
</head>
<body>
<h1>JSP 기본 태그 예제</h1>
<%-- 스크립트 릿: 현재 시간을 java 코드로 가져와서 출력해보자. --%>
<p>현재 시간 : <%
java.util.Date now = new java.util.Date();
// 한국 시간 형식으로 포맷 설정하기
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = sdf.format(now);
out.println(formattedDate);
%>
</p>
<%-- 표현식 : 임의의 숫자를 생성하여 출력 --%>
<p>임의의 숫자 : <%= new Random().nextInt(100) %></p>
<%-- 표현식 : 사용자 정의 메서드 출력 --%>
<p><%= getWelcomeMessage("홍길동 - 허균 ") %></p>
<%-- 선언문 : 사용자 정의 메서드 선언 --%>
<%!
public String getWelcomeMessage(String name) {
return "환영 합니다. " + name + "!!!";
}
%>
<%
Integer visitCount = (Integer)application.getAttribute("visitCount");
if(visitCount == null) {
visitCount = 1;
} else {
visitCount += 1;
}
application.setAttribute("visitCount", visitCount);
%>
<p> 현재 페이지 방문 횟수 : <%=visitCount %></p>
<%
int second = new java.util.Date().getSeconds();
String bgColor;
if(second < 20) {
bgColor = "#FFDDC1";
} else if(second < 40) {
bgColor = "#FFFFC1";
} else {
bgColor = "#C1FFC1";
}
%>
<style>
body {
background-color: <%=bgColor %>
}
</style>
</body>
</html>
실습 코드 2 - cm 단위를 인치로 변환하는 기능 만들어 보기
요구 사항 - 단위 포맷터 기능도 함께 추가 하기
header.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>인치변환기</title>
<style>
.head{
display : flex;
flex-direction : row;
justify-content: space-between;
align-items:center;
margin: 0;
padding: 10xp;
background-color: black;
color: white;
height: 40px;
}
.buttons{
background-color: black;
color: white;
}
.inchConvert {
display: flex;
height: 100vh;
justify-content: center;
align-items: center;
margin: 0;
background-color: #f0f0f0;
}
.container {
background-color: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0, 0, 0 0.1);
width: 300px;
}
form {
}
label {
display: flex;
justify-content: start;
}
input[type="number"] {
margin-bottom: 10px;
width : 290px;
}
input[type="submit"] {
display: flex;
width : 300px;
height : 30px;
margin-top: 15px;
}
input[type="submit"]:hover {
background-color: #45a049;
color: white;
}
</style>
</head>
<body>
<div class="head">
<div>인치 변환기</div>
<div>
<button class="buttons"><a href="form_page.jsp">홈</a></button>
<button class="buttons">로그인</button>
</div>
</div>
form_page.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="header.jsp" %>
<div class="inchConvert">
<div class="container">
<h1>cm를 인치로 변환</h1>
<form action="result.jsp" method="POST">
<label for="num1">cm를 입력하세요</label>
<input type="number" id="num1" name="num1" required="required">
<input type="submit" value="변환">
</form>
</div>
</div>
<%@ include file="footer.jsp" %>
result.jsp
<%@page import="java.text.DecimalFormat"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="header.jsp" %>
<body>
<h1>변환 결과</h1>
<%
// 폼에서 데이터 추출
String num1 = request.getParameter("num1");
// 방어적 코드 작성
if(num1 == null || num1.trim().isEmpty()) {
out.println("cm를 입력하시오");
} else {
Double inputNum1 = Double.parseDouble(num1);
Double result = (inputNum1 / 2.54);
String inchValue = String.format("%.1f", result);
DecimalFormat format = new DecimalFormat("###,###.##");
String resultFormat = format.format(result);
out.println("<p>cm -> inch [ " + resultFormat + " ] Inch 입니다</p>");
}
// 계산의 결과를 스트림을 통해 내려주기
%>
<a href="form_page.jsp">돌아가기</a>
<%@ include file="footer.jsp" %>
footer.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<footer>
<p>최이제 © 2024</p>
</footer>
</body>
</html>
결과물
'JSP > CH03 - JSP 기본 문법과 구조' 카테고리의 다른 글
07. JSP 내장 객체란 뭘까? (0) | 2024.07.04 |
---|---|
06. JSP 지시자(Directive) 간단 정리 (0) | 2024.07.04 |
4. JSP 주석과 지시자 (0) | 2024.07.03 |
3. JSP 기초 문법 (0) | 2024.07.03 |
2. JSP 라이프사이클 (0) | 2024.07.03 |