Web
4 Jun 2020

Page Moving in Code

해당 게시글은 웹을 공부하기 위해 개인적으로 기록했던 자료입니다.

include


04include
위와 같이 텍스트를 하나 입력하고 Servlet으로 이동한 뒤에 include방식으로 페이지 이동을 하겠습니다.

	protected void doProcess(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String id = request.getParameter("id");
		request.setAttribute("id", id);
		RequestDispatcher rdp = request.getRequestDispatcher("includeTest.jsp");
		//rdp.forward(request, response);
		rdp.include(request, response);
		PrintWriter out = response.getWriter();
		out.println("이거 안뜸");
		
	}


includeTest.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2><b>INCLUDE TEST...</b></h2>
<img alt="" src="img/book.jpg" width="20%" height="20%">
</body>
</html>


05includeResult
위와 같이 includeTest.jsp의 내용이 뜬 다음 Servlet에서 PrintWriter로 만들어준 내용도 같이 출력되는 것을 확인할 수 있습니다. 그리고 URL을 보면 마지막에 Servlet의 url-pattern으로 끝나는 것을 확인할 수 있습니다.

Redirect


redirect2.html

06redirect

위와 같이 Form을 만들어준 뒤 Servlet으로 보내겠습니다.

RedirectServlet2.doProcess()

protected void doProcess(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String value= request.getParameter("choose");
		if (value == null)
			response.sendRedirect("error/error.html");
		else {
			request.setAttribute("choose", value);
			RequestDispatcher rdp = request.getRequestDispatcher("checkResult.jsp");
			rdp.forward(request, response);
		}
		
	}


체크박스가 체그가 안돼있으면 error.html로 Redirect를 하고 체크가 되어 있으면 forward방식으로 checkResult.jsp페이지로 넘어갑니다.

forward방식을 사용하기 위해 RequestDispatcher 객체를 사용한 것에 주의를 기울여야 합니다. 그리고 url을 통해 제어권이 Servlet에 남아있다는 것을 확인할 수 있습니다.

07redirecError

Redirect방식은 Servlet의 제어권에서 나와서 다시 브라우저가 해당 페이지로 요청하는 방식이기 때문에 URL이 error.html로 끝나는 것을 확인할 수 있습니다.

08redirecErrordd.png


Tags:
0 comments