본문 바로가기
강의/JSP 강의 정리

JSP 강의 정리 8일차

by 리드민 2022. 7. 15.
반응형

[1] 테스트 환경

hardware
cpu : intel i7-7700, gpu : intel hd 630, ram : ddr4 16GB, mainboard : samsung DB400S7A-Z51, secondary storage : 256GB SSD, 1TB HDD
OS
windows pro 64bits
software
jdk version 1.8.0_301
eclipse version 2021-09 (4.21.0)
apache-tomcat version 9.0.54

 

[2] 강의 정리

()

formEx.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	
	<!-- 
		form 태그로 이름 나이 전화번호 주민번호 취미(checkbox)
		사는지역(select)을 입력받아 requestEx.jsp 로 전송하기
	 -->
	
	<form action="requestEx.jsp" method="post">
	
		이름 : <input type="text" name="name" size="10"><br>
		나이 : <input type="text" name="age" size="10"><br>
		전화번호 : <input type="text" name="tel" size="15"><br>
		주민번호 : <input type="text" name="ssn" size="20"><br>
		
		취미 : <input type="checkbox" name="hobby" value="run">달리기
		<input type="checkbox" name="hobby" value="game">게임하기
		<input type="checkbox" name="hobby" value="read">독서
		<input type="checkbox" name="hobby" value="swim">수영
		<br>
		
		사는지역 : 
		<select name="area">
			<option value="seoul">서울</option>
			<option value="daejeon">대전</option>
			<option value="daegu">대구</option>
			<option value="busan">부산</option>
		</select>
		<br>
		
		<input type="submit" value="서버로 전송">
		
		
	</form>
	
</body>
</html>

 

requestEx.jsp

<%@page import="java.util.Arrays"%>
<%@ 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>
	
	<%--
		선언문으로 form에서 넘어올 데이터를 받을 변수선언
		스크립트릿으로 데이터 받기
		표현식으로 웹브라우저에 출력하기
	 --%>
	
	<%!
		String name, age, tel, ssn, area;
		String[] hobby;
	%>
	
	<%
		request.setCharacterEncoding("UTF-8");
	
		name = request.getParameter("name");
		age = request.getParameter("age");
		tel = request.getParameter("tel");
		ssn = request.getParameter("ssn");
		area = request.getParameter("area");
		
		hobby = request.getParameterValues("hobby");
		
	%>
	
	
	이름 : <%=name %><br>
	나이 : <%=age %><br>
	전화번호 : <%=tel %><br>
	주민번호 : <%=ssn %><br>
	사는지역 : <%=area %><br>
	취미 : <%=Arrays.toString(hobby) %>
	
		
	
	
	
</body>
</html>

 

()

formEx.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	
	<!-- 
		form 태그를 사용해서 정답을 입력받은 후 responseEx.jsp로 전송하기	
	 -->
	
	<h2>QUIZ : 아버지를 아버지라고 부르지 못하는 인물은?</h2>
	
	<form action="responseEx.jsp" method="post">
		
		정답 : <input type="text" name="name" size="10"><br>
		
		<input type="submit" value="정답 전송">
		
	</form>
	
</body>
</html>

 

responseEx.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>
	
	<%--
		폼에서 넘어온 데이터를 받고 이름이 홍길동과 같다면
		response 객체의 sendRedirect 메소드로 OK.jsp로 보내기
		만약 다르다면 NG.jsp로 보내기
	 --%>
	
	<%
		request.setCharacterEncoding("UTF-8");
		
		String name = request.getParameter("name");
		
		if(name.equals("홍길동")){
			
			response.sendRedirect("OK.jsp");
			
		}else{
			response.sendRedirect("NG.jsp");
		}
	
	%>
	
</body>
</html>

 

OK.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>
	
	<a href="formEx.html">처음으로 이동</a>
	
</body>
</html>

 

NG.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>
	
	<a href="formEx.html">처음으로 이동</a>
	
</body>
</html>

 

()

formEx.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	
	<!-- 
		form 태그로 여행할 나라를 <select> 태그로 만들기
		forwardEx.jsp 로 전송하기  
	 -->
	
	<h2>가고싶은 여행지</h2>
	
	<form action="forwardEx.jsp" method="post">
		여행지 선택 : 
		<select name="nation">
			<option value="보라카이">보라카이</option>
			<option value="태국">태국</option>
			<option value="중국">중국</option>
			<option value="하와이">하와이</option>
			<option value="영국">영국</option>
		</select>
		
		<input type="submit" value="여행지전송">
		
	</form>
	
</body>
</html>

 

forwardEx.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>
	
	<%--
		jsp 액션태그로 nation.jsp로 forward 하기
	 --%>
	<%
		request.setCharacterEncoding("UTF-8");
	%>
		
	<jsp:forward page="nation.jsp">
		<jsp:param value="홍길동" name="name"/>
	</jsp:forward>
	
</body>
</html>

 

nation.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>
	
	<%--
		넘어온 데이터를 받아 출력하기 
	 --%>
	<%
		String nation = request.getParameter("nation");
		String name = request.getParameter("name");
	%>
	
	<h2><%=name %>님 <%=nation %> 에 도착했습니다.</h2>
	
	
</body>
</html>

 

()

responseForm.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	
	<form action="responseSend.jsp" method="post">
		
		당신의 나이는 : <input type="number" name="age">
		
		<input type="submit" value="나이전송">
		
	</form>
	
</body>
</html>

 

responseSend.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>
	
	<%
		String str = request.getParameter("age");
		
		int age = Integer.parseInt(str);
		
		if(age >= 20){
			
			response.sendRedirect("OK.jsp?age=" + age);
			
		}else{
			response.sendRedirect("NG.jsp?age=" + age);
		}
		
		// 서버는 클라이언트의 요청에 대해 특정 URL로 이동을 요청할 수 있다.
		// 이를 리다이렉트라고 한다. 데이터 없이 단순 이동일때 사용한다.
		
	%>
	
</body>
</html>

 

OK.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>

	<%
		String age = request.getParameter("age");
	%>
	
	<h2>성인입니다.</h2>
	
	<h2>입력하신 나이는 : <%=age %></h2>
	
	<a href="responseForm.html">처음으로 이동</a>
	
</body>
</html>

 

NG.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>

	<%
		String age = request.getParameter("age");
	%>

	<h2>미성년자 입니다.</h2>
	
	<h2>입력하신 나이는 : <%=age %></h2>
	
	<a href="responseForm.html">처음으로 이동</a>
</body>
</html>

 

()

forwardForm.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	
	<h2>중국음식 중 좋아하는 음식은?</h2>
	
	<form action="forward.jsp" method="post">
	
		<select name="food">
			<option value="탕수육">탕수육</option>
			<option value="팔보채">팔보채</option>
			<option value="꿔바로우">꿔바로우</option>
			<option value="유린기">유린기</option>
		</select>
		
		<input type="submit" value="음식 전송">
		
	</form>
	
</body>
</html>

 

forward.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>
	
	<%
		request.setCharacterEncoding("UTF-8");
	%>
	
	<jsp:forward page="food.jsp" ></jsp:forward>
	
	
	<%--
		하나의 JSP페이지에서 다른 JSP페이지로 요청처리를 전달할때 사용된다.
		웹브라우저의 주소는 그대로 요청받은 JSP 주소로 유지된다.
		요청 흐름이 이동할때 request, response 기본객체가 전달된다.
	 --%>
	
</body>
</html>

 

food.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>
	
	<%
		String food = request.getParameter("food");
	%>
	
	
	<h2>홍길동님 당신은 중국음식 중 <%=food %> 를 좋아하시네요~!!</h2>
	
</body>
</html>

 

()

include01.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>
	
	<%
		int a = 100;
	%>
	
	<h1>include01 페이지 입니다.</h1>
	
	<%@include file="include02.jsp" %>
	
	<h3>다시 include01 페이지 입니다.</h3>
	
	<%--
		include란 현재문서에 다른문서 
		즉 다른파일의 내용을 포함시켜 출력하는 것을 말한다.
		include지시자는 주로 조각난 코드를 삽입하고자 할때 사용된다.
		요청한 소스코드를 텍스트에 포함해서 하나로 인식해서 컴파일한다.
	 --%>
	
</body>
</html>

 

include02.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>include02 페이지 입니다.</h2>
	
<%-- 	<p><%=a %></p> --%>
	
</body>
</html>

 

include03.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>
	
	<%
		int a = 100;
	%>
	
	<h3>include03페이지 입니다.</h3>
	
	<jsp:include page="include04.jsp"></jsp:include>
	
	<h1>다시 include03페이지 입니다.</h1>
	
	<%--
		include 액션태그를 만나면 해당페이지로 실행제어가 넘어가서
		포함되는 페이지를 실행시킨다. 해당 페이지의 실행이 종료되면
		원래페이지로 복귀하며 최종적으로 클라이언트에게 보여지게 된다.
	 --%>
	
</body>
</html>

 

include04.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>include04페이지 입니다.</h2>
	
<%-- 	<p><%=a %></p> --%>
	
</body>
</html>
반응형

'강의 > JSP 강의 정리' 카테고리의 다른 글

JSP 강의 정리 10일차  (0) 2022.07.19
JSP 강의 정리 9일차  (0) 2022.07.18
JSP 강의 정리 7일차  (0) 2022.07.14
JSP 강의 정리 6일차  (0) 2022.07.13
JSP 강의 정리 5일차  (0) 2022.07.12