서블릿 프로그래밍
본래 서블릿 프로그래밍은
자바코드로 구현하고 컴파일 후 배포하는 복잡한 과정을 거쳐야하지만
이클립스를 사용해 좀 더 편하고 빠르게 구현해보겠습니다.
우선 기본적인 서블릿 클래스를 만들어 보겠습니다.
클래스 이름은 practice 패키지에 example.java 로 하겠습니다.
서블릿은 사용 전 매핑이라는 것을 해줘야합니다.
서블릿 매핑이란 서블릿의 URL주소를 보다 쉽고 간결하게 표시하기 위해 주소를 다시 붙여주는 것입니다.
매핑에는 2가지 방법이 있습니다.
1. Web.xml 파일 안에 매핑해주기
Web.xml은 다이나믹 프로젝트를 생성시
밑 web.xml 옵션을 추가하시면 자동으로 추가됩니다. 혹시 없으신 경우에는
본인 컴퓨터에 깔려있는 apache-tomcat 폴더에 가셔서 webapps-ROOT-WEB-INF에 가시면 있습니다 이를 복사하셔서
프로젝트의 WEB-INF 폴더에 복사 해주시면 됩니다.
그 후 web.xml 에 가셔서 서블릿 매핑 코드를 입력해 주시면 됩니다.
<servlet-name>Test</servlet-name> -- servlet에 별칭을 지정해 주는 코드입니다.
<servlet-class>practice.example</servlet-class> -- 자신이 사용할 servlet 클래스이름을 패키지 포함 적어주시면됩니다,.
<servlet-name>Test</servlet-name>
<url-pattern>hello</url-pattern> -- 해당 코드는 url로 접속시 /hello로 접속하겠다 라는 의미입니다.
2. 어노테이션으로 URl 매핑하기
url 매핑은 기존 web.xml 매핑법보다 휠씬 간단합니다.
우선 web.xml로 가셔서 상단에서 metadata-complete를 false로 바꿔줍니다.
그 후 사용할 servlet 파일로 가셔서 위에 어노테이션으로 적어주시면됩니다.
자 그후 코드를 짜보면 이런식으로 짤 수 있습니다.
package practice;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/hello")
public class example extends HttpServlet{
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html ; charset=UTF-8");
PrintWriter out =resp.getWriter();
out.println("웹페이지에 출력하기");
}
1. 서블릿 파일은 HttpServlet를 상속받아 사용합니다
2. 서블릿 파일에서는 자바 클래스에서 사용하는 main 함수 대신 service 함수를 사용합니다.
3. setCharacterEncoding은 요청 형식은 UTF-8형식으로 한다는 의미입니다.
4. PrintWriter는 웹페이지에 쓰기 위한 함수입니다.
5. 본래 자바에서 사용하던 System.out.println(str)은 콘솔 창에서만 보이며 웹페이지에 출력하기위해선
out.println(str) 을 사용합니다
자 매핑 한것처럼 hello 주소로 잘 나온것을 확인 할 수 있습니다. 다음 시간에는 post,get 방식을 알아보도록 하겠습니다.