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 |