서론
- jsp를 공부하기 위해 자료를 찾아보는데, 거의 모든 강의가 이클립스를 사용 중
- 이클립스를 싫어하는 나는 괜한 오기가 생겨서 인텔리제이 환경으로 강의를 따라가기로 마음 먹음
- 뭣모르고 톰캣 최신버전인 11버전으로 연습 중인데, 단순 서블릿 실행에서도 여러 에러를 경험,,,,
- 다음에 참고하기 위해 그 과정을 기록합니다..
개발 환경 및 버전
- Tomcat: 11.0.0
- IntelliJ: 20.23.6(Comunity)
- JDK: 21
과정
1. 프로젝트 생성
Maven Archetype -> Archetype -> ~~~-webapp 선택
기타 설정
2. 톰캣 연동
Edit Configuration -> Smart Tomcat -> 관련 설정하기
만약 Smart Tomcat이 없는 경우 플러그인 설치 ㄱㄱ
3. 서블릿 템플릿 작성(생략가능)
직접 java 파일을 생성 후, 서블릿 코드를 작성해도 되지만 귀찮음..
간편하게 서블릿을 작성할 수 있도록 템플릿 작성
File -> Settings -> Editor -> File and Code Templates -> Files에서 새로운 템플릿 추가(플러스버튼)
아래 코드 작성
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.annotation.WebServlet;
@WebServlet("/~")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
// POST 요청 처리
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
}
4. Source Root
설정
- main 디렉토리 아래에
/java
디렉토리 생성 - 생성된
/java
디렉토리 우클릭 Mark Directory as
->Source Root
5. 서블릿 파일 생성
위에서 생성한 /java
디렉토리 하위에 위에서 정의한 서블릿 템플릿을 사용해서 파일 생성(자바 파일 생성 후, 코드 작성도 가능)
서블릿 코드 작성
package servlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/hello") // web.xml 대신 어노테이션으로 매핑 가능
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
response.getWriter().println("<html><body>");
response.getWriter().println("<h1>Hello, Servlet!</h1>");
response.getWriter().println("</body></html>");
}
}
6. pom.xml에서 서블릿 의존성 추가
<!-- Jakarta Servlet API -->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
</dependency>
7. web.xml에서 서블릿 매핑
...을 해야하지만, 나는 @WebServlet
아노테이션을 사용했기 때문에 생략
8. 실행 결과
- jsp
- servlet
짜잔..!!
@WebServlet 아노테이션을 통해 매핑한 경로로 들어가면, 서블릿에서 작성한 템플릿 반환
트러블슈팅
서블릿 라이브러리
톰캣 11 이전에서는 javax.servlet 라이브러리를 사용했지만, 톰캣 11 이후부터는 jakarta.servlet 사용
이거때문에 몇시간 날림ㅡㅡ
릴리즈 노트를 잘 읽어보자....
'Back End > Jsp && Servlet' 카테고리의 다른 글
[Java/Servlet] 서블릿에서 .html 뷰 파일을 응답하기 (0) | 2024.11.21 |
---|