본문 바로가기

java,jsp,spring/JSP

JSP 지시자, request/response 객체, 액션태그

지시자

  • 형식
<%@ 지시자 속성=”값”… %>
  • 종류
    • page : JSP 페이지에 대한 정보 설정
    • include : JSP 페이지 특정 영역에 다른 문서를 포함
    • taglib : JSP 페이지에서 액션 태그가 지원하지 못하는 부분을 사용자가 직접 작성하여 그 태그를 불러다 사용
  • 속성
    • language : JSP 페이지가 사용할 프로그래밍 언어 설정
    • extends : JSP가 서블릿으로 변환될때 상속받을 클래스를 지정
    • import : JSP 페이지가 사용할 자바 클래스를 설정
    • contentType : JSP 페이지가 생성할 문서의 콘텐츠 유형을 설정

[include 지시자 예시]

// main01
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<center><h3>[ include 지시자에 대한 예제 ]</h3></center>
	<hr>
		잠시 후를 기대해 주세요.
	<br>
	....<br>
	....<br>
	....<br>
	<%@ include file="sub01.jsp" %>
	<br>
	<br>
		main01.jsp 파일로 돌아왔습니다.
</body>
</html>

//sub01

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<center>
		<hr>
		<i>sub01.jsp 파일의 시작 부분입니다.</i>
		<br>
		<br>
			하이! 반가워요.
		<br>
		<br>
		<i>sub01.jsp 파일의 마지막 부분입니다.</i>
		<hr>
	</center>
</body>
</html>

 

request / response 객체

  • request : 웹 브라우저에서 JSP 페이지로 전달되는 정보의 모임
    • getContextPath() : JSP 페이지가 속한 웹 어플리케이션의 컨텍스트 경로를 구함
    • getRemoteAddr() : 서버에 연결한 클라이언트의 IP를 구함
    • getServerName() : 클라이언트가 연결할 때 사용한 서버 이름을 구함
    • getMethod() : 클라이언트가 요청한 HTTP Method를 구함
    • getProtocol() : 클라이언트가 요청한 프로토콜을 구함
    • getRequestURL() : 클라이언트가 요청한 URL에서 경로를 구함
    • getQueryString() : 클라이언트가 요청한 QueryString을 구함
    • getRequestURI() : 호스트 정보를 제외한 정보를 구함3
  • response : 웹 브라우저에 보내는 응답 정보의 모임
    • sendRedirect(url) : 웹 서버가 웹 브라우저에게 지정한 URL로 자동 이동
    • setIntHeader(name, value) : name 헤더의 값을 정수 값 value로 지정

[request 객체 예시]

<big>접속한 클라이언트의 ip :</big>
<%= request.getRemoteAddr() %><br>
서버의 이름 :
<%= request.getServerName() %><br>
요청 방식 :
<%= request.getMethod() %><br>
프로토콜 : 
<%= request.getProtocol() %><br>
요청한 URL :
<%= request.getRequestURL() %><br>
요청한 URI :
<%= request.getRequestURI() %><br>

[response 객체 예시]

// html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<center>
		<form method="post" action="testLogin.jsp">
			<table>
				<tr>
					<td align="right">아 이 디 :</td>
					<td align="left">
						<input type="text" name="id" size="20" maxlength="20">
					</td>
				</tr>
				<tr>
					<td align="right">패스워드 :</td>
					<td align="left">
						<input type="password" name="pw" size="20" maxlength="20">
					</td>
				</tr>
				<tr>
					<td align="center"> <input type="submit" value="로그인"> </td>
					<td align="center"> <input type="reset" value="취   소"> </td>
				</tr>
			</table>
		</form>
	</center>
</body>
</html>

// 1
<% 
	String s_id = "hong";
	String s_pw = "1234";
	String s_name = "홍길동";
	
	if(s_id.equals(request.getParameter("id"))
		&& s_pw.equals(request.getParameter("pw"))){
		//response.sendRedirect("main.jsp?id="+s_id); // main.jsp로 이동시키는데 queryString에 ?id=s_id 붙임
		response.sendRedirect("main.jsp?name="
		+URLEncoder.encode(s_name, "UTF-8"));
	// 한글을 URL로 넘길 때 encoding 해줘야함
	} else {
		response.sendRedirect("login.html"); // id,pw 일치하지 않으면 로그인 페이지로 이동
	}
%>
// main
<%
	String s_id = request.getParameter("id");
	String s_name = request.getParameter("name");
%>
<%= s_name %>님 안녕하세요!
<br>
저희 홈페이지에 방문해 주셔서 감사합니다.<br>
즐거운 시간 되세요....<br>

 

액션 태그

  • jsp:include : 다른 파일 합치는 태그
  • jsp:forward : 페이지 이동
  • jsp:param : 파라미터 값을 가져옴

[forward 예시]

//yellow.jsp
<body bgcolor="yellow">
	<center><h3>[ forward 액션 태그에 대한 예제]</h3></center>
	<hr>
		이 파일은 yellow.jsp 입니다.
	<br>
	<hr>
		웹브라우저에 나타나는 URL과 전혀 상관없는 파일입니다.
</body>
//red.jsp
<body bgcolor="red">
	<center><h3>[ forward 액션 태그에 대한 예제]</h3></center>
	<hr>
		이 파일은 red.jsp 입니다.<br>
		웹 브라우저에 배경색이 빨간색으로 나타날까요?<br>
		노란색으로 나타날까요?<br>
		forward 액션 태그가 실행되면 이 페이지의 내용은 출력되지 않습니다.<br>
		<jsp:forward page="yellow.jsp"></jsp:forward> //url 변경 없이 페이지 이동
	<br>
	<hr>
		웹브라우저에 나타나는 URL과 전혀 상관없는 파일입니다.
</body>

[param 예시]

//yellow.jsp
<body bgcolor="yellow">
	<center><h3>[ param 액션 태그에 대한 예제]</h3></center>
	<hr>
		이 파일은 yellow2.jsp 입니다.
	<br>
	<hr>
		현재 웹 브라우저에 나타난 웹페이지는<br>
		<%= request.getParameter("url") %>로 부터 이동되었습니다.
		<hr>
		<%= request.getParameter("url") %>에서 넘어온 메시지 :
		<%= request.getParameter("news") %>
</body>

//red.jsp
<body bgcolor="red">
	<center><h3>[ jsp:param 액션 태그에 대한 예제]</h3></center>
	<hr>
		이 파일은 red2.jsp 입니다.<br>
		웹 브라우저에 배경색이 빨간색으로 나타날까요?<br>
		노란색으로 나타날까요?<br>
		forward 액션 태그가 실행되면 이 페이지의 내용은 출력되지 않습니다.<br>
		<jsp:forward page="yellow2.jsp">
			<jsp:param value="red2.jsp" name="url"/>
			<jsp:param value="Happy New Year!" name="news"/>
		</jsp:forward>
</body>

'java,jsp,spring > JSP' 카테고리의 다른 글

JSP 세션  (0) 2022.08.17
JSP 쿠키  (0) 2022.08.15
JSP 동작 원리, 태그  (0) 2022.08.10
Servlet  (0) 2022.08.10
JSP 기초, Tomcat 설치  (0) 2022.08.10