Daily coding

Servlet : 에러 만들기 및 xml <init- parameter> 본문

Front-end/비동기통신

Servlet : 에러 만들기 및 xml <init- parameter>

sunnnkim 2020. 1. 16. 19:37

1. Servlet 전송 오류 만들기

 

* Servlet 에서 오류를 발생시킬 수 있다.

 

* 대표적인 오류

404 (Page not found) : 페이지 주소 오류 또는 페이지 없음

500 (Internal server error) : 코드가 잘못되어 나타나는 오류

 

 

* HttpServletRequest 소속의 함수 sendError

sendError:  sendError( HttpServletResponse.SC_NOT_FOUND, "못 찾겠다는 에러" );

- 에러 메세지를 설정하고 에러를 만들수 있다

- 에러의 종류는 HttpServletResponse (resp) 에 소속되어 있음

 

 

public class HelloServlet extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
		String code = req.getParameter("code");
		System.out.println(code);
		
		String name = req.getParameter("name");
		System.out.println("name: " + name);
		
		String tax = this.getInitParameter("tax");
		
		resp.setContentType("text/html; charset=UTF-8");
		PrintWriter pw = resp.getWriter();	// html코드를 여기서 작성함
		
		pw.println("<html>");
		pw.println("<head>");
		pw.println("<title>제목</title>");
		pw.println("<body>");
		pw.println("<h1>Hello Servlet</h1>");
		pw.println("<p>Hello Servlet. This text is from Servlet</p>");
		
		if(code.equals("200")) {
			pw.println("<p>200:SC_OK</p>");
		}else{
			if(code.equals("404")) {
				resp.sendError(HttpServletResponse.SC_NOT_FOUND, "못 찾겠다는 에러");			
			}
			else if(code.equals("500")) {
				resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "코드가 틀렸다는 에러");			
			}
			
		}
		
		
		pw.println("<p> init-value인 tax : " + tax + "</p>");
		pw.println("</body>");
		pw.println("</head>");
		pw.println("</html>");
		pw.close();
		
		// Java 안에 html 코드 써서 화면에 뿌림
		
	
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		super.doPost(req, resp);
	}
	
	
	
}

 

2. init- parameter 만들기

 

: xml 파일에 init-param 태그를 추가하면 상수로 만들어 사용할 수 있다

( 세율, 이자율 등의 상수값이 필요할 때 꺼내서 사용할 수 있다 )


* 접근 방법
- 자바 서블릿 파일에서 get/post 함수에 this.getInitParameter로 접근가능
ex> String tax = this.getInitParameter("");

<servlet>
	<servlet-name>myServlet</servlet-name>
	<servlet-class>sample04.HelloServlet</servlet-class>
	
	<init-param>
		<param-name>tax</param-name>
		<param-value>0.15</param-value>
	</init-param>	
	
</servlet>