JSP 230126

조이연·2023년 1월 26일
0

JSP

목록 보기
3/19

JSP(Java Server Pages)란?

: HTML을 코딩하기 너무 어렵고 불편해서 HTML 내부에 JAVA 코드를 삽입하는 형식. 다시말해 서블릿의 단점을 보완하고자 만든 서블릿 기반의 스크립트 기술
서블릿을 이용하게 되면 웹프로그래밍을 할 수 있지만 자바에 대한 지식이 필요하며 화면 인터페이스 구현에 너무 많은 코드를 필요로 하는 등비효율적인 측면들이 있음. 때문에 서블릿을 작성하지 않고도 간편하게 웹프로그래밍을 구현하게 만든 기술이 JSP

1.지시자<%@ %>

: jsp 페이지가 컨테이너에게 필요한 메세지를 보내기 위한 태그
page: jsp 페이지의 전체적인 속성을 지정
include : 다른 페이지를 현재 페이지에 삽입
taglib: 태그라이브러리의 태그 사용(jQuery 삽입할때)\
범위: jsp 파일 전체 (클래스를 import할 경우 파일 내 어디서든 접근할 수 있음)

jsp 페이지의 기본 성격을 나타내는 부분이며 컨테이너가 jsp파일을 서블릿으로 변환시킬 떄 필요한 정보를 기술함. 자바 클래스를 import 시켜서 사용하거나 다른 페이지를 삽입한다거나 할때 사용됨

2. 선언: <%! %>

:변수와 메소드를 선언함
범위: 페이지 내 어디서나 접근할 수 있는 전역 변수 및 메서드

3.표현식: <%= %>

: 변수 또는 메소드의 결과값을 출력
자바 코드를 삽입하는 것보다 더 간단하게 출력 가능
변수나 메소드를 사용할 때 세미콜론(;)을 사용하지 않음

4.스크립트릿 : <% %>

: 자바 코드를 삽입하기 위한 태그
기존 자바 언어를 동일하게 사용할 수 있음

[order.jsp]

<%@ 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>

[reult.jsp]

<%@ 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>
profile
안녕하세요

0개의 댓글