ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 구구단의 원하는 단을 입력해서 출력하기
    JAVA/웹 프로그래밍 - 서블릿 2020. 10. 29. 23:47

    문제

    구구단 프로그램을 만들어보자.

    웹 페이지에 localhost:9090/GooGoodan?dan=5 를 입력하면 5단이 출력되게 만들자.

     

    파일 생성

    java resources의 하위에 src폴더가 있고 이 폴더 하위로 com.iot.web 패키지가 있다.

    이 패키지를 선택하고 우클릭해서 new를 선택하고 Servlet을 선택한다.

    클래스 명은 GooGooDan으로 한다. 대소문자를 구분하기 때문에 이를 인지하고 단어들을 사용하자.

    next를 클릭한다. 다시 next를 선택한다. 

    Constructors from superclass 를 체크 해제한다.

    doPost함수와 doGet함수 체크 해제를 한다.service함수는 체크한다.

    Finish를 선택한다.

    파일이 생성되면, 주석이 있는 부분은 모두 지운다.

    아래의 내용을 복사해서 붙여 넣자.

     

    GooGooDan.java

    더보기
    package com.iot.web;
    
    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;
    
    @WebServlet("/GooGooDan")
    public class GooGooDan extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    
    	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		
    		response.setCharacterEncoding("UTF-8");
    		response.setContentType("text/html;charset=UTF-8");
    		PrintWriter out = response.getWriter();
    		
    		String dan_ = request.getParameter("dan");	//	리퀘스트의 정보를 받는다.
    		
    		int dan = Integer.parseInt(dan_);
    		
    		for (int i = 1; i < 10; i++)
    			out.println(dan +" X " +i +" = " +(dan*i) +"<br>");
    	}
    }

     

    GooGooDan.java 에서 서버를 실행해보자.

    당연히 에러가 뜬다.

    웹 브라우저의 주소 창에 http://localhost:9090/GooGooDan?dan=5 라고 적으면 5단이 뜬다.

     

    실행결과

     

     

    위의 내용에는 예외처리를 해줘야 하는 부분이 존재한다.

    처음에 서버를 실행했을 때의 아무것도 입력이 안 된 상태와, "?"만, "?dan", "?dan=" 에 대한 처리를 하자.

    아래의 내용을 붙여 넣자.

    GooGooDan.java

    더보기
    package com.iot.web;
    
    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;
    
    @WebServlet("/GooGooDan")
    public class GooGooDan extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    
    	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		
    		response.setCharacterEncoding("UTF-8");
    		response.setContentType("text/html;charset=UTF-8");
    		PrintWriter out = response.getWriter();
    			
    		int dan = 2;	//	2단으로 초기화
    		
    		String dan_ = request.getParameter("dan");	//	리퀘스트의 정보를 받는다.
    		
    		//	dan_이 null이 아니면 정수로 변환
    		if (dan_ != null && dan_ != "")
    		{
    			dan = Integer.parseInt(dan_);
    		}
    		
    		for (int i = 1; i < 10; i++)
    			out.println(dan +" X " +i +" = " +(dan*i) +"<br>");
    	}
    }

     

     

     

    웨 브라우저에 각 문장들을 입력해보자.

    1. http://localhost:9090/GooGooDan

    2. http://localhost:9090/GooGooDan?

    3. http://localhost:9090/GooGooDan?dan

    4. http://localhost:9090/GooGooDan?dan=

    5. http://localhost:9090/GooGooDan?dan=3

    각 경우에 대한 예외 처리가 잘 되었음을 알 수 있다.

     

     

    그런데, 위의 방식은 잘 사용하지 않는 방식이다.

    잘 사용하는 방식은 index.html을 만들어서 구구단을 출력하는 Test.java를 링크를 걸어놔서 2단,3단,4단을

    출력하는 방식으로 본다.

    index.html 파일을 만들어보자.

    html 파일은 WebContent 폴더에 만들어야 한다.

     

    index.html 내용

    더보기
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    	<a href="http://localhost:9090/GooGooDan?dan=2">2단 출력 </a><br>
    	<a href="http://localhost:9090/GooGooDan?dan=3">3단 출력 </a><br>
    	<a href="http://localhost:9090/GooGooDan?dan=4">4단 출력 </a>
    </body>
    </html>

     

    Test.java는 삭제를 하면 안된다.

    그리고 index.html 소스 내에서 마우스 우클릭해서 run as 를 선택하고 run on server를 선택한다.

    즉, index.html을 실행해야 한다.

    각 단들을 선택하면 그에 대한 단들이 출력 됨을 알 수 있다.

    댓글

Designed by Tistory.