day04
- jsp 페이지에서 동이한 ㅐㄴ용이라도 자바 코드를 기술하기 보다는
태그를 기술하는 것이 지저분하지 않고 깔끔하게 코딩할 수 있어
가독성 높은 소스코드를 작성할 수 있다. 코드 양을 대폭 줄일 수 있다.- 페이지와 페이지 사이를 제어하거나 다른 페이지의 실행 결과
내용을 현재 페이지에 포함하거나 자바 빈즈(객체)등의 다양한
기능을 제공한다.- 액션 태그는 XML 문법을 따른다. 즉 시작 태그와 함께 반드시
종료 태그를 포함해야 한다.- 액션 태그의 기본 형식 : <jsp: ... 속성: 값> 내용 </jsp: ...>
- 내용이 없는 액션 태그의 형식 : <jsp: ... 속성: 값 />
- forward(<jsp:forward />)
-> 다른 페이지로의 이동, 페이지 흐름 제어- include(<jsp:include />)
-> 외부 페이지의 내용을 포함하거나 페이지 모듈화- param(<jsp"param />)
-> 현재 페이지에서 다른 페이지에 대한 정보를 전달할
때 사용- useBean(<jsp:useBean />)
-> 빈(bean)을 생성하고 사용하기 위한 환경을 정의하는
액션 태그- setProperty(<jsp:setPreperty />)
-> 빈에서 속성 값을 할당- getProperty(<jsp:getProperty />)
-> 빈에서 속성 값을 얻어올 때 사용
forward_test.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>
<form action="controller.jsp">
<select name="site">
<option value="naver">네이버</option>
<option value="google">구글</option>
<option value="daum">다음</option>
</select>
<input type="submit">
</form>
</body>
</html>
controller.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 site = request.getParameter("site");
String resultURI = "";
if(site.equals("naver")) {
resultURI = "forward_naver.jsp";
} else if (site.equals("google")) {
resultURI = "forward_google.jsp";
} else if (site.equals("daum")){
resultURI = "forward_daum.jsp";
}
%>
<jsp:forward page="<%= resultURI %>" />
</body>
</html>
forward_naver.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>
<script>
window.open("https://www.naver.com","_self");
</script>
</body>
</html>
forward_google.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>
<script>
window.open("https://www.google.com","_self");
</script>
</body>
</html>
forward_daum.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>
<script>
window.open("https://www.daum.net","_self");
</script>
</body>
</html>
결과값
localhost:8081/form/forward_test.jsp
-> form 폴더 안에 forward_test.jsp가 있기때문에 /form를 붙여준다
네이버 구글 다음 선택지가 생김
제출 버튼 클릭시 네이버 출력
param_test.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:forward page="param_result.jsp">
<jsp:param value="apple" name="userid" />
<jsp:param value="김사과" name="username" />
</jsp:forward>
</body>
</html>
param_result.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.getParameter("userid") %> <br/>
<%=request.getParameter("username") %> 님 어서오세요
</body>
</html>
결과값
프로젝트 파일에 CharacterEncodingFilter 삽입 안할시 김사과가 깨져서 나온다.