서블릿(servlet)
이번 서블릿에 대해 포스팅하겠습니다.
우선 서블릿은 서블릿 클래스로부터 만들어진 것입니다.
웹 컨테이너가 이 액션을 취해줍니다.
즉 서블릿 클래스를 가지고 서블릿 객체를 만든 후 객체를 초기화하여 웹 서비스 할 수 있는 형태로 만들어줍니다.
(인스턴스화) (초기화)
서블릿 클래스----------------->서블릿 객체----------------> 서블릿
여기서 웹컨테이너에서 멀티 스레드로 할지 단일 스레드로 할지 정해야합니다.
멀티스레드는 필요한 서블릿 수가 적을 때 시스템 자원과 서블릿이 차지하는 메모리를 절약할 수 있는 장점이 있지만
공유 문제에 신경써야합니다.(동시에 사용)
단일세르데는 공유 문제는 신경 안쓰셔도 되지만 시스템 자원 메모리에 큰 낭비가 오게됩니다.
적절히 사용하도록 합시다.
앞에서 얘기드렸듯이 서블릿을 작성하기 위해서 규칙이 있습니다.
- javax.servlet.http.HttpServlet 클래스 상속
- doGet 메소드 doPost 메소드 안에 기술
- HTML문서는 doGet,doPost 메서드 두 번째 파라미터 이용
javax.servlet.http.HttpServlet 클래스 상속을 하는데 public 형으로 선언하여합니다. 남들도 사용 하기 위해서죠.
public class HundredServlet extends HttpServlet{
}
이 클래스 안에 doGet or doPost를 선언합니다.
여기에는 javax.servlet.http.HttpServletRequest와 javax.servlet.http.HttpServletResponse 파라미터를 받고
예외처리로 ServletException과 IoException을 던집니다.(throws)
우선 doGet메소드부터 보시죠.
public class HundredServlet extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse reponse) throws ServletException, IOException{
}
}
이런 식으로 메소드를 이용하시면 됩니다. doGet과 doPost의 차이는 다음에 설명드리도록 할게요.
실행 결과를 출력하기 위해서는 doGet메소드의 두번째 파라미터를 이용합니다.
즉
PrintWriter writer=reponse.getWriter();
를 이용해서 출력합니다. 간단한 서블릿 클래스를 봅시다.
import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;
public class HundredServlet extends HttpServlet{
public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
{
int total=0;
for(int cnt=1; cnt<101; cnt++)
total+=cnt;
PrintWriter out=response.getWriter();
out.println("<HTML>");
out.println("<HEAD><TITLE>Hundred Servlet</TITLE></HEAD>");
out.println("<BODY>");
out.printf("1+2+3+...+100=%d",total);
out.println("</BODY>");
out.println("</HTML>");
}
}
1부터 100까지 더하는 코드입니다. reponse를 이용하여 출력해줍니다.
즉 파란색 부분이 HTML로 만들어 웹 브라우저로 출력하는 명령문입니다.
우선 이코드를 컴파일을 해야합니다.
cmd창을 열고
javac -cp "아파치 톰캣 내 lib에서 servlet-api.jar 파일 경로명" HunderedServlet.java
명령어를 칩니다.
그러면 .class 파일이 만들어집니다.
이 파일을 아파치 톰캣 내 webapps 디렉토리가서 만든 아무 폴더에 WEB-INF 서브 디렉토리 생성합니다.
거기 안에서 classes라는 폴더를 만들고 거기다 집어넣어줍니다.
클래스 파일을 설치해줬다면 마지막으로 등록을 해줘야합니다.
등록은 web.xml 에서 해줍니다.
WEB-INF 서브 디렉토리에서 web.xml파일을 만들어줍니다.
그다음 <web-app> 시작 태그 안에 다음 내용을 추가합니다.
<web-app xmlns=http://java.sun.com/xml/ns/javaee version="2.5">
<servlet>
<servlet-name>hundred-servlet</servlet-name>
<servlet-class>HundredServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hundred-servlet</servlet-name>
<url-pattern>/hundred</url-pattern>
</servlet-mapping>
</web-app>
그다음 http://localhost:8080/폴더명/url-pattern 값 을 쳐서 들어가서 확인해봅니다.
ex)http://localhost:8080/brain/hundred
'웹 > JSP' 카테고리의 다른 글
JSP의 기초(2) (0) | 2018.10.03 |
---|---|
JSP의 기초 (0) | 2018.09.19 |
서블릿에 대해(2) (0) | 2018.09.12 |
간단한 JSP 페이지 작성하기 (0) | 2018.09.05 |
JSP와 서블릿 기초 (0) | 2018.09.04 |