ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JSP] 프로젝트로 배우는 자바 웹 프로그래밍 6장-1 개념,실습
    Languages/jsp 2021. 10. 26. 16:44
    반응형

     

     

     

     

     

     

     

     

    JSP 내장객체 개요

     

     

     

    JSP 내장객체란?

     

    JSP 내에서 선언하지 않고 사용할 수 있는 객체 라는 의미에서 붙여진 이름

     

    JSP 내장객체

     

    request

    response

    pageContext

    session

    application

    out

    config

    page

    exception

     

     

     

     

     

     

    1. request 기본 객체 

     

    클라이언트 관련 정보를 request 기본 객체에 저장

     

    -request 기본 객체가 제공하는 기능

    클라이언트 웹 브라우저와 관련된 정보 읽기 기능

    서버와 관련된 정보 읽기 기능

    클라이언트가 전송한 요청 파라미터 읽기 기능

    클라이언트가 전송한 요청 헤더 읽기 기능

    클라이언트가 전송한 쿠키 읽기 기능

    속성 처리 기능

     

     

     

     

     

    [실습] request 객체를 이용하여 requestform 만들기

     

     

     

     

    request_form.jsp

     

     

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title> request 객체</title>
    <style>
    	table, td {border: 1px solid black; padding:5px}
    </style>
    </head>
    <body>
    <div>
    	<H2> request 테스트폼</H2>
    	<HR>
    	<form name=form1 method=post action="01request_result.jsp">
    		<table>
    			<tr>
    				<td>이름</td>
    				<td><input type=text size=10 name=username></td>
    			</tr>
    			<tr>
    				<td>직업</td>
    				<td>
    				<select name=job>
    					<option selected>무직</option>
    					<option>회사원</option>
    					<option>전문직</option>
    					<option>학생</option>
    				</select>
    				</td>
    			</tr>
    			<tr>
    				<td>관심분야</td>
    				<td>
    				<input type=checkbox name=favorite value="정치">정치
    				<input type=checkbox name=favorite value="사회">사회
    				<input type=checkbox name=favorite value="정보통신">정보통신
    				</td>
    			</tr>
    			<tr>
    				<td colspan=2 style="text-align:center">
    					<input type=submit value="확인"><input type=reset value="취소">
    				</td>
    			</tr>
    		</table>
    	</form>
    	</div>
    </body>
    </html>

     

     

    request_result.jsp

     

     

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <% request.setCharacterEncoding("UTF-8"); %>
    
    <html>
    <head>
    <title>ch06 : request_result.jsp</title>
    </head>
    <body>
    <div align="center">
    <H2> request 테스트 결과 - 1</H2>
    
    <HR>
    <table border=1 cellspacing="1" cellpadding="5">
    <tr>
    <td> 이름 </td>
    <td><%=request.getParameter("username")%> </td> // request get파라메터 함수 사용
    <tr>
    <td>직업</td>
    <td><%=request.getParameter("job")%></td>  // request get파라메터 함수 사용
    <tr>
    <td>관심분야</td>
    <td>
    <%
    	String favorites[] = request.getParameterValues("favorite");  // request get파라메터 함수 사용
    
    	for(String favorite: favorites){
    		out.println(favorite+"<BR>");
    	}
    %>
    </table>
    <HR>
    <H2> request 테스트 결과 - 2</H2>
    <table border=0><tr><td>
    1.클라이언트 IP 주소 : <%= request.getRemoteAddr() %> <br> //request getRemoteAddr 사용
    2.요청 메서드 : <%= request.getMethod() %> <br>
    <%
     Cookie cookie[] = request.getCookies(); //request getcookies 사용
    %>
    3. <%= cookie[0].getName() %> 에 설정된 쿠키값 : <%=cookie[0].getValue() %> <br>
    4. 프로토콜 : <%=request.getProtocol() %>
    </td></tr>
    </table>
    </div>
    </body>
    </html>

     

     

     

     

    실행결과1

     

     

     

    실행결과2

     

     

     

     

    2. response 기본 객체

     

    response 기본 객체가 제공하는 기능

     

    헤더 정보 번달

    쿠키 전달

    리다이렉트 지정(중요)

     

    -> 리다이렉트 지정

     

    주요 소스코드 분석

     

    forward 액션과 response.sendRedirect() 의 차이점

     

     

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <% request.setCharacterEncoding("UTF-8"); %>
    <jsp:forward page="page_control_end.jsp"> //forward
    <jsp:param name="tel" value="000-000-0000" />
    </jsp:forward>
    
    <% response.sendRedirect("page_control_end.jsp"); %> //response

     

     

    forward 액션은 최종적으로 전달되는 페이지에 따라 파라미터를 함께 전달

    sendRedirect()는 단순히 지전된 페이지로 최종 화면이 이동

    forward 액션은 브라우저 url에 최초 요청된 페이지 url이 나타나고 sendRedirect()는

    최종 전달된 페이지의 url이 표시된다.

     

     

    redirect

     

    1. a.jsp 요청 보냄

    2.b.jsp로 리다이렉트하라고 지정함

    3.b.jsp를 요청함

    4.b.jsp 응답 // request 객체는 각 jsp에 2개씩 생성

     

    forward

     

    1. a.jsp

    2. b.jsp로 포워드 하라고 지정함

    3. b.jsp 응답 // request 객체는 각 jsp에 1개씩 생성

     

     

     

     

    [실습] forward / response.sendRedirect() 비교

     

     

    1. 03page_control.jsp

     

     

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Ich:06 page_control.jsp</title>
    </head>
    <body>
    
    <h2> forward, sendRedirect test</h2>
    <hr>
    <form method=post action="03forward_action2.jsp">
    	forward action : <input type=text name =username>
    	<input type=submit value="확인">
    </form>	
    
    <form method=post action="03response_sendRedirect.jsp">
    	response.sendRedirect : <input type=text name=username>
    	<input type=submit value="확인">
    </form>
    </body>
    </html>

     

     

     

    -> 아직은 액션이 없는 실행화면

     

     

    2.03response_sendRedirect.jsp

     

    <% response.sendRedirect("03page_control_end.jsp"); %>

     

    3.03forward_action2.jsp

     

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    
    <% request.setCharacterEncoding("UTF-8"); %>
    
    <jsp:forward page="03page_control_end.jsp">
    	<jsp:param name="tel" value="0000-000-0000" />
    </jsp:forward>

     

    4.page_control_end.jsp

     

     

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>ch06 : page_control_end.jsp</title>
    </head>
    <body>
    <div align="center">
    <h2> forward action 및 sendRedirect() 결과</h2>
    <hr>
    지금 보이는 화면은 page_control_end.jsp 에서 출력한 결과입니다.
    <hr>
    이름 : <%=request.getParameter("username") %> <br>
    전화번호 : <%=request.getParameter("tel") %>
    </div>
    </body>
    </html>

     

     

     

    실행결과1

     

     

    forward 결과

     

    실행결과2

     

    sendRedirect 결과

    2

     

     

     

     

     

    out 기본 객체

     

     

    out은 출력 스트림으로써, 사용자 웹 브라우저로 출력하기 위한 내장 객체이다

    jsp 페이지가 생성하는 모든 내용은 out 기본 갹체를 통해서 전송된다

    out 기본 객체를 통해서 클라이언트에 내용이 전달된다

     

     

     

    [실습] out 객체 이용하여 실습하기

     

     

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title> out 객체 </title>
    </head>
    <body>
    
    <%
    String gradeStringA=" 10보다 크다";
    String gradeStringB=" 5보다 크다";
    int grade=7;
    	if(grade>10) {
    		out.println(gradeStringA);
    	} else if(grade>5) {
    		out.println(gradeStringB);
    	}
    %>
    
    </body>
    </html>

     

     

     

    실행결과

     

     

     

     

     

     

    그 밖에 내장객체

     

     

    cofig

     

    서블릿이 최초로 메모리에 적재될 때 컨테이너는 서블릿 초기화와 관련된 정보를 읽고 javax.servlet.ServletConfig 객체에 저장한다.

    config는 바로 ServletConfig 클래스에 대한 참조 변수로 web.xml 에 설정된 초기화 파라미터를 참조하기 위한 용도로 사용할 수 있다.

     

    application

     

    application은 웹 애플리케이션(컨텍스트) 전체를 관리하는 객체로 application 객체를 통해 각 서블릿이나 JSP에서 공유하려고 하는 각종 정보를 설정하고 참조할 수 있다

     

    page

     

    page는 JSP 컨테이너에서 생성된 서블릿 인스턴스 객체를 참조하는 참조 변수며,

    JSP에서 자기 자신을 참조 할 때 사용된다

     

    pageContext

     

    pageContext는 javax.servlet.jsp.PageContext 인스턴스에 대한 참조 변수로, 다른 모든 내장객체에 대한 프로 그램적인 접근 방법을 제공한다.

     

    exception

     

    exception은 page 지시어에서 오류 페이지로 지정된 JSP 페이지에서 예외가 발생할 때 전달되는 java.lang.Throwable의 인스턴스에 대한 참조 변수다.

    반응형

    댓글

Designed by Tistory.