① 서블릿 생성
src > main 에서 우클릭후 Directory를 선택해주자.
java를 눌러주자.
그럼 아래와 같이 java 폴더가 생긴다.
이제 메이븐에서 servlet을 다운해주자.
프로젝트 우클릭 후 Open Module Setting을 눌러주자.
모듈 > Dependencies > + > Jars or Directories
톰캣이 설치된 폴더의 lib내부에 servlet-api.jar이 있다. 추가해주자.
+ servlet-api.jar 파일뿐 아니라 jsp-api.jar 파일도 추가해주자.
서블릿이 추가됬는지 확인 후 OK.
이후 New Servlet 만들기를 진행해주자.
여기 까지 완료했다면 서블릿 생성 메뉴가 생긴다.
생성된 코드는 아래와 같다.
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
public class HelloWorld extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
위 코드를 다음과 같이 수정해주자.
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(description = "My first servlet", urlPatterns = {"/hello"})
public class HelloWorld extends HttpServlet {
private static final long serialVersionUID = 1L;
public HelloWorld() {
super();
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.append("<!doctype html><html><head><title>Hello World Servlet</title></head><body>")
.append("<h2>Hello World !!</h2><hr>")
.append("현재 날짜와 시간은 : "+java.time.LocalDateTime.now())
.append("</body></html");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
그리고 톰캣 서버를 실행시킨후 http://localhost:8081/hello 에 들어가주자.
② 서블릿 코드 분석(해석)
@WebServlet 어노테이션
@WebServlet(description = "My first servlet", urlPatterns = {"/hello"})
현재 클래스가 서블릿 클래임을 컨테이너에 알림.
UrlPatterns는 어떤 요청에 의해 서블릿을 호출할지 설정할수있다.
Description을 없애고 @WebServlet(urlPatterns = {"/hello"})로 해도된다.
doGet()
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().append("Served at: ").append(request.getContextPath());
}
GET요청을 처리하는 메서드. 파라미터는(인자값) request, reponse로 한다.
ServletException과 IOExecption을 throws하고 있기 때문에 호출하는 쪽에서 예외 처리를 해야한다.
response.getWriter() | java.io.PrintWriter 클래스 타입의 객체 리턴 |
request.getContextPath() | 웹 어플리케이션 경로 리턴 메서드 |
doPost()
POST 요청을 처리하는 메서드. REST API 구현이 아닌 일반 서블릿 구현이라면 GET, POST 내부적으로 동일하게 처리한다. GET, POST를 구분해서 처리해야하는경우 별도의 코드로 구성가능.
[메인으로 돌아가기]
'Java Spring > 책공부 1 (JSP와 스프링)' 카테고리의 다른 글
9. JSP 기초 종합 예제 (0) | 2022.07.09 |
---|---|
8. 계산기 구현 (0) | 2022.07.08 |
6. ToDo리스트 앱 만들기 (0) | 2022.07.07 |
5. 회원 가입 폼 만들기 (0) | 2022.07.03 |
4. 동적 웹 프로젝트 생성과 톰캣 연동(JSP, 이클립스 구조) (0) | 2022.07.03 |