* Directives(지시자) 
  
지시자는 일반적인 프로그램 언어와는 달리 태그 형식을 이용하여 JSP 페이지에 대한 속성 또는 특별한 지시 사항을 지정하는 태그입니다. 
종류                                           형태                                                          의미 
page                   <%@ page property="property-value" %>            JSP 페이지에 대한 속성 지정 
include               <%@ include file="file-name" %>                       태그 부분에 지정한 페이지를 정적으로 삽입 
taglib                  <%@ tablib uri="uri-value"                                        새로운 태그를 정의하여 사용 
                                       prefix="prefix-value" %> 
Implicit Object(내장객체) 
내장 객체란 JSP 페이지의 스크립트릿과 표현에서   
객체의 생성없이 이용할수 있는 객체변수를 말합니다. 
즉 웹 브라우저의 출력에 이용하던 out 는 JSP 서블릿의 _jspService() 
메서드에서 자동으로 선언되므로 JSP 페이지의 스크립트릿에서 생성과 선언 없이 
out.print() 을 바로 사용 할수 있습니다. 
내장객체                      패키지                         클래스이름                                    사용용도 
request                    javax.servlet.http        HttpServletRequest(I)     클라이언트 요청에의한
                                                                                                                    폼 양식 정보 처리 
response                 javax.servlet.http       HttpServletResponse(I)          클라이언트 요청에
                                                                                                                                대한 응답 
session                   javax.servlet.http             HttpSession(I)                  클라이언트에 대한
                                                                                                                        세션정보 처리 
application                 jacax.servlet                   ServletContext(I)               웹 어플리케이션 
                                                                                                                            정보처리 
config                       javax.servlet                    ServletConfig(I)          현재 JSP 페이지에
                                                                                                                       대한 환경처리 
exception                  java.lang                             Throwable(I)            예외처리를 위한객체 
page                     java.lang                                   Object(I)                  현재 JSP 페이지에
                                                                                                                  대한 클래스 정보 
pageContext       javax.serclet.jsp                PageContext(C)            현재 JSP 페이지에
                                                                                                                대한 페이지 컨텍스트 
out                          javax.servlet.jsp                  JspWriter(C)                      출력 스트림
I 는 인터페이스를 의미하고 C 는클래스를 의미한다.
request 의 자료 유형과 인자 전달 
내장 객체 request 는 클라이언트가 서버에게 전송하는 정보를 처리하는 객체입니다. 
즉 HTML 폼에 입력하여 값을 전송하는 경우 내장 객체 request 를 사용합니다. 
내장객체 request 는 인터페이스 HttpServletRequest 로 상위 인터페이스는  
Javax.servlet.ServletRequest를 갖습니다. 
그러므로 내장 객체 request 는 아래와 같은 여러 메소드를 사용할 수 있습니다. 
반환값                              메서드                                                사용용도 
void                        setCharacterEncoding(String env)       요청 페이지에 인코딩 방법 적용 
String                       getParameter(String name)                     name 의 요청 인자값을 반환 
                                                                                      없으면 null 만일 여러개의 값이면 첫번째 값만 반환 
String[ ]                  getParameterValues(String name)         지정한 name 요청 인자값을 문자열 배열로 반환 
Enumeration                  getParameterNames()                     모든 인자의 이름을 Enumeration 으로 반환 
String                               getProtocol()                                     사용중인 프로토콜 반환 
String                            getRemoteAddr()                               클라이언트의 IP 주소 반환 
String                            getRemoteHost()                              클라이언트의 호스트 이름을 반환 
String                           getServerName()                              요청된 서버의 호스트이름을 반환 
int getServerPort() 요청된 서버의 포트번호를 반환 
반환값                                  메서드                                             사용용도 
Cookie[ ]                           getCookies()                       클라이언트에 보내진 쿠키 배열을 반환 
String                             getQueryString()                              URL 에 추가된 Query 문자열 반환 
String                             getRequestURI()      클라이언트가 요청한 URI 반환 , URI는 프로토콜,                                                                                                서버이름 , 포트번호를 제외한 서버의 컨텍스트와 파일의 문자열  
                           예 => http://localhost:8088/first_jsp/jsp_12/request_3.jsp 
                       HttpSession getSession() 현재의 세션을 반환, 세션이 없으면 새로 만들어 반환 
                               String  getMethod() 요청방식인 get,post  중의 하나를 반환 
                       jsp class docs  = >  https://docs.oracle.com/javaee/7/api/toc.htm
Java(TM) EE 7 Specification APIs
docs.oracle.com
Requset 사용예
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> request Test</title>
</head>
<body>
<h2> 학생 정보 입력 </h2>
<form action="request_1.jsp" method="post">
	성명 : <input type="text" name="name"><p>
	학번 : <input type="text" name="studentNum"><p>
	주소 : <input type="text" name="addr"><p>
	전화번호 : <input type="text" name="tel"><p>
	
	성별 : 남자 <input type="radio" name="sex" value="남자" checked="checked">
		  여자 <input type="radio" name="sex" value="여자"><p>
		  
	국적 : <select name="country">
		  <option selected="selected" value="대한민국"> 대한민국</option>
		  <option value="일본">일본</option>
		  <option value="영국">영국</option>
		  <option value="프랑스">프랑스</option>
		  <option value="미국">미국</option>
		  <option value="중국">중국</option>
	
	</select></p>
	
	<input type="submit" value="보내기">
		
	
	
	
</form>
</body>
</html>
request_1.html 페이지를 만들어서 위와같이 만들어 준 후 실행되는 모습에서 정보를 입력하면
만들어 두었던 request_1.jsp 페이지로 내용이 전달된다.
<title>request_1.jsp Test</title>
</head>
<body>
<%
	request.setCharacterEncoding("UTF-8");		// 한글처리하는 방법
%>
<%
	String name = request.getParameter("name");
	String studentNum = request.getParameter("studentNum");
	String address = request.getParameter("addr");
	String sex = request.getParameter("sex");
	String country = request.getParameter("country");
	String tel = request.getParameter("tel");			// 한개만 받을때는 parameter 로 받음
	
	if(sex.equalsIgnoreCase("man"))
	{
		sex = "남자";
	}
	else sex = "여자";
	
%>
<h2> 학생 정보 입력 결과</h2>
<hr size="5" color="red">
	성명 : <%=name %><p>
	학번 : <%=studentNum %><p>
	주소 : <%=address %><p>
	전화번호 : <%=tel %><p>
	성별 : <%=sex %><p>
	국적 : <%=country %><p>
	
<hr size="5" color="green">만들어 두었던 request_1.jsp 파일로 html 창에서 입력되었던 정보들이 전달되고
request.getParameter() 메서드를 통해 값을 전달 받게 된다 그후 아래에서 <%= 로 각각의 정보들을 출력 하면 아래같이 출력된다.

exception 예
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jsp Test errorPage Test</title>
</head>
<body>
<%@ page errorPage="exception.jsp" %>
<% 
	String[] str = {"감사합니다.","Thank you"};
%>
	한국어로 [<%=str[0] %>] 는 <br>
	영어로 [<%=str[2] %>] 입니다.
</body>
</html>JSP 로 코드를 만들후 일부로 str[2] 를 넣어서 에러를 만들어 본후 error 페이지를 연결해서 에러메시지를 확인해봤다.
아래같이 만약 에러가 있을경우 를 대비해서 exception.jsp 페이지를 만들어 놓은후 에러 가 나오면 에러메시지가 나올수 있도록 아래처럼 대비할 수 있다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP TEST exception.jsp</title>
</head>
<body>
<%@ page isErrorPage="true" %>
<p>
<h2> 처리중 문제발생</h2>
	빠른 시일내에 복구하도록 하겠습니다.
	<br>
	<img src="../images/bbb.jpg">
	exception.getMessage() : <%= exception.getMessage() %><p>
	exception.toString()  : <%=exception.toString() %><p>
</body>
</html>
이런식으로 혹시 모를 에러가 나거나 문제가 발생하였을때 exception으로 에러가 났을때의 화면을 미리 준비해두고 에러나 문제가 생기면 준비해둔 화면이 보여지도록 만들어놓고 대비할 수 있다.
'국비 과정 > JSP' 카테고리의 다른 글
| 국비 - 1017 ( 게시판 폼 만들기 ) (0) | 2022.10.17 | 
|---|---|
| 국비 - ( JSP MVC 패턴 ) (4) | 2022.10.12 | 
| 국비 - 1011 ( javabeans , template ) (2) | 2022.10.11 | 
| 국비 - 1006 ( response , page context , 액션태그) (0) | 2022.10.06 | 
| 국비 - 1004 JSP(Java Server Page) (0) | 2022.10.04 | 
 
                    
                   
                    
                  