RequestDispatcher rdp = request.getRequestDispatcher("url");
rdp.forword(request, response);
package servlet.dispatch;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ErrorPronServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String choose = request.getParameter("choose");
if(choose == null) {
//오류 메세지를 request scope에 binding
request.setAttribute("error_message", "체크박스가 선택되지 않았습니다.");
//error.jsp로 수행을 이동 - request scope을 이용하므로 요청 디스패치방식으로 이동
RequestDispatcher rdp = request.getRequestDispatcher("/dispatch/error.jsp"); //시작점이 application의 root(myweb을 말함)
rdp.forward(request, response);
//sendRedirect를 하면 request가 지워지고 새로운 request를 만들어내는데 여기에는 error_message라는 attribute가 존재하지 않음
response.sendRedirect("/myweb/dispatch/error.jsp");
return;
}
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("체크박스가 체크되어 넘어왔습니다." + choose);
out.println("</body></hmtl>");
}
}
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="/myweb/error_pron_dispatch" method="post">
체크 : <input type = "checkbox" name = "choose" value="yes">
<input type = "submit" value="전송">
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
오류가 발생했습니다. 관리자에게 문의하세요.<br>
오류내용 :
<% String errorMessage = (String)request.getAttribute("error_message"); %>
<%= errorMessage %>
</body>
</html>