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 |