티스토리 뷰
요즘 Servlet과 JSP를 배우고 있는데, 이해할 겸 내 나름대로 내용을 정리해본다. (혹시 정정할 내용이 있다면 댓글 부탁드립니다.)
Servlet
Servlet은 JSP가 나오기 전에 웹페이지(HTML)를 동적으로 생성하는 기술로 제공되었다. Servlet은 자바 클래스의 일종으로, Servlet 클래스를 선언할 땐 Servlet 인터페이스를 구현하는 방법과 HttpServlet 클래스를 상속하는 방법이 있는데, 전자는 복잡하므로 후자를 선호한다. Servlet은 자바의 여러 장점들을 누릴 수 있지만 HTML, CSS, 웹디자인과 함께 사용하기엔 많은 단점이 있다. 그래서 1999년에 Sun에서는 JSP(JavaServer Pages)를 내놓았다. Servlet의 경우, 웹페이지의 form에서 들어오는 get요청을 처리하기 위한 doGet메서드, form에서 들어오는 post요청을 처리하기 위한 doPost메서드가 있다.
Servlet 코드를 살펴보자면 아래와 같다.
package 패키지명;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("url") // 이 클래스를 호출할 url
public class 클래스명 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter writer=resp.getWriter();
writer.println("<HTML>");
writer.println("<BODY>");
writer.println("<H1>Hello, world!</H1>");
writer.println("</BODY>");
writer.println("</HTML>");
writer.close(); // 자원 해제 잊지 말기
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
// 웹페이지 작성
}
동적으로 HTML을 만들 땐 response 객체의 getWriter()메서드를 호출해서 위처럼 HTML소스를 작성한다. 그리고 자바파일은 웹을 통해서 요청 혹은 응답할 수 없기 때문에 브라우저가 자바 파일을 호출할 수 있도록 가상주소를 매핑해준다.(@WebServlet("url")이 그것. 혹은 web.xml을 통해서도 가능하다.
JSP
JSP는 Servlet과는 반대로 HTML 태그 안에 자바코드를 삽입하여 동적으로 웹페이지를 생성한다. 아래는 JSP 태그에 대해 굿노트에 필기한 내용이다.
'공부흔적' 카테고리의 다른 글
pom.properties? MANIFEST.MF? (0) | 2021.03.16 |
---|---|
400 Bad Request (0) | 2021.03.15 |
스프링에서 Bean을 설정하는 세 가지 방법 (0) | 2021.03.10 |
.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/ 는 어디에서 오나? (0) | 2021.02.28 |
자바 서블릿 실행 구조 (0) | 2021.02.02 |