728x90
포워드기능
하나의 서블릿에서 다른 서블릿이나 jsp로 연동하는 방법
종류
Redirect
웹브라우저에 재요청하는 방식
@WebServlet("/first")
public class FirstServlet extends HttpServlet{
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
// 1. sendredirect
response.sendRedirect("second"); }
}
refresh
웹브라우저에 재요청하는 방식, addheader 메소드로 Redirect 설정 후 일초 후 이동
@WebServlet("/first")
public class FirstServlet extends HttpServlet{
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
response.addHeader("Refresh","1;url=second");
}
}
location
자바스크립트에서 재요청
하단의 예시의 경우 name이라는 파라미터를 넘겨 받을 수 있게 함
@WebServlet("/first")
public class FirstServlet extends HttpServlet{
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.print("<script type='text/javascript'>");
out.print("location.href='second?name=lee';");
out.print("</script>");
}
}
dispatch
서블릿이 직접 쓰는 요청방법
dispatcher로 forwarding할시, 별도로 주소 변경은 이뤄지지 않는다
나중에 모델2 방식에서 포워드 할 때 많이 사용
위에서 parameter로 넘기고 싶을 때도
second?name=lee
라는 방식으로 포워딩 가능
@WebServlet("/first")
public class FirstServlet extends HttpServlet{
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
RequestDispatcher dispatcher = request.getRequestDispatcher("second");
dispatcher.forward(request, response);
}
}
728x90
'개발' 카테고리의 다른 글
ServletContext (0) | 2020.05.29 |
---|---|
[Servlet] 바인딩이란? (0) | 2020.05.29 |
면접자료 이해한만큼 정리하기 (0) | 2020.05.26 |
[Java/SimpleMailMessage] 유니코드 포함하여 메일 작성 및 인덱스 꾸미기 (0) | 2020.05.24 |
Docker 'name is already in use by container' (0) | 2020.05.20 |