본문으로 바로가기

[JSP] 내장객체와 Redirect & Forward

category Dev/JSP 2018. 5. 23. 14:46


JSP 내장객체

내장객체란?

- JSP를 실행하면 서블릿이 생성되고 실행됨

- JSP에 입력한 대부분의 코드는 서블릿의 _jspService() 메소드 안에 삽입되는 코드로 생성

- _jspService()에 삽입된 코드의 윗부분에 미리 선언된 객체들이 있는데, 이 객체들은 선언없이 jsp에서 사용가능하다


내장객체의 종류

- request

- response

- out

- session

- application

- page


<body>

<%

StringBuffer url = request.getRequestURL();


out.print(url.toString());

out.print("<br>");

%>

</body>


Redirect & Forward

Redirect

- HttpServletResponse가 가지고 있는 sendRedirect() 메소드를 사용

- 요청이 1개가 아니라 2개 (Request,Response가 다름!!)


Forward

- forward가 실행된 이후에 URL은 바뀌지 않음


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@WebServlet("/front")
public class FrontServlet extends HttpServlet {
  private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public FrontServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
 
 
  /**
   * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
   */
  protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    int diceValue = (int)(Math.random() * 6+1;
    request.setAttribute("dice", diceValue);  // String, Object
    
    RequestDispatcher requestDispatcher = request.getRequestDispatcher("/next");
    requestDispatcher.forward(request, response);
  }
}
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
@WebServlet("/next")
public class NextServlet extends HttpServlet {
  private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public NextServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
 
 
  /**
   * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
   */
  protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("<html>");
    out.println("<head><title>form</title></head>");
    out.println("<body>");
    
    int  dice = (Integer)request.getAttribute("dice");
    out.println("<h1>dice : " + dice + "</h1>");
    
    for(int i=0; i<dice; i++) {
      out.println("hello~ <br>");
    }
    
    out.println("</body>");
    out.println("</html>");
  }
}
 
cs



=> front에서 forward로 next로 이동하였지만 URL은 /front인 것을 알 수 있다!!!



'Dev > JSP' 카테고리의 다른 글

[JSP] JDBC 사용하기!!  (0) 2018.05.29
[JSP] Maven 이란??  (0) 2018.05.29
[JSP] EL & JSTL  (0) 2018.05.26
[JSP] Scope  (0) 2018.05.24
[JSP] Servlet과 Jsp란?  (1) 2018.05.23