ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바와 Tomcat 서버 연결하기
    JAVA/웹 프로그래밍 - 서블릿 2020. 10. 29. 23:12

    이클립스를 실행하고
    파일 탭에서 new를 선택하고 프로젝트 선택, 웹에서 다이나믹 웹 프로젝트 선택하는데 

    만약 없으면 

    Help탭에서 install New Software를 선택하고 work with의 맨 오른쪽의 아래 화살표를 눌러서 다운받을 경로를 

    선택하고  Web,XML,Java EE and OSGI Enterprise Development를 선택해서 전체를 설치한다.

    프로젝트 이름을 정한다. 이름은 iot로 하자.

    만일 프로젝트를 지울 경우에는,

    반드시 "Delete project contents on disk(cannot be undone)"까지도 체크를 하고 지워야 한다. 나중에 문제 생김

     

    Target runtime에서 현재 None으로 되어 있는데, New Runtime을 클릭하자.  런타임은 서버 선택을 의미한다.

     

    Apache에서 톰켓의 버전을 선택(현재 나의 Tomcat9.0버전을 쓴다.). Create a new local server 선택하고 넥스트 선택

     

    그리고 Tomcat installation directory를 선택해야 한다. Tomcat이 설치된 폴더를지정하자. 
    기존에 C:\Tomcat-9.039 에 있다. Tomcat이 설치된 폴더를 선택 한다. 그리고 Finish를 선택한다.

     

    그리고 Next를 선택한다.

     

     

    그리고 나서 디폴트 상태로 다음을 진행한다.

    그리고 디폴트로 선택하다가 클래스 패스도 설정을 해야 하지만 그냥 넘어간다. 나중에 한다. 

    build\classes는 나중에 지정할 것이므로 next를 선택 한다.


    넥스트 누르다가 맨 마지막 web module에서 generate xml deployment descriptor(자동으로 xml을 생성)을 체크한다. 
    이것은 반드시 체크를 해야 한다. 그리고 finish를 선택한다.


    "open the java EE perspective?" 질문에 open perspective를 선택한다.

     

    여기서, 중요한 폴더는 src폴더와 WebCotent 폴더이다.
    WebCotent 폴더는 html 문서가 들어가 있다.
    src는 서블릿 문서가 들어있다. 자바 파일이다.

     

    Window탭에 show view에서 servers를 선택해서 추가하자.
    서버의 on/off를 서버 탭에서 쉽게할 수 있다.
    포트 번호를 9090으로 설정해야 한다. (꼭 설정하지 않아도 된다. 만약 충돌이 일어날 경우에는 설정해야 한다.)
    서버 탭에서 Tomcat v9.0 Server at localhost [Stopped, Republish]이 보일 것이다. 이를 더블 클릭한다. 아래의 그림참고


    그러면 새로운 창이 뜨는데 이 창의 왼쪽 맨 하단을 보면 overview와 modules라고 선택할 수 있는 곳이 보인다.

    overview를 선택한다. 그러면 화면 중앙에 Port Name 칸이 보인다. 
    오른쪽 란에 HTTP/1.1 옆에 포트 번호가 뜬다. 이를 더블 클릭해서 9090으로 변경하자.


    만일 bootstrap 어쩌구 하는 에러가 뜨면, 

    서버 탭의 Tomcat v9.0 Server at localhost를 삭제하고 서버 탭 공간에 마우스 우클릭 -> New -> Server를 선택해서

    다시 만들면 된다. 
    이러한 에러가 발생하지 않으면 그냥 진행하자.

     

    WebContent에 index.html 파일을 하나 만들고 다음과 같이 적어준다.

    입력 내용

    더보기
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="EUC-KR">
    <title>Insert title here</title>
    </head>
    <body>
    	aaaaa
    </body>
    </html>

     

    그리고 해당 index.html 공간에 우클릭 한 후에 run as의 run on server를 선택한다.

    그러면 aaaaa가 뜨면 정상이다.

    그리고 윈도우 탭에서 Web Browser를 선택해서 원하는 브라우저를 선택하면 되는데, Chrome으로 선택한다.

     

    만약 Window 탭에서 Web Browser 목록이 보이지 않으면, Window 탭의 Preferences를 선택한다.

     

    General의 Web Browser를 선택하고 Use external web browser를 선택하고 chrome을 선택하고 적용한다.

    프로젝트 iot의 하위 폴더에서 'Java resources' 하위 폴더의 src를 

    우 클릭해서 new를 선택하고 서블릿 파일을 선택해서 만든다.

    자바 패키지는 com.iot.web 이라 적는다.

    클래스명은 Test이다. 

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

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

     

    Test라는 자바 파일이 만들어지면 필요없는 주석은 모두 제거하고 다음과 같은 내용을 적는다.
    아래는 원문 전체이다. 실제로는 service함수 내에 적어주면 된다.

    더보기
    PrintWriter out = response.getWriter();
    out.print("hello client");

     

    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 {
    		
    		PrintWriter out = response.getWriter();
    		
    		out.print("hello client");
    	}
    }

     

    Context 경로가 /iot인데 경로를 줄이자. 
    서버 탭의 Tomcat v9.0 Server at localhost 더블 클릭한다. 
    overview 창 맨 왼쪽 아래에 mudules선택하고 /iot를 선택하고 edit 눌러서 path에 /만 적는다.

    서버를 재시작하고 Test.java를 다시 실행하고 웹 브라우저의 주소를 보자.

     

    Test.java의 내용을 아래와 같이 적는다. service함수에 적는다.

    아래의 문장을 복사해서 service함수에 붙여 넣는다.

    복사할 내용

    더보기
    response.setCharacterEncoding("UTF-8");
    		
    PrintWriter out = response.getWriter();
    		
    out.println("서버에 접속한 것을 환영합니다.<br>");

     

    각 브라우저들마다 한글이 지원이 안될 때가 있다. 익스플로러는 된다.
    위와 같이 작성을 해야 한글로 볼 수 있는데, 그래도 문제가 발생한다.
    익스플로러 창을 띄우고 http://localhost:9090/Test를 접속하고
    마우스 우클릭으로 인코딩 -> 자세히 -> 유니코드를 선택하면 한글로 나온다.
    즉, UTF-8로 보내면 받는쪽도 UTF-8로 받아야 한다.
    받는 쪽도 UTF-8로 설정을 하자.

     

    그리고, 문장을 아래와 같이 Test.java의 service함수에 붙여 넣자.

    붙여 넣을 문장

    더보기
    response.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();	
    out.println("서버에 접속한 것을 환영합니다.<br>");

     

    한글이 나온다.
    윈도우 탭에서 Preferences에 들어가서 web 목록을 풀어보면 여러 파일들이 보인다.
    여기서 CSS, HTML, JSP를 각 각 하나씩 선택해서 Encoding목록에서 ISO 10646/Unicode(UTF-8)로 바꾼다.
    Apply and Close를 선택한다.
    그리고 다른 html파일을 만들어보면 title태그 위에 <meta charset="UTF-8"> 이 보인다.
    html 문서는 WebContent 폴더에 생성한다.

    설정 끝이다.

    댓글

Designed by Tistory.