POST 방식은 사용자가 입력한 값이
url에 보이지 않는다.
주로 로그인 혹은 회원가입때 사용이된다고 한다
localhost:8888/1_Servlet/test2.do
순수 서블릿 방식 :
JSP(Java Server Page) 방식 : html 내에 Java 코드 작성
setAttribute(String, object) :
request객체에 전달하고 싶은 값을 String 이름으로 Object저장하는 메소드
getAttribute(String) :
매개변수와동일한 객체 속성값 불러오는 메소드
해당 메소드는 주로
데이터를 다른 응답 페이지로 전달하는 데 자주 사용이 된다
(웹 애플리케이션에서 요청 처리 후, 데이터를 다음 페이지로 넘기기 위해 유용하다)
// 응답 페이지에서 필요한 데이터를 정리하여 전달
// -> 전달하는 공간 : request 객체의 attribute 라는 공간 사용
request.setAttribute("name", userName);
request.setAttribute("gender", gender);
request.setAttribute("age", age);
request.setAttribute("address", address);
request.setAttribute("height", height);
request.setAttribute("foods", foods);
// jsp 페이지로 응답 설정 : request.getRequestDispatcher(응답할페이지경로);
RequestDispatcher view = request.getRequestDispatcher("views/responsePage.jsp");
view.forward(request, response);
RequestDispatcher 클래스는 클라이언트의 요청을
다른 서버 리소스로 전달하거나 해당 리소스를
포함하는 기능을 제공한다.
forward() :
클라이언트의 요청을 다른 리소스로 넘기고
제어를 넘긴 후 해당 리소스에서
최종 응답을 클라이언트에 전달한다
<% 코드 %> : Scriptlet
역할 JSP 페이지 내에서 자바 코드를 실행할 수 있는 블록을 제공한다
특징으로는 페이지가 요청될 때마다 실행되는
자바 코드를 작성할 수 있다
주로 변수 선언, 조건문, 반복문 등을 삽입할 때 사용된다
실행시점 : JSP가 요청될 때마다 실행된다.
<%! %> :
JSP 페이지에서 멤버변수나 메서드를 정의할 때 사용이 된다 실행시점은 JSP가 처음 로드될 떄 한 번만 실행이 된다
사용 예 )
<%
// System.out.println("Hi? JSP!");
// 스크립트릿 (scriptlet) : html 문서 내에 자바코드를 사용할 수 있는 영역
// 서블릿을 통해 전달된 데이터 추출
String name = (String)request.getAttribute("name");
String gender = (String)request.getAttribute("gender");
int age = (int)request.getAttribute("age");
String address = (String)request.getAttribute("address");
double height = (double)request.getAttribute("height");
String[] foods = (String[])request.getAttribute("foods");
%>
<%= %>
사용예
<span><%= name %></span> <br>
특징 : 표현식 블록 : <%= name %>
블록 안에 작성된 자바 코드는 JSP 페이지가 실행될 때
처리되며, 그 결과값이 HTML 응답의 일부로 출력된다.
자동 출력이된다 <%=%> -> out.print()를 사용한 것과
동일하게 출력이 된다
별도의 출력 메소드를 출력하지 않아도 표현식의 결과가 자동으로 출력이 된다