서블릿이란 무엇인가??
1. JSP 표준이 나오기전에 만들어진 표준으로 웹 어플리케이션을 개발할 수 있도록 만들어진 것
2. 서블릿을 이용하면 자바 클래스를 이용해서 웹 어플리케이션을 개발할수 있다.
3. 개발과정
ㄱ. 서블릿 규약에 따라 자바 코드 작성
ㄴ. 자바 코드를 컴파일하여 클래스 파일 생성
ㄷ. /WEB-INF/classes 폴더에 클래스 파일을 패키지에 알맞게 위치시킨다.
ㄹ. Web.xml 파일에 서블릿 클래스를 생성한다.
서블릿 구현은 어떻게 할까??
1. 서블릿 클래스 구현 시 HttpServlet 클래스를 상속받아야 한다.
2. 처리하고자 하는 HTTP방식(method)에 따라 알맞은 메소드를 재정의 해야한다.
è GET방식 일 경우 => doGet() 메소드 재정의
doGet()의 경우 HttpServletRequest 와 HttpServletResponse 두 파라미터를 갖음
3. 서블릿 클래스 생성한 다음 WEB-INF 폴더의 web.xml 파일에 서블릿 클래스를 등록해야한다 .
è 서블릿으로 사용할 클래스
è 서블릿과 URL간의 매핑 ( 사용할 서블릿을 지정했다면 , 해당 서블릿이 어떤 URL을 처리할 것인지에 대한 매핑 정보를 등록 )
4. 애노테이션으로 매핑하기
è 서블릿 2.5 버전까지는 web.xml 파일에 서블릿으로 등록해야 서블릿 클래스를 사용할 수 있었다.
è 서블릿 3.0 버전부터는 @WebServlet 애노테이션을 사용하면 web.xml파일에 따로 등록하지 않아도 서블릿으로 등록된다 .
è @WebServlet 애노테이션은 urlPatterns 속성을 갖는다 . 이 속성은 해당 서블릿과 매핑될 URL 패턴을 지정할 때 사용한다.
간단한 애노테이션 예를 들어보자.
@WebServlet( urlPatterns ="/hello")
public class HelloServlet extends HttpServlet {
......
}
예제를 통해서 Servlet이 어떻게 구현되고 사용되는지 알아보자 .
NowServlet.java
package example;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class NowServlet extends HttpServlet {
@Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=euc-kr");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>현재시간</title></head>");
out.println("<body>");
out.println("현재 시간은");
out.println(new Date());
out.println("입니다.");
out.println("</body></html>");
}
}
내가 만든 서블릿을 Web.xml에 등록 or 설정해야 한다.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<servlet>
<servlet-name>now</servlet-name>
<servlet-class>example.NowServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>now</servlet-name>
<url-pattern>/now</url-pattern>
</servlet-mapping>
</web-app>
Web.xml에 servlet을 구현하기 위해서는 <servlet> 태그와 <servlet-mapping>태그를 사용해서
구현할 수 있다.
<servlet> 태그내에 <servlet-name>은 서블릿을 참조할 때 사용할 이름을 입력한다.
<servlet-class> 서블릿으로 사용할 클래스의 완전한 이름 or 패키지.이름을 입력한다.
<servlet-mapping> 태그를 이용하여 URL 매핑을 한다.
<servlet-name>은 매핑할 서블릿 이름을 지정한다.
<url-Pattern>은 매핑할 URL 패턴을 지정한다.
HTTP 각 방식별 구현 메서드는 다른데 , 다음과 같다.
GET 방식
@override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException , IOException
{
.... // GET 방식에 대한 처리 , 예 , 폼 출력
}
POST 방식
@override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException , IOException
{
.... // GET 방식에 대한 처리 , 예 , 폼 출력
}
'학부공부 > 웹시스템설계및개발' 카테고리의 다른 글
Command 패턴을 알아보자. (0) | 2018.10.29 |
---|---|
MVC 패턴 기초. (0) | 2018.10.13 |
태그 파일의 variable 디렉티브와 name-given을 이용한 변수 추가 (0) | 2018.10.13 |
태그 파일에서 몸체 내용 처리 (0) | 2018.10.13 |
EL , Core , FMT , functions 태그를 사용하여서 체크박스값 가져오기 (0) | 2018.10.03 |
#IT #먹방 #전자기기 #일상
#개발 #일상