프로그래밍/JSP Servlet

JSP/Servlet - 서블릿 클래스에서 에러페이지 호출하기

가카리 2015. 12. 30. 22:32
반응형

 

서블릿 클래스에서 에러페이지를 호출하는 방법은 jsp와 유사하다.

 

 

위와같이 NewAdderServlet클래스와 DataErrorServlet클래스로 구성된다.

 

NewAdderServlet.java

 

package com.exam.kch;

 

import java.io.IOException;

import java.io.PrintWriter;

 

import javax.servlet.RequestDispatcher;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

/**

* Servlet implementation class NewAdderServlet

*/

@WebServlet("/NewAdderServlet")

public class NewAdderServlet extends HttpServlet {

 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // TODO Auto-generated method stub

        try{

            

            String str1 = request.getParameter("NUM1");

            String str2 = request.getParameter("NUM2");

            int num1 = Integer.parseInt(str1);

            int num2 = Integer.parseInt(str2);

            int result = num1 + num2;

            response.setContentType("text/html;charset=euc-kr");

            PrintWriter out = response.getWriter();

            out.println("<HTML>");

            out.println("<HEAD><TITLE>덧셈 프로그램</TITLE></HEAD>");

            out.println("<BODY>");

            out.printf("%d + %d = %d", num1, num2, result);

            out.println("</BODY>");

            out.println("</HTML>");

            

        }catch(NumberFormatException e){

            RequestDispatcher dispatcher = request.getRequestDispatcher("DataErrorServlet");

            dispatcher.forward(request, response);

        }

        

    }

 

 

}

 

 

DataErrorServlet.java

 

package com.exam.kch;

 

import java.io.IOException;

import java.io.PrintWriter;

 

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

/**

* Servlet implementation class DataErrorServlet

*/

@WebServlet("/DataErrorServlet")

public class DataErrorServlet extends HttpServlet {

    

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // TODO Auto-generated method stub

        response.setContentType("text/html;charset=euc-kr");

        PrintWriter out = response.getWriter();

        out.println("<HTML>");

        out.println("<HEAD><TITLE>에러화면</TITLE></HEAD>");

        out.println("<BODY>");

        out.println("잘못된 데이터가 입력됨");

        out.println("</BODY>");

        out.println("</HTML>");

        return;

    }

 

 

}

 

 

출력 화면

아래와 같이 파란색부분에 정상적인 값을 입력하면 결과 값이 잘 나온다.

 

하지만 다음과 같이 다른 값이 입력되면 에러 페이지로 이동하게 된다.

 

반응형