서블릿 체이닝이란? 한서블릿의 출력을 다른 서블릿의 입력으로 이용하는 경우인데 RequestDispatcher를 이용하여 forward
형태로 구현가능하다.
아래 예제를 보자.
1. First.java
package onj;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//아래 WebServlet import하려면 이클립스 build path에서 add library -> server
runtime 에서
// tomcat 선택해서 톰캣관련 라이브러리 추가해야 한다.
// tomcat 선택해서 톰캣관련 라이브러리 추가해야 한다.
@WebServlet("/first")
public class First extends HttpServlet {
String subject;
public void doGet(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
throws ServletException, IOException {
response.setContentType("text/plain");
subject = request.getParameter("subject");
RequestDispatcher rd = request.getRequestDispatcher("second");
RequestDispatcher rd = request.getRequestDispatcher("second");
if (subject != null) {
request.setAttribute("OnjSubject", subject);
//request에 subject를 매달아서(setAttribute) Second 서블릿으로 보낸다.
//Second에서는 getAttribute로 받으면 된다.
//이게 서블릿 체이닝, 한서블릿의 출력이 다른 서블릿의 입력으로...
rd.forward(request, response);
} else {
response.sendError(response.SC_BAD_REQUEST, "UserName Required");
}
}
}
request.setAttribute("OnjSubject", subject);
//request에 subject를 매달아서(setAttribute) Second 서블릿으로 보낸다.
//Second에서는 getAttribute로 받으면 된다.
//이게 서블릿 체이닝, 한서블릿의 출력이 다른 서블릿의 입력으로...
rd.forward(request, response);
} else {
response.sendError(response.SC_BAD_REQUEST, "UserName Required");
}
}
}
2. Second.java
package onj;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.annotation.WebServlet;
@WebServlet("/second")
public class Second extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
public class Second extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/plain");
PrintWriter out = response.getWriter();
String subject = (String) request.getAttribute("OnjSubject");
PrintWriter out = response.getWriter();
String subject = (String) request.getAttribute("OnjSubject");
// Extracting the value which is set in
FirstServlet
out.println("Subject : " + subject);
}
}
out.println("Subject : " + subject);
}
}
3. 결과
Subject : oraclejava
[개강임박강좌, 오프라인교육장에 오시면 보다 자세히 배울 수 있습니다.]
오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr)
[주간]
[11/25]Spring3.X, MyBatis, Hibernate실무과정
[11/25]초보자를위한실전SQL
[11/25]안드로이드개발자과정
[11/25]iPhone 하이브리드 앱 개발 실무과정
[평일야간]
[11/22]자바초보에서안드로이드까지
[11/26]JAVA&WEB프레임워자실무과정
[11/26]iPhone하이브리드앱개발실무과정
[11/27]SQL초보에서실전전문가까지
[11/28]Spring3.X, MyBatis, Hibernate실무과정
[주말]
[11/23]JAVA&WEB프레임워크실무과정
[11/23]웹퍼블리싱 마스터
[11/23]C#,ASP.NET마스터
[11/30]SQL초보에서전문가까지
[11/30]Spring3.X,MyBatis,Hibernate실무과정
오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr)
[주간]
[11/25]Spring3.X, MyBatis, Hibernate실무과정
[11/25]초보자를위한실전SQL
[11/25]안드로이드개발자과정
[11/25]iPhone 하이브리드 앱 개발 실무과정
[평일야간]
[11/22]자바초보에서안드로이드까지
[11/26]JAVA&WEB프레임워자실무과정
[11/26]iPhone하이브리드앱개발실무과정
[11/27]SQL초보에서실전전문가까지
[11/28]Spring3.X, MyBatis, Hibernate실무과정
[주말]
[11/23]JAVA&WEB프레임워크실무과정
[11/23]웹퍼블리싱 마스터
[11/23]C#,ASP.NET마스터
[11/30]SQL초보에서전문가까지
[11/30]Spring3.X,MyBatis,Hibernate실무과정
댓글 없음:
댓글 쓰기