개발기록/Java

JSP 예제

100'S 2022. 1. 19. 23:22

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>testJSPProject</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <error-page>
    <error-code>404</error-code>
    <location>/views/common/errorPage.jsp</location>
  </error-page>
  <error-page>
    <error-code>500</error-code>
    <location>/views/common/errorPage.jsp</location>
  </error-page>
</web-app>

 

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello JSP!</title>
</head>
<body>
	
	<%@ include file="views/common/header.jsp" %>
	<h1>JSP 연습 페이지!</h1>
	<h3>JSP란?</h3>
	<p>
		JSP(Java Server Page)란, <br />
		1997년 6월 java로 개발된 servlet을 사용하던  <br />
		화면 구현 개발자들이 기존에 java에 작성하던 HTML, CSS 등의  <br />
		화면 관련 소스 코드들을 구현하는데 어려움을 느껴 자바 개발 회사(sun 사)에  <br />
		항의하여 1998년 초에 만들어진 기술이다. <br />
		이로 인해 Servlet 코드 중 화면 구현과 관련된 코드들을  <br />
		별도의 소스코드로 쪼갬으로써 실제 서비스 영역(비즈니스, 자바 코드 영역)과  <br />
		화면 영역으로 분리할 수 있게 되었다.		
	</p>
	
	<h3>테스트 페이지 목록</h3>
	
	<ol>
		<li>
			<a href="views/01_test1.jsp">JSP 테스트1</a>
		</li>
		<li>
			<a href="views/02_date.jsp">JSP 테스트2</a>
		</li>
		<li>
			<a href="views/03_include.jsp">JSP 테스트 3</a>
		</li>
		<li>
			<a href="views/myHome.jsp">include 테스트</a>
		</li>
		<li>
			<a href="views/04_lunchMenu.jsp">서블릿과 통신하기</a>
		</li>
	</ol>
	
	<%@ include file="views/common/footer.jsp" %>

</body>
</html>

 

date.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
    
<%
	Date now = new Date();
	 
	String date = String.format("%tF", now);
	String time = String.format("%tp %tT", now, now);
	// 0000년 00월 00일 00:00:00
	String both = String.format("%tY년%tm월%td일 %tT" , now, now, now, now);
%>

<ul>
	<li>오늘 날짜 : <%= date %> </li>
	<li>현재 시간 : <%= time %></li>
	<li>오늘 날짜 상세 정보 : <%= both %></li>
</ul>

 

test01.jsp

<%-- Directive Tag : 지시자 태그 --%>
<%-- 	사용하려는 JSP 페이지의 설정을 명시하는 태그 --%>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" %>
    
<%-- Declaration Tag : 선언자 태그 --%>  
<%!
	// 변수와 같이 미리 선언하는 값들을 등록하는 영역
	// 자바 주석이 가능하다.
	int num1 = 15;
	int num2 = 30;
%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP 테스트1</title>
</head>
<body>

	<h1>JSP 테스트1</h1>
	<%-- Comment Tag : JSP 주석 태그 --%>
	<!-- 일반 HTML 주석 -->
	<!-- 
		JSP 주석을 포함한 JSP 전용 태그들은 사용자에게 전달되지 않는다. 
		즉, JSP를 Servlet으로 컴파일하면서 자바의 주석과 코드들로 별도 처리된다.
	-->
	
	<%-- Scriptlet Tag : 자바 코드 영역(스크립틀릿 태그) --%>
	<%
		// 자바의 소스 코드를 사용하는 영역
		int sum = 0;
	
		for(int i = 0; i <= 10 ; i++){
			sum += i;
		}
	%>
	
	<%-- Expression Tag : 표현 태그 --%>
	<%--
		자바로 생성된 코드의 값을 출력하는 태그
		사용시에 out.println('값') 형식으로 묶여 나온다.
		표현 태그 안에 작성한 내용을 JSP 내부에서 out.println()으로
		묶어 그 값을 보여주는 태그이며, 안에 ';'을 사용하지 않는다.
	 --%>
	
	<h4>1부터 10까지의 합은 <%= sum %>입니다.</h4>
	
	<h4>num1과 num2의 합은 <%= num1 + num2 %>입니다.</h4>
	
</body>
</html>

 

date.jsp

<%-- 
	지시자 태그는 크게 page, include, taglib 구분자로 사용형식이 나누어진다.
	그 중 page는 해당 jsp 페이지에서 사용하는 설정들을 담당한다.
	또한 선언의 중복을 막기 위해 페이지 내 단 한 번만 사용할 수 있다.
	but, 예외적으로 page의 import 선언은 내용이 길어질 수 있기 때문에, 
	추가적으로 선언이 가능하다. 
 --%>
 
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"  import="java.util.*" %>
<%@ page import="java.util.Scanner, java.text.SimpleDateFormat" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP 테스트 2</title>
</head>
<body>
	<%
		// JSP 역시 java.lang.* 안의 클래스들을 그냥 사용할 수 있다.
		// 하지만 그 밖의 다른 곳에 있는 클래스를 참조하기 위해서는
		// 반드시 import 선언을 해주어야 한다.
		
		Date now = new Date();
		
		String date = String.format("%tF", now);
		String time = String.format("%tp %tT", now, now);
		
		// 0000년 00월 00일 00:00:00
		String both = String.format("%tY년%tm월%td일 %tT" , now, now, now, now);
		
		
	    /*
	            날짜  타입  format  ||               설명
	      ------------------------------------------------
	      %tF                     날짜를 yyyy-mm-dd 형식으로 포맷
	      %tT                     날짜의 시각을 HH:MM:SS 형식으로 포맷.
	      ------------------------------------------------------
	      %tY                     4자리 년도만 출력 
	      %ty                     2자리 년도
	      %tB                     월의 이름(January, February, March...)
	      %tm                     월을 01,02,03 ~12 로 출력
	      %td                     일수를 1~31 로 출력
	      %te                     %td 와 같음.
	      %tA                     요일명 출력
	      ---------------------------------------------------
	      %tp                     오전, 오후를 출력
	      %tk                     시간을 0~23 으로 출력.
	      %tl                     시간을 1~12 로 출력.
	      %tM                     분을 00 ~59 로 출력.
	      %tS                     초를 00 ~ 59 로 출력.
	      -----------------------------------------------------
	      %tZ                     타임존을 출력 (한국은 KST)
	      ---------------------------------------------------
	      */	
	%>
	<ul>
		<li>오늘 날짜 : <%= date %> </li>
		<li>현재 시간 : <%= time %></li>
		<li>오늘 날짜 상세 정보 : <%= both %></li>
	</ul>

</body>
</html>

 

include.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" errorPage="common/errorPage.jsp"%>
<%@ page import="java.util.*" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP 테스트 3</title>
</head>
<body>

<%
	// String str = null;
	// out.println(str.length());
	
%>

	<h1>include 테스트</h1>
	
	<h2>현재 시간 정보 : </h2>
	<%@ include file="common/date.jsp" %>
	
	
	<select name="selectMenue">
		<option value="장고">장고</option>
		<option value="불가사리">불가사리</option>
		<option value="동감">동감</option>
		<option value="나홀로집에">나홀로집에</option>
		<option value="홍콩할매귀신">홍콩할매귀신</option>
	</select>

</body>
</html>

 

 

lunchMenu.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>
	<%@ include file="common/header.jsp" %>
	
	<h1>오늘의 식당</h1>
	<h3>원준수 사장님의 손맛 SBC에 나온 그곳</h3>	
	
	<%@ include file="common/date.jsp" %>
	
	<form action="/jsp/menuOrder.do" method="get">
		<select name="menuSelect">
			<option value="족발">족발</option>
			<option value="보쌈">보쌈</option>
			<option value="칼국수">칼국수</option>
			<option value="수제비">수제비</option>
			<option value="해물파전">해물파전</option>
		</select>
		
		<button type="submit">선택 완료</button>
	</form>
	
	<%@ include file="common/footer.jsp" %>
	
</body>
</html>

 

menuResult.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>
	<h1>원 할배 보쌈</h1>
	
	<%
		String menu = (String)request.getAttribute("menu");
		int price = (int)request.getAttribute("price");
	%>
	
	<p>
		주문하신 음식 나왔습니다. <br />
		가격표 놓고 갑니다. <br />
		음식 : <%= menu %> <br />
		가격 : <%= price * 1.1 %>  <br />
	</p>
	
	<h1>이용해주셔서 감사합니다. 또 올라믄 오구 말라믄 말구 </h1>
	
</body>
</html>

 

 

 

 

 

'개발기록 > Java' 카테고리의 다른 글

서블릿 예제2  (0) 2022.01.19
서블릿 예제1  (0) 2022.01.19
Ajax 예제  (0) 2022.01.19
서블릿 리스너 ( Servlet Listner)  (0) 2022.01.13
Filter와 Wrapper  (0) 2022.01.13