반응형
[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 |