ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 서블릿, JSP 프로젝트 - 서블릿, JSP 작성하기
    백엔드/서블릿&JSP 2021. 2. 3. 00:54

    해당 글은 이클립스 EE버전, 톰캣 서버 등이 기본적으로 세팅됐다는 전제하에 진행합니다.

     

    해당 게시글에서 진행하는 예제는 서블릿, JSP를 이용 MVC패턴 model2 방식을 진행할 예정입니다.

    서블릿, JSP 프로젝트(Dynamic Web Project) 시작하기

    우선 File > New > other을 클릭한다.

     

     

    선택 마법사가 나타나면 dynamic을 치고 Dynamic Web Project를 선택 후 Next를 누른다.

     

     

    해당 창에서 프로젝트 이름 입력 및 사용할 서버를 선택해준다.

     

    Project Name항목에 이름을 입력한다.

     

    Target runtime항목에서 본인이 미리 설치한 서버 프로그램과 버전을 선택한다.

     

    Dynamic web module version을 눌러서 원하는 버전을 선택한다.

     

    보통은 가장 최신 버전으로 선택되있을 것이다.

     

    모두 선택했다면 Next를 누른다.

     

     

    해당 화면에서 'Default output folder'에 위와 같은 경로를 입력해준다.

     

    해당 폴더는 서버가 파일을 참조하는 곳으로 기본 경로를 미리 설정해두는 것이 좋다.

     

    그 다음 Next를 눌러준다.

     

     

    위와 같이 Context root를 "/"로 바꿔준다.

     

    그리고 나서 아래 체크 부분을 체크해주고 Finish를 누른다.

    서블릿과 JSP파일 생성하기

    Finish를 누르면 프로젝트가 생성되고 위와 같은 폴더와 파일들이 생성된 것을 확인할 수 있다.

     

    여기서 src폴더는 서블릿 파일이 위치한다.

     

    그리고 WEB-INF폴더엔 JSP 파일이 위치해야 한다.

     

    실제로는 WebContent 안에만 넣어도 JSP파일이 돌아가긴한다.

     

    하지만 보안상의 이유로 WEB-INF에 넣는 것이 일반적이다.

     

    참고로 WEB-INF 안에 넣으면 사용자가 지정되지 않은 url로 접근하는 것을 막을 수 있다.

     

    참고로 web.xml은 웹 어플리케이션 초기 설정에 관한 내용이 있는 파일이다.

     

     

    다음은 WEB-INF 폴더 안에 views 폴더를 만들고 그 안에 JSP파일을 만들어주자.

     

     

    내용은 대충 적어주자.

     

     

    이제 서블릿 파일을 만들어보자. 그 전에 우선 패키지를 생성해야 한다.

     

     

    이름은 마음대로 정해주는데 보통 많은 예제에서 앞에 com을 쓰는데 company란 뜻이다.

     

     

    이제 생성한 패키지 안에 서블릿 파일을 만들어보자.

     

     

    이름을 입력해준다. 해당 예제에선 HomeController로 이름을 지었다.

     

    참고로 서블릿파일도 클래스이므로 맨 앞을 대문자로 써주는 것을 잊지말자.

     

    이제 이름을 정했다면 Next 버튼을 누르자.

     

     

    이런 화면이 뜨는데 해당 서블릿에 매핑되는 URL주소를 정하는 설정이다.

     

     

    Edit 버튼을 누르고 위와 같이 "/" 이렇게 바꿔주고 OK 한다음 Next를 누른다.

     

     

    서블릿에서 사용할 메서드들을 자동으로 설정하는 화면이다.

     

    2021/01/06 - [백엔드/서블릿&JSP] - javax.servlet 패키지

     

    javax.servlet 패키지

    import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; im..

    sgcomputer.tistory.com

    이미 이전 서블릿 관련 글에서 썼지만 HttpServlet을 상속받는 일반적으로

     

    우리가 쓰는 서블릿은 기본적인 것이 다 구현되어있다.

     

     

    그래서 굳이 init, destroy같은건 재정의하지 않고 여기선 위와 같이 doGet, doPost 메서드만

     

    상속 받을 것이다.

     

    체크를 했다면 Finish 버튼을 누르자.

     

     

    Finish 버튼을 누르면 위와 같이 복잡한 화면이 자동 생성된다.

     

    이제 여기서 쳐낼건 쳐주고 정말 필수적인 것들만 남겨보자.

     

     

    주석이나 이런 것들을 다 제끼고 딱 필요한 것만 남겼다.

     

    참고로 @WebServlet은 해당 서블릿을 진입 url에 매핑시켜주는 어노테이션이다.

     

    큰따옴표 ""안에 경로를 넣으면 사용자가 해당 경로로 진입시 WAS가 이 서블릿으로 연결해준다.

     

    즉 저 주소를 치면 들어올 수 있다는 것이다.

     

    doGet은 해당 url로 get방식으로 request 요청시 해당 메서드가 실행된다는 의미다.

     

    doPost는 해당 url로 post방식으로 request 요청시 해당 메서드가 실행된다는 의미다.

     

    우선 위에 만든 index.jsp를 실행할 예정이므로 doGet 메서드에 다음과 같은 내용을 적어줄 예정이다.

     

     

    WEB-INF 안에 있는 파일은 외부에서 접근이 불가능하기 때문에 redirect() 메서드로는 접근이 불가하다.

     

    그래서 RequestDispatcher 객체를 만들어 경로를 설정하고 forward() 메서드로 접근해야 한다.

     

    참고로 RequestDispatcher객체, forward()에 관한 내용은 아래 포스팅에서 다룬 바 있다.

     

    2021/01/11 - [백엔드/서블릿&JSP] - forward와 sendRedirect 차이

     

    forward와 sendRedirect 차이

    RequestDispatcher와 forward란? 클라이언트로부터 요청을 받고 이를 다른 리소스(서블릿, html, jsp)로 넘겨주는 역할을 하는 인터페이스. RequestDispatcher는 javax.servlet 패키지에 포함된 인터페이스로 위..

    sgcomputer.tistory.com

     

     

    위와 같이 메서드를 다 설정해줬으면 서블릿 파일을 우클릭 하고 Run As > Run on Server를 눌러준다.

     

    이는 해당 서블릿을 실행한다는 뜻이다.

     

     

    이런 화면이 나오면 Finish를 눌러준다.

     

     

    Finish를 누르면 아까 작성한 JSP 파일이 실행된 내용을 볼 수 있다.

Designed by Tistory.