본문 바로가기

학원 일기/학원-JSP

최범균의 JSP2.3웹프로그래밍 정복 PART2 - 필수습득

chapter05 기본 객체와 영역

chapter06 에러 처리

chapter07 페이지 모듈화와 요청 흐름 제어   

chapter08 자바빈과 <jsp:useBean>액션 태그

chapter09 클라이언트와의 대화 1 :쿠키

chapter10 클라이언트와의 대화 2 : 세션

chapter11 표준 언어(Expression Language)

chapter12 표준 태그 라이브러리(JSTL)

 

----------------------------------------------------------------------------------

 

[chapter 05 기본 객체와 영역]

 

이장에서 다룰 내용

-JSP 기본 객체

-out 기본 객체

-pageContext 기본 객체

-application 기본 객체

-기본 객체와 속성

 

1) 기본 객체

 

JSP가 제공하는 기본객체

 

request - 클라이언트 요청 정보 저장

response - 응답 정보 저장

pageContext - JSP페이지에 대한 정보 저장

session - HTTP 세션 정보를 저장

application - 웹 어플리케이션에 대한 정보를 저장

out - JSP페이지가 생성하는 결과를 출력할 때 사용하는 출력 스트림

config - JSp페이지에대한 설정 정보 저장

page - JSP페이지를 구현하는 자바 클래스 인스턴스

exeption - 에러 페이지에서만 사용

 

page,config 는 세부설명 없음 - 사용빈도가 적기때문에

 

02) out 기본객체

 

 

<html?</html> 안의 모든 내용은 >> out기본객체로 전달

 

out기본객체 - 웹브라우저에 데이터를 전송하는 출력스트림

                   

특징

- JSP페이지에 생성한 데이터를 출력한다

[

  html태그는 사실  

  out.pring("<html>");

  ...

  out.print("</html>")' 과동일하다

 

  (이것은 JSP를 실행한다는 개념의  JSP페이지를 컴파일한 서블릿클래스를 실행한다 에서

  웹어플리케이션 폴더안에 생성되는 파일과 같다)

]

 

-out 기본 객체를 JSP페이지의 스크립트릿 <% %>에서 사용할수 있다복잡한 조건비교 식때문에 사용하는경우가 아니라면 사용을 권장하진 않는다

 

2-1) out 기본 객체의 출력 메서드

 

out기본객체의 메서드

 

print() - 데이터를 출력한다

println() - 데이터를 출력하고 줄바꿈 문자(\r\n 또는 \n)를 출력한다

newLine() - wnfqkRna answk(\r\n 또는 \n)를 출력한다

 

print(),println()을통해 출력가능한 값 - 기본타입 boolean,char,char[],double,float,int,long//그리고 참조타입 String

 

 

2-2) out 기본 객체와 버퍼의 관계

 

JSP에서 사용하는 버퍼는 out기본객체가 내부적으로 사용하고있는 버퍼이다

ex참조) <%@ page buffer="16kb" %>

 

out기본객체 버퍼관련 메서드

getBufferSize() - 버퍼의 크기를 구한다

getRemaining - 현재 버퍼의 남은 크기를 구한다

clear() - 버퍼를 비운다 / 만약 버퍼가 1번이라도 flush된 상태라면 오류를 발생시킨다

clearBuffer() - 버퍼의 내용을 비운다 / flush가 된상태라도 오류를 발생시키지 않는다

flush() - 버퍼를 플러시한다 --> (다음경로로 전송한다) 클라이언트에게 전송한다

isAutoFlush() - 버퍼가 다 찼을때 자동으로 플러시 할 경우 autoFlush속성 값(기본값 true)dmf 리턴한다

 

ex참조) <%page autoFlush ="false" %>

 

3) pageContext기본객체

 

pageContext기본객체 - JSP페이지와 일대일로 연결된 객체

기능

-기본 객체 구하기

-속성 처리하기

-페이지의 흐름 제어하기

-에러 데이터 구하기

 

pageContext의 기본객체 접근 메서드

 

getRequest() - request 기본 객체를 구한다

getResponse() - response 기본 객체를 구한다

getSession() session 기본 객체를 구한다

getServletContext() - application 기본 객체를 구한다

getServletConfig() - config 기본 객체를 구한다

getOut() - out 기본 객체를 구한다

getException() - exception 기본 객체를 구한다 (에러 페이지에서 의미가 있다)

getPage() - page 기본 객체를 구한다

 

ex) pageContext.getOut().println() << 가능

 

4. application 기본 객체

 

application기본 객체 - 웹 어플리케이션 전반에 걸쳐 사용되는 정보를 담는다

 

특정 웹 어플리케이션에 포함된 모든 JSP페이지는 하나의 application 기본객체를 공유한다

 

4-1) 웹 어플리케이션 초기화 파리미터 읽어오기

 

<context-param> - 웹 어플리케이션에 사용할수있는 초기화 파라미터 (WEB-INF\web.xml파일 적용)

 

ex) <context-param>

          <description> 파리미터설명(필수 아님)</description>

          <param-name>파리미터 이름</param-name>

          <param-value>파라미터 값</param-value>

     </context-param>

 

(톰캣 9 버전의 xml기본파일에서는<init-param>태그만 찾아볼수있었으며 name value지정이 가능하다)

 

web.xml - 웹 어플리케이션을 위한 설정 정보를 담고있는 파일이다

 

특징

- 웹어플리케이션 폴더\WEB-INF폴더에 위치하지 않으면 인식하지 못한다 

- 버전에 따라 필수는 아니다

 

application 기본 객체의 웹 어플리케이션 초기화 파라미터 관련 메서드

 

getInitParameter(String name) - 이름이 name인 웹어플리케이션 초기화 파라미터 값을 읽어온다 / 없다면 null 리턴

getInitParameterNames() - 웹 어플리케이션 초기화 파라미터의 이름 목록을 리턴

 

표5.4에서 멈춤

 

톰캣은 web.xml파일이 변경되면 웹 어플리케이션이 다시실행된다.

하지만 모든 웹 컨테이너가 그렇지는 않다 그럴경우 수동으로 재실행 해야한다.

 

4-2) 서버 정보 읽어오기

 

application 기본객체 서버 정보 관련 메서드

 

getServerInfo() - 서버 정보를 구한다

getMajorVersion() - 서버가 지원하는 서블릿 규역의 메이저 버전을 리턴한다. 버전의 정수 부분을 리턴한다(?)

getMinorVersion() - 서버가 지원하는 서블릿 규역의 마이너 버전을 리턴한다. 버전의 소수 부분을 리턴한다(먼말..)

 

ex) <%= application.getServerInfo() %>

     <%= application.getMajorVersion() %>

     <%= application.getMinorVersion() %>

 

라고 입력후 브라우저에 Apache Tomcat/8.0.21, 3 , 1 이렇게 출력되었다면

 

--> Apache Tomcat/8.0.21은 3.1규약을 지원한다는 뜻이다

 

4-3) 로그 메시지 기록하기

 

application 기본객체 로그 기록 메서드

 

log(String msg) - msg를 로그로 남긴다.

log9String msg, Throwable throwable - msg를 로그와 Exception정보를 함께 남긴다.

 

 

application.log("")가 아닌 log("")여도 JSP의 메서드가 사용되며 앞에jsp라고 붙는것 이외에 동일하게 적용된다고 한다 

커밋메세지 와 같은 느낌이라고 보면된다.

 

4-4) 웹 어플리케이션의 자원 구하기

 

( 코드예제)

===================

char[] buff = new char[128];

int len = -1;

 

Stirng filePath = "파일경로"

try(InputStreamReader fr = new InputStreamReader( new FileInputStream(filePath),"UTF-8"){

while ( len = fr.read(buff) != -1){

 out.print(new String(buff, O, len));

  }

}catch(IOException ex){

  out.println("익셉션 발생" + ex.getMessage());

}

===================

.. 위와 같은 코드의 "파일경로"에 tomcat버전이 적혀있다 여기서 tomcat의 버전을 업그레이드할경우

이와같은 모든코드의 경로를 다시수정해줘야하는 어려움을 겪게된다

 

application기본객체는 이를 해결하기위한 메서드도 제공한다

 

application 기본객체 자원 접근 메서드

 

getRealPath(String path) - 웹 어플리케이션 내에서 지정한 경로에 해당하는 자원의 시스템상에서의 경로를 리턴한다

getResource(String path) - 웹 어플레케이션 내에서 지정한경로에 해당하는 자원에 접근할수있는 URL객체를 리턴한다

getResourceStream(String path) = 웹 어플리케이션 내에서 지정한 경로에 해당하는 자원으로부터 데이터를 읽어올수                                                 있는 InputStream을 리턴한다(?)

 

이처럼 버전과 상관없이 경로를 찾을수있는 이유는 경로를 웹어플리케이션 폴더를 기준으로 찾기 때문이다.

 

ex)

 

<%

     String resourcePath = "/message/notice.txt";

%>

자원의 실제 경로:<br>

<%= application.getRealPath(resourcePath) %>

<%= resourcePath %>의 내용<br>

<%

    char[] buff - new char[128];

    int len = -1;

 

    try(InputStreamReader br = new InputStreamReader(

              application.getResourceAsStream(resourcePath), "UTF-8")){

            while( (len = br.read(buff)) != -1{

                out.print(new String(buff, O,len));

    }

    catch(IOException ex){

    ...

    }

 

    이런식이면 브라우제어는 resourcePath의 절대경로가 전부 출력된다.

 

 getResource() 메서드의 예시에서는

String resourcePath = "/message/notic.txt;

URL url = application.getResource(resourcePath);

try(InputStreamReader br = new InputStreamReader(url.openStream(),"UTF-8")

 

이있는데 이결과에서

 

application.getResource().openStream과 application.getResourceAsStream() 이같은자원에 접근하는것을 알수 있다.

 

5) JSP 기본 객체와 영역

 

웹 어플리케이션은 다음의 4가지 영역(scope)으로 구성된다

PAGE영역 - 하나의 JSP페이지를 처리할 때 사용되는 영역

REQUEST영역 - 하나의 HTTP요청을 처리할 때 사용되는 영역

SESSION 영역 - 하나의 웹 브라우저와 관련된 영역

APPLICATION 영역 - 하나의 웹 어플레키에션과 관련된 영역

 

하나의 PAGE영역 - 클라이언트가 한번요청할때 읽어들이는 JSP페이지의 범위

하나의 REQUEST영역 - 클라이언트가 웹서버에 전송하는 요청의 범위 (요청을 처히ㅏ는데 사용되는 모든JSP도포함)

하나의 SESSION 영역 - 하나의 웹브라우저와 관련된 모든요청은 하나의 SESSION이 관리한다

 

 

어렵게 생각하지 말고 페이지를 만들때 각 기본객체의 특징이 어땠는지 떠올려보면 이해가 쉽다

 

6) JSP 기본 객체의 속성(Attribute) 사용하기

 

속성 처리 메서드

 

setAttribute(String name, Object value) - name속성의 값을 value로 지정

getAttribute(String name) - name의 속성값을 구한다 / 없을경우 null반환

removeAttribute(String name) - 이름이 name인 속성을 삭제

getAttributeNames() - 속성의 이름 목록을 구한다 (pageContext객체는 지원하지 않는다)

 

ex) String name = request.getParameter("name");

     String value = request.getParameter("value");

 

application.setAttribute(name,vlaue) // <%= name %> = <%=value%>

 

//

 

ex)

  Enumeration<String> attrEnum = application.getAttributeNames();

  while(attrEnum.hasMoreElements()){

        String name = application.nextElement();

        Object value = applciaton.getAttribute(name); ~~등등 이런식으로 목록을 받아온뒤 이름과값을 받은후 아래서

         표현식을 이용해서 값을 뽑아내는 방법도 있다.

 

톰캣도 제공하는 기본속성이 버전마다 다를수 있으며 특정컨테이너 에서만 제공하는속성은 사용하지 않는것을 권장

 

6-1) 속성의 값 타입

 

setAttriute(String name, Object value) / getAttribute(String name)

-  값설정 / name의 값 반환(단 object가 값이기때문에 반환할 타입으로 형변환이 필요)

 

6-2) 속성의 활용

 

속성의 쓰임새

 

pageContext - (한 번의 요청을 처리하는)하나의 JSP페이지 내에서 공유할 값을 저장한다.

request - 한번의 요청을 처리하는데 사용되는 모든JSP페이지내에서 공유할 값을 저장한다.

session - 한 사용자와 관련된 정보를 JSP사이에 공유하기 위해 사용한다.

application = 모든 사용자를 위해 공유할 정보를 저장한다.

 

[ chapter 06 에러처리 ]

 

이 장에서 다룰 내용

-익셉션 처리

-에러 페이지

-상태 코드와 익셉션 타입별 에러 페이지 지정

 

1) 익셉션 직접 처리하기

 

자바 문법으로는 에러가 예상되는 구문을 try catch로 처리 할수있다

 

2) 에러 페이지 지정하기

 

디렉티브에 <%@ page errorPage = "/error/viewErrorMessage.jsp %>를 통해

에러 발생시 브라우저에 출력할 에러펭지를 지정할수있다.

 

3) 에러 페이지 작성하기

 

에러페이지에 <%@ page isErrorPage = "true" %> 디렉티브 설정 추가 - 현재 페이지는 에러페이지 입니다.

 

에러페이지 내용 ex)

 

에러시 나올 문구~~

 

에러타입 : <%= exception.getClass().getName() %>

에러 메세지 : <%= exception.getMessage() %>

 

에러페이지의 길이가 512바이트를 넘지 않는다면 --> HTTP오류 메시지 출력

 

본인이 지정한 에러페이지가 아노길 원한다면 (페이지에 보이지않는 주석을포함)512바이트를 넘기는 것도 방법이다

 

04) 응답 상태 코드별로 에러 페이지를 지정하기

 

web.xml에 설정추가

 

ex)

 

<web-app>

...

<error-page>

     <error-code>발생할 에러코드 입력(자바처럼 예외구문이아닌 404,500 같은코드 입력)</error-code>

     <location>응답할 에러페이지 URL</location>

</error-page>

...

</web-app>

 

주요 응답 상태 코드

 

200 - 요청을 정상적으로 처리

307 - 임시로 페이지를 리다이레트

400 - 클라이언트의 잘못된 요청

401 - 클라이언트의 접근을 허용하지 않는상태

404 - 요청한 URL을 처리하기 위한 "자원"이 존재하지 않는상태

405 - 요청한 메서드(GET,POST,HEAD 등의 전송 방식) 을 허용하지 않는상태

500 - 서버 내부 에러 발생

503 - 서버가 일시적으로 서비스를 제공할수 없는 상태

 

5) 익셉션 타입별로 에러 페이지 지정하기

 

위에서 상태코드로 응답 페이지를 지정했다면 JSP에서 console에 출력되는 에러메세지를 이용해 응답도 가능하다

 

<error-page>

     <exception-type>에러명 입력</exception-type>

     <location>응답할 에러페이지 URL</location>

</error-page>

 

책에서는 exception-type의 응답페이지에 <%@ page isErrorPage = "true" %>를 지정하지 않았다.

지정이 필요없이 응답이 가능하다는것은 페이지 오류에대한 응답보다 훨씬더 유연하다고 느껴진다

따라서 <exception-type></exception-type>은 응답 코드에대한오류는 못잡을것이다(자의적 해석)

 

06 에러 페이지의 우선순위와 에러 페이지 지정 형태

 

우선순위 대로 나열

-- page디렉티브의 errorPage

-- <exception-type>

-- <error-code>

-- 웹 컨테이너가 제공하는 기본 에러페이지

 

우선순위를 고려한 페이지 지정

-전용 에러페이지가 필요한경우 page디렉티브의 errorPage사용

-범용적인 에러코드 404,500등은 web.xml에 에러 페이지 지정

-별도로 처리해야 하는 (심각함을 나타내는?익셉션) web.xml에 <exception-type>태그 지정

 

7. 버퍼와 에러와의 관계

 

버퍼를 플러시할때 응답헤더를 전송한다 그러나 응답 상태 코드는 응답헤더보다 먼저간다

 

만약 버퍼를 2번나눠서 보냈는데 1번째가 정상이고 2번째가 오류라면

응답코드는 200 500이도착하고 웹브라우저는 처음도착한 200으로 응답코드를 판단한다

 

ex) 처음전송 정상 두번째전송 에러라면 -->  정상출력에 오류페이지가 이어져 나온다

 

해결방안 - 디렉티브로 버퍼전송량을 늘리자 

ex) <%@ page buffer = "1kb" %>

 

[ chapter 07 페이지 모듈화와 요청 흐름 제어 ]

 

이장에서 다룰 내용

-<jsp:include>  액션 태그와 모듈화

-include 디렉티브

-<jsp:forward> 액션 태그를 이용한 흐름 이동

-기본 객체를 이용한 값 전달

 

1) <jsp:include> 액션 태그를 이용한 공통 영역 작성

 

<jsp:include>사용목적 - 코드중복의 최소화 수정의 용이성

 

<jsp:include>가 실행될경우 요청흐름을 변경해 지정한jsp로접근후 해당페이지를  가져와 출력버퍼에 담고 다시진행한다

 

1-1 <jsp.include> 액션 태그 사용법

 

기본 사용 방법 

ex)

<jsp:include page = "포함할페이지" flush ="true" />

 

page - 포함할 JSP 페이지의 경로를 지정한다.

flush - 지정한 JSP페이지를 실행하기 전에 출력 버퍼를 플러시할지 여부를 지정한다 true/flas 기본값은 flase이다

 

헤더의 정보는 처음전송된것만 적용한다는것을 생각했을때 fluh가 true이면 include할 페이지의 헤더는 적용되지 않는다

 

1-2) <jsp:include> 액션 태그를 이용한 중복 영역 처리

 

일반적으로 액션태그를 활용하여 JSP페이지를 구성한다

 

일반 네이버까페등 상단하단 좌측메뉴 중앙~우측 메인메뉴 라고 생각해본상태에서 액션태그를 사용하지않았을경우

ex) 

 

<table>

<tr>

 <td colspan ="2">

   ..<!-- 모든페이지에서 똑같은 상단메뉴 HTML코드-->

 </td>

</tr>

  <td>

  .....<!-- 몇개의 페이지가 공유하는 좌측 메뉴 HTML코드 -->

  </td>

  <td>

  ......<!-- 페이지마다 다른 내용 부분 -->

  </td>

</tr>

<tr>

  <td colspan ="2">

  .. <!-- 모든 페이지에서 똑같은 하단 메뉴 HTML코드 -->

  </td>

</tr>

</table>

 

이럴경우 한마디로 생산성도 저하되고 유지보수도 느려진다

 

하지만 해당<!-- --!> 주석부분에 액션태그를 넣어주면 이러한 문제를 해결할수 있다.

 

1-3) <jsp:param>으로 포함할 페이지에 파라미터 추가하기

 

사용에제 ex)

 

<jsp:include page = "/module/top.jsp" = flush ="false">

    <jsp:param name = "param1" value = "value1"/>

    <jsp:param name = "param2" value = "value2"/> (표현식 사용가능)

</jsp:include>

 

- 이러한 방식으로 해당 include page에 파라미터를 추가하여 배열형태로 저장

- 전달하려는 파라미터의 이름이 이미 존재한다면 해당 파라미터에 기존값을 스택처럼 추가

-해당 파라미터는 jsp:include 페이지에서만 유요하다 즉 액션태그를 포함한.jsp페이지에서는 사용할수 없다

 

1-4) <jsp:param> 액션 태그와 캐릭터 인코딩

 

액션태그가 포함하고있는 sub.jsp 도 캐릭터셋을 설정해줘야한다 그방법은 액션태그를 포함한 main,jsp페이지에

<% request.setCharacterEncoding("utf-8"%> 로 설정을해주면된다

 

main.jsp(액션태그를 포함한 페이지)가 sub.jsp(액션태그가 포함한페이지) 에 요청을하고 응답을 받는것이기때문에

request.setCaharacterEncodiong("utf-8") 이란요청은 sub.jsp로 향하게되는 것이다. 

 

2) include 디렉티브를 이용한 중복된 코드 삽입

 

<jsp:include> 액션태그는 JSP의 실행흐름을 이동

include 디렉티브는 다른파일의 내용을 현재위치에 삽입한후 JSP파일을 자바 파일로 변환하고 컴팡일하는 방식

 

2-1) include 디렉티브의 처리방식과 사용법

 

<%@ include file = "포함할파일"%> - include디렉티브 사용법

 

포함할 파일을 자바코드로 만든후 현재파일을 자바코드형태로 컴파일하여 서블릿 클래스를 생성한다

(복습개념 -> 브라우저로부터 was에 요청이들어오면 서블릿이있는경우 바로 서블릿에요청을 전달 없다면 JSP를 자바코드로변환한후 자바코드컴파일을 통하여 서블릿클래스를 생성한후 요청을 전달한다 서블릿은 was에 응답반환)

 

ex)

 

위에 a변수 선언한적 없는상태에서

 

<%@ include file = "파일경로%>

<% a%> 

라고 하여도 포함할파일에 a변수가있다면 jsp파일코드자체를 가져오기때문에 호출한 jsp페이지에서도 사용가능하다

 

include를통해 포함된파일의 내역을 호출한페이지에 자동으로 변경하는건 톰캣같은 컨테이너가 하고있다고한다

서버사이드스크립트 기술을 실행할프로그램이란게 이런의미이지 않을까 생각해보고 잇다.

 

2-2)include 디렉티브의 활용

 

include디렉티브 주된 사용목적 - 모든 JSP페이지에서 사용하는 변수지정 /

                                           저작권표시와같은 모든페이지에서 중복되는 간단한문장

 

application객체에 저장하여 사용하는것보다 간편하고 응용하여 appication에 저정한객체를 include디렉티브 페이지에

미리저장한후 사용할수있다

 

2-3) 코드 조각 자동 포함 기능

 

코드 조각 자동 포함 기능 - JSP페이지 디렉티브사용없이 자동으로 include디렉티브를 적용해주는 것이다

 

사용방법

ex)

web.xml에서

<jsp-config>

  <jsp-property-group>

     <url-pattern>/view/*<url-pattern>  ----> (  = /view/로 시작되는 모든JSP파일에 적용한다)

     <include-prelude>포함할 JSP페이지 경로</include-prelude>

     <include-coda>포함할 JSP페이지 경로 </include-coda>

  </jsp-property-group>

</jsp-config>

 

사용목적 - include 디렉티브의 사용이 중복될경우 중복을 없애기위해 , 즉 효율적으로 코드를 작성하기위해

 

<jsp-property-group> - JSP의 프로퍼티를 포함한다

<url-pattern> - 프로퍼티를 적용할 JSP파일의 URL 패턴을 지정한다.( 해당패턴에 따르는 JSP페이지에는 코드조각자동                       포함이 자동으로 적용된다

<include-prelude> -  url-pattern 태그에서지정한 패턴에 포함되는 JSP파일의 맨앞에  삽입할 JSP페이지를 입력

<include-coda> -  url-pattern 태그에서 지정한 패턴에 포함되는 JSP파일의 맨뒤에 삽입할 JSP페이지를 입력

- url-pattern 태그에서지정한 패턴에 포함되는 JSP파일의 맨앞에  삽입할 JSP페이지를 입력

 

<include-coda> - url-pattern태그를 

 

<jsp-property-group> 태그가 여러개일때 하나의 JSP파일에 2가지이상의 패턴이적용될수있다 이럴경우 순서대로적용

 

2-4) <jsp:include> 액션 태그와 include 디렉티브의 비교

 

03) <jsp:forward>액션 태그를 이용한 JSP페이지 이동

 

<JSP:forward>액션태그 - JSP요청의 흐름을 변경한다.

 

요청흐름

- 웹 브라우저 요청을 from.jsp에 전달

- from.jsp는 <jsp:forward>액션 태그실행

- <jsp.forward> 액션태그 실행하면 요청흐름이 to.jsp로 이동

- 요청흐름이  흐름이 이동할때 from.jsp의 request객체,response객체가 to.jsp로전달

-to.jsp는 응답결과 생성

-to.jsp는 생성한 결과 웹 브라우저에 전달

 

책에서 짚어주는 핵심내용

- 브라우저에 결과를 응답해주는것은 요청을받은 from.jsp가아닌 to.jsp이다

 

 

3-1) <jsp:forward>액션 태그의 사용법

 

기본문법 - <jsp:forward page= "이동할 페이지"/>

 

사용법 - JSP페이지 안에 작성

 

특징

- 브라우저에는 forward로 이동한 페이지가 출력되지만 url은 처음 요청받은페이지로 나온다

  웹 컨테이너내에서 요청흐름의 변경이 일어났는데 이사실을 웹브라우저는 모르는것이다

 

3-2) <jsp:forward> 액션 태그와 출력 버퍼와의 관계

 

<jsp:forward>가 실행되면 해당페이지는 출력버퍼의 내용을 모두버리고 해당 페이지로 이동한다.

때문에 페이지의 흐름이 이동하기전 버퍼가 전송돼서는 안된다, buffer속성을 none으로해도 안된다

 

3-3) <jsp:forward> 액션 태그의 활용

 

ex)

 

<form action="<%= request.getContextPath()%>/view.jsp>

  <select name = "요청 파라미터에 전달할 값의 이름">

     <option value = "파라미터 이름에 적용할값"> ~~페이지 </option>

  </select>

 

<input type = "submit" value="이동">

</form>

 

이런식으로 값을 전달하면

 

<%

String code = request.getParameter("code");

String viewPageURL = null;

 

if (code.equal("code의값){

  viewPageURL = "파일경로";

}else if{

  다른경로

}등등..

 

%>

 

<jsp:forward page="<%= viewPageURI %>"/> 

 

식으로 사용한다 활용하는 예시일뿐이며 정답은없다 (추가로 html form태그를이용한 파라미터 전달에대해 다시복습)

 

3-4) <jsp:param> 액션 태그를 이용해서 이동할 페이지에 파라미터 추가하기

'학원 일기 > 학원-JSP' 카테고리의 다른 글

최범균의 JSP정복해보자  (0) 2021.05.25
server폴더 문서들  (0) 2021.05.16
jsp 시작하면서 모르는것들 정리  (0) 2021.05.01
jsp7일차  (0) 2021.05.01
jsp6일차  (0) 2021.04.29