: HTML을 코딩하기 너무 어렵고 불편해서 HTML 내부에 JAVA 코드를 삽입하는 형식. 다시말해 서블릿의 단점을 보완하고자 만든 서블릿 기반의 스크립트 기술
서블릿을 이용하게 되면 웹프로그래밍을 할 수 있지만 자바에 대한 지식이 필요하며 화면 인터페이스 구현에 너무 많은 코드를 필요로 하는 등비효율적인 측면들이 있음. 때문에 서블릿을 작성하지 않고도 간편하게 웹프로그래밍을 구현하게 만든 기술이 JSP
: jsp 페이지가 컨테이너에게 필요한 메세지를 보내기 위한 태그
page: jsp 페이지의 전체적인 속성을 지정
include : 다른 페이지를 현재 페이지에 삽입
taglib: 태그라이브러리의 태그 사용(jQuery 삽입할때)\
범위: jsp 파일 전체 (클래스를 import할 경우 파일 내 어디서든 접근할 수 있음)
jsp 페이지의 기본 성격을 나타내는 부분이며 컨테이너가 jsp파일을 서블릿으로 변환시킬 떄 필요한 정보를 기술함. 자바 클래스를 import 시켜서 사용하거나 다른 페이지를 삽입한다거나 할때 사용됨
:변수와 메소드를 선언함
범위: 페이지 내 어디서나 접근할 수 있는 전역 변수 및 메서드
: 변수 또는 메소드의 결과값을 출력
자바 코드를 삽입하는 것보다 더 간단하게 출력 가능
변수나 메소드를 사용할 때 세미콜론(;)을 사용하지 않음
: 자바 코드를 삽입하기 위한 태그
기존 자바 언어를 동일하게 사용할 수 있음
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>커피메뉴</h2>
<form name="form1" method="post" action="/result.jsp">
<input type="radio" name="coffee" id="coffee" value="1" />아메리카노(3000원)<br/>
<input type="radio" name="coffee" id="coffee" value="2" />카페라떼(3300원)<br/>
<input type="radio" name="coffee" id="coffee" value="3" />에스프레소(2500원)<br/>
<input type="radio" name="coffee" id="coffee" value="4" />얼그레이티(3500원)<br/>
수량:<input type="text" name="su" id="su" size="20"/><br/>
입금액:<input type="text" name="money" id="money" size="20"/>
<button onclick="submit">주문처리</button>
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>주문 계산 처리</title>
</head>
<body>
<h3>주문계산 결과</h3>
<%!
int coffee;
String name="";
int price=0;
int su;
int money;
%>
<%
coffee=Integer.parseInt(request.getParameter("coffee"));
//int coffee=Integer.parseInt(request.getParameter("coffee"));이렇게도 가능
su=Integer.parseInt(request.getParameter("su"));
money=Integer.parseInt(request.getParameter("money"));
if(coffee==1)
{
name="아메리카노";
price=3000;
}else if(coffee==2)
{
name="카페라떼";
price=3300;
}else if(coffee==3)
{
name="에스프레소";
price=2500;
}else
{
name="얼그레이티";
price=3500;
}
//<이렇게도 가능>
//switch(coffee)
//{
//case 1: name="아메리카노"; price=3000; break;
//case 2: name="카페라떼"; price=3300; break;
//case 3: name="에스프레소"; price=2500; break;
//case 4: name="얼그레이티"; price=3500; break;
//}
//money =price*su;
//g=money-price*su;
%>
<ul>
<li>커피종류:
<% out.println(name);%> <%-- 커피종류:<%=name%>이렇게도 가능 (보통 이렇게 다 씀)--%>
</li>
<li>1개 가격:
<% out.println(price);%>
</li>
<li>수량:
<% out.println(su);%>
</li>
<li>총 금액:
<% out.println(price*su);%>
</li>
<li>입금액:
<% out.println(money);%>
</li>
<li>거스름돈:
<% out.println(money-price*su);%>
</li>
</ul>
</body>
</html>