지시자
- 형식
<%@ 지시자 속성=”값”… %>
- 종류
- 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 |