ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 반복문을 이용하여 문자열 여러 번 출력
    JAVA/웹 프로그래밍 - 서블릿 2020. 10. 29. 23:23

    문제

    웹 브라우저에 http://localhost:9090/Test?cnt=3 을 입력하면

    "서버에 접속한 것을 환영합니다." 를 3번 출력하도록 만들자.

     

    파일 만드는 방법

    현재 프로젝트 내의 java resources 하위 폴더의 src를 클릭하고 우클릭 한 후에 new를 선택하고 Servlet을 선택한다. 

    클래스명은 Test라고 한다. (이미 있으면 만들지 않고 만들어진 파일을 이용하자)

    여기서 곧바로 finish클릭하면 큰일 난다. 넥스트를 선택해야 한다.  그리고 넥스트를 선택한다.

    Constructors from superclass 항목을 체크 해제하고 서비스만 체크한다.
    가장 많이 쓰이는 것은 doPost와 doGet 함수인데 여기서 이 두 함수는 체크 해제한다. 이 두 함수는 현재 안 쓸 것이다.
    즉, service만 체크되어있어야 한다. finish를 선택한다.

     

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

    response는 서버가 요청에 대해 보내 주는 것을 의미하고 request는 클라이언트가 정보를 받는 것을 의미한다.

    Test.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("/Test")
    public class Test extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    
    	protected void service(HttpServletRequest request, 
    			HttpServletResponse response) throws ServletException, IOException {
    		
    		response.setCharacterEncoding("UTF-8");
    		response.setContentType("text/html;charset=UTF-8");
    		PrintWriter out = response.getWriter();
    		
    		String cnt_ = request.getParameter("cnt");	//	리퀘스트의 정보를 받는다.
    		
    		int cnt = Integer.parseInt(cnt_);
    		
    		for (int i = 0; i < cnt; i++)
    			out.println("서버에 접속한 것을 환영합니다.<br>");
    	}
    }

    위의 맨 마지막에 <br> 태그를 붙인 이유는 개행을 위해서이다.

    Test.java 소스 코드 내의 마우스 우클릭해서 run as를 선택하고 run on server를 한다.

    그러면 아래와 같이 에러가 발생한다. 당연한 에러이다.

     

    웨 브라우저 주소창에 다음과 같이 적자.

    http://localhost:9090/Test?cnt=3

    그러면 아래와 같이 나타난다.

     

    댓글

Designed by Tistory.