
2025λ 4μ 2μΌ
<%@ page %>λ JSP νμ΄μ§μ μ€ν νκ²½κ³Ό μμ±μ μ μνλ μ§μμ΄(Directive)μ΄λ€.
νμ΄μ§ μλ¨μμ μ¬μ©νλ©°, JSPκ° μλΈλ¦ΏμΌλ‘ λ³νλ λ μ΄ μ€μ λ€μ΄ λ°μλλ€.
| μμ±λͺ | μ€λͺ |
|---|---|
language | JSPμμ μ¬μ©ν μΈμ΄ (κΈ°λ³Έκ°: java) |
contentType | λΈλΌμ°μ μ λ³΄λΌ μ½ν μΈ νμ (MIME type)κ³Ό λ¬Έμ μΈμ½λ© |
pageEncoding | JSP νμΌ μ체μ μΈμ½λ© |
import | μ¬μ©ν μλ° ν΄λμ€(ν¨ν€μ§)λ₯Ό κ°μ Έμ΄ |
errorPage | μμΈ λ°μ μ ν¬μλ©ν JSP νμ΄μ§ |
isErrorPage | μλ¬ μ²λ¦¬μ© νμ΄μ§μΈμ§ μ¬λΆλ₯Ό μ§μ (true/false) |
<%@ page errorPage="02Error.jsp" %>
<%
if (request.getParameter("name").isEmpty()) {
throw new Exception("μ΄λ¦μ μ
λ ₯νμΈμ");
}
%>
<%@ page isErrorPage="true" %>
<%= exception.getMessage() %>
β errorPageμ isErrorPageλ λ°λμ μμΌλ‘ μ¬μ©ν΄μΌ ν¨
κ·Έλ μ§ μμΌλ©΄
exceptionλ΄μ₯ κ°μ²΄λ₯Ό μ¬μ©ν μ μμ
DTO(Data Transfer Object)λ λ°μ΄ν°λ₯Ό μ λ¬νκ±°λ μλ΅ν λ μ¬μ©νλ μμ λ°μ΄ν° κ°μ²΄μ΄λ€.
λΉμ¦λμ€ λ‘μ§ μμ΄ νλ, μμ±μ, getter/setterλ§ ν¬ν¨λλ©°,
MVC ν¨ν΄μμ Viewμ Controller κ° λ°μ΄ν° μ λ¬μ λ§€μ° μμ£Ό μ¬μ©λλ€.
package C03;
public class SimpleDTO {
private String name;
private Integer age;
private String addr;
// κΈ°λ³Έ μμ±μ
public SimpleDTO() {}
// λͺ¨λ νλλ₯Ό μ΄κΈ°ννλ μμ±μ
public SimpleDTO(String name, Integer age, String addr) {
this.name = name;
this.age = age;
this.addr = addr;
}
// getter & setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
@Override
public String toString() {
return "SimpleDTO [name=" + name + ", age=" + age + ", addr=" + addr + "]";
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page import="C03.SimpleDTO" %>
<%
// DTO κ°μ²΄ μμ±
SimpleDTO dto = new SimpleDTO("νκΈΈλ", 55, "λꡬ");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>DTO μΆλ ₯</title>
</head>
<body>
name : <%= dto.getName() %> <br/>
age : <%= dto.getAge() %> <br/>
addr : <%= dto.getAddr() %> <br/>
</body>
</html>
πΈ μ½μ μ λ ₯μ© Scannerλ JSPμμ μ¬μ© λΆκ°μ΄λ―λ‘ μ κ±°
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="02Error.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>μ
λ ₯νΌ</title>
</head>
<body>
<form action="02Main.jsp">
<input type="text" name="name" placeholder="μ΄λ¦"/><br/>
<input type="text" name="age" placeholder="λμ΄"/><br/>
<input type="text" name="addr" placeholder="μ£Όμ"/><br/>
<button>μ μ‘</button>
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="C03.SimpleDTO" %>
<%
// μ
λ ₯κ° μμ
String name = request.getParameter("name");
String age = request.getParameter("age");
String addr = request.getParameter("addr");
// μ ν¨μ± κ²μ¬
if (name == null || name.isEmpty()) throw new Exception("μ΄λ¦μ μ
λ ₯νμΈμ");
if (age == null || age.isEmpty()) throw new Exception("λμ΄λ₯Ό μ
λ ₯νμΈμ");
if (addr == null || addr.isEmpty()) throw new Exception("μ£Όμλ₯Ό μ
λ ₯νμΈμ");
// DTO κ°μ²΄ μμ±
SimpleDTO dto = new SimpleDTO(name, Integer.parseInt(age), addr);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>μ
λ ₯κ²°κ³Ό</title>
</head>
<body>
μ΄λ¦ : <%= dto.getName() %><br/>
λμ΄ : <%= dto.getAge() %><br/>
μ£Όμ : <%= dto.getAddr() %><br/>
DTO μ 체 μ 보: <%= dto %>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>μλ¬ νμ΄μ§</title>
</head>
<body>
<h1>ERROR PAGE...</h1>
<hr/>
<%= exception.getMessage() %>
</body>
</html>
page μ§μμ΄λ JSP μ€ν μ€μ μ λ΄λΉνλ©°, νΉν errorPage, isErrorPageλ μμΈ μ²λ¦¬ νλ¦ κ΅¬μ±μ ν΅μ¬μ μ΄λ€.request.getParameter()λ‘λ§ λ°μμΌ νλ€.μ΄λ² JSP μ€μ΅μ ν΅ν΄ page μ§μμ΄μ μν μ λͺ
ννκ² μ΄ν΄ν μ μμκ³ ,
errorPageμ isErrorPageμ κ΄κ³λ₯Ό μ€μ΅μ ν΅ν΄ μ§μ 체λν μ μμλ€.
λν DTO κ°μ²΄λ₯Ό ν΅ν΄ μΆλ ₯ ꡬ쑰λ₯Ό κΉλνκ² κ΅¬μ±ν μ μλ€λ κ²λ 체κ°ν μ μμλ€.
μ΄ κ΅¬μ‘°λ₯Ό κΈ°λ°μΌλ‘ λ€μ λ¨κ³μμλ Servletκ³Ό JSPλ₯Ό λΆλ¦¬ν MVC2 κ΅¬μ‘°λ‘ νμ₯νμ¬ μ€μ μΉ νλ‘μ νΈμ μ μ©ν΄λ³΄κ³ μΆλ€.
page μ§μμ΄λ₯Ό ν΅ν΄ μ€ν νκ²½μ ꡬμ±errorPage + isErrorPage μ‘°ν©μΌλ‘ μλ¬ νλ¦ μ μ΄ κ°λ₯