1. 템플릿 데이터
; 클라이언트에 전송될 데이터를 가지고 있으며, JSP 엔진이 자동으로 자바 코드를 생성한다
<Calculator.jsp>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>JSP 계산기</h2>
<form action="Calculator.jsp" method="get">
<!-- v1이 위에서 지정된 값으로 변환되어 전달됨 -->
<input type='text' name="v1" size="4" value="<%=v1 %>">
<select name="op">
<option value="+" <%=selected[0] %>> + </option>
<option value="-" <%=selected[1] %>> - </option>
<option value="*" <%=selected[2] %>> * </option>
<option value="/" <%=selected[3] %>> / </option>
</select>
<input type="text" name="v2" size="4" value="<%=v2 %>">
<input type="submit" value="">
<input type="text" size="8" value="<%= result %>"><br>
</form>
</body>
</html>
<Calculator_jsp.java>
out.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \n");
out.write("\t\"http://www.w3.org/TR/html4/loose.dtd\">\n");
out.write("<html>\n");
out.write("<head>\n");
out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n");
out.write("<title>계산기</title>\n");
out.write("</head>\n");
out.write("<body>\n");
out.write("<h2>JSP 계산기</h2>\n");
2. JSP 지시자 <%@ %>
; JSP에서 사용할 프로그래밍 언어 지정
; 인코딩 타입 지정
; JSP 페이지에 선언할 클래스 또는 패키지 정보
<Calculator.jsp>
<%@ page import="java.util.*,java.io.*" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8” %>
<Calculator_jsp.java>
response.setContentType("text/html; charset=UTF-8");
import java.util.*;
import java.io.*;
3. 스크립트릿 <% %>
; 서블릿 클래스의 _jspService() 매서드에 그대로 복사되는 영역
<Calculator.jsp>
<%
String v1 = "";
String v2 = "";
String result = "";
String[] selected = {"","","",""};
// 브라우저로부터의 요청에 v1값이 있을 때만 실행
if(request.getParameter("v1")!=null){ // _jspService에 이미 선언된 변수라서 가능
v1 = request.getParameter("v1");
v2 = request.getParameter("v2");
String op = request.getParameter("op");
result = calculate(Integer.parseInt(v1), Integer.parseInt(v2), op);
}
%>
<Calculator_jsp.java>
public void _jspService(…) throws … {
…
try {
…
out.write('\n');
String v1 = "";
String v2 = "";
String result = "";
String[] selected = {"", "", "", ""};
// 브라우저로부터의 요청에 v1값이 있을 때만 실행
if (request.getParameter("v1") != null) { // _jspService에 이미 선언된 변수라서 가능
v1 = request.getParameter("v1");
v2 = request.getParameter("v2");
String op = request.getParameter("op");
result = calculate(
Integer.parseInt(v1),
Integer.parseInt(v2),
op);
...
4. JSP 선언문 <%! %>
; 필드(멤버변수), 메서드, 내부 클래스가 선언되는 영역
; 위치는 _jspService() 바깥, 즉 Calculator_jsp 클래스의 멤버 매서드로 선언된다
<Calculator.jsp>
<%!
private String calculate(int a, int b, String op){
int r = 0;
if("+".equals(op)){
r = a + b;
}else if("-".equals(op)){
r = a - b;
}else if("*".equals(op)){
r = a * b;
}else if("/".equals(op)){
r = a / b;
}
return Integer.toString(r);
}
%>
<Calculator_jsp.java>
private String calculate(int a, int b, String op) {
int r = 0;
if ("+".equals(op)) {
r = a + b;
} else if ("-".equals(op)) {
r = a - b;
} else if ("*".equals(op)) {
r = a * b;
} else if ("/".equals(op)) {
r = a / b;
}
return Integer.toString(r);
5. JSP 표현식 <%= %>
; 템플릿 데이터 내에서 자바 출력문을 생성하는 영역
<Calculator.jsp>
<input type="text" name="v1" size="4" value="<%=v1%>">
<select name="op">
<option value="+" <%=selected[0]%>>+</option>
<option value="-" <%=selected[1]%>>-</option>
<option value="*" <%=selected[2]%>>*</option>
<option value="/" <%=selected[3]%>>/</option>
</select>
<input type="text" name="v2" size="4" value="<%=v2%>">
<input type="submit" value="=">
<input type="text" size="8" value="<%=result%>"><br>
<Calculator_jsp.java>
out.print(v1);
out.print(selected[0]);
out.print(selected[1]);
out.print(selected[2]);
out.print(selected[3]);
out.print(v2);
'Programming > Java * Spring' 카테고리의 다른 글
[JSP] DataSource의 장점과 셋팅 방법 (0) | 2019.06.11 |
---|---|
[JSP] EL(Expression Language), JSTL(JSP Standard Tag Library) 정리 (0) | 2019.06.10 |
[JSP] JSP의 구동 원리 (0) | 2019.06.03 |
[Java] 16. Annotation의 개념과 활용 (0) | 2019.06.03 |
[JSP] get request vs. post request 비교 (0) | 2019.05.31 |