JSP(Java Server Page)

WOOK JONG KIM·2022년 11월 26일
0

궁금 저장소

목록 보기
2/5
post-thumbnail

JSP 란?

Java 코드가 들어가 있는 HTML 코드

예시

<%@page contentType="text/html; charse=euc-kr"%>
    <HTML>
        <HEAD><TITLE>인사하기</TITLE></HEAD>
        <BODY>
            안녕하세요,<%=request.getParameter("NAME")%>님
            <% application.log("[인사하기] JSP 페이지가 호출되었습니다.");%>
        </BODY>
    </HTML>
 

서블릿은 자바 소스코드 속에 HTML코드가 들어가는 형태인데, JSP는 이와 반대로 HTML 소스코드 속에 자바 소스코드가 들어가는 구조

HTML속에서 자바코드는 <% 소스코드 %> 또는 <%= 소스코드 =%>형태
-> 자바 소스코드로 작성된 이 부분은 웹 브라우저로 보내는 것이아니라 웹 서버에서 실행되는 부분
-> 웹 프로그래머가 소스코드를 수정 할 경우에도 디자인 부분을 제외하고 자바 소스코드만 수정하면 되기에 효율을 높여줌
-> 또한 컴파일과 같은 과정을 할 필요없이 JSP페이지를 작성하여 웹 서버의 디렉토리에 추가만 하면 사용이 가능

서블릿 규칙은 꽤나 복집하기 때문에 JSP가 나오게 되었는데 JSP는 WAS(Web Application Server)에 의하여 서블릿 클래스로 변환하여 사용

웹 서버가 사용자로부터 서블릿에 대한 요청을 받으면 서블릿 컨테이너에 그 요청을 넘김

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

	// TODO Auto-generated method stub
	//①브라우저에 반환할 정보의 문자 코드를 설정
	response.setContentType("text/html; charset=UTF-8"); 

	//②html 출력
	PrintWriter out = response.getWriter(); 
	out.println("<html>");
	out.println("<head>");
	out.println("</head>");
	out.println("<body>");
	out.println("<p>Hello Java!</p>");
	out.println("</body>");
	out.println("</html>");
}

요청을 받은 컨테이너는 HTTP Request와 HTTP Response 객체를 만들어, 이들을 통해 서블릿 doPost()나 doGet()메소드 중 하나를 호출
-> 만약 서블릿만 사용하여 사용자가 요청한 웹 페이지를 보여주려면 out 객체의 println 메소드를 사용하여 HTML 문서를 작성해야 하는데 이는 추가/수정을 어렵게 하고, 가독성도 떨어지기 때문에 JSP를 사용하여 비지니스 로직과 프레젠테이션 로직을 분리

여기서 서블릿은 데이터의 입력, 수정 등에 대한 제어를 JSP에게 넘겨서 프레젠테이션 로직을 수행한 후 컨테이너에게 Response를 전달

이렇게 만들어진 결과물은 사용자가 해당 페이지를 요청하면 컴파일이 되어 자바파일을 통해 .class 파일이 만들어지고, 두 로직이 결합되어 클래스화 되는것을 확인할 수 있다.

out객체의 println 메소드를 사용해서 구현해야하는 번거로움을 JSP가 대신 수행


Reference

https://mangkyu.tistory.com/14

profile
Journey for Backend Developer

0개의 댓글