본문 바로가기
코딩/jsp, servlet

[jsp, servlet] #1 JSP 와 서블릿(Servlet)

by lazy_nyoung 2023. 2. 19.

JSP

Java Server Pages 의 약자이지만, 오라클과 상표권 문제로 Jakarta Server Page로 변동되었습니다. 

HTML 코드와 JAVA 코드를 사용하여 동적인웹페이지를 만들 수 있는 웹어플리케이션 도구입니다.

JSP 가 실행되면 자바 서블릿(Servlet) 으로 변환되며 WAS(Wev Application Server)에서 동작되면서 필요한 기능을 수행,

생성된 데이터를 웹페이지와 함께 클라이언트로 응답합니다.

  • html코드는 그냥 입력하면 되고, 자바 코드는 <% %>  사이에 치면 된다. 
  • 스크립틀릿(scritlet) - <%...%>이 태그 안에 있는 Java 코드
  • 지시자 -  <%@   %>
  • 표현식 - <%=  %>  출력이 된다.  *세미콜론 사용하지 말것.

 

 

Servlet

Server 와 Applet의 합성어로, 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램을 말합니다. 

클라이언트의 요청을 처리하고, 그 결과를 반환하는 역할을 해줍니다. 

  • HttpServlet 클래스를 상속받아야 서블릿으로 동작함
  • web.xml 파일에 서블릿 클래스를 설정

 

 

MVC패턴에서

V - jsp

C - servlet 

라고 생각하시면 됩니다.  

 

 

@WebServlet("./test.do")
public class Test extends HttpServlet {

   @Override
   public void doGet(HttpServletRequest req, HttpServletResponse res)
      throws ServletException, IOException 
   {
   }
   @Override
   public void doPost(HttpServletRequest req, HttpServletResponse res)
      throws ServletException, IOException 
   {
   }
}

Web.xml 에 만든 서블릿을 등록, URL 매핑을 해주시거나, @WebServlet 어노테이션을 사용하여 매핑을 해줍니다. 

 

 

Web.xml 파일

<?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_4_0.xsd" id="WebApp_ID" version="4.0">
    <servlet>    
    	<servlet-name>Test</servlet-name>
    	<servlet-class>Test</servlet-class>
    </servlet>
    <servlet-mapping>
    	<servlet-name>Test</servlet-name>
    	<url-pattern>/test.do</url-pattern>
    </servlet-mapping>
</web-app>

 

해당하는 서블릿에서 init(), service() 메소드를 호출-

doGet() 또는 doPost() 메소드를 호출하여 동적 페이지를 생성 후,  response 합니다. 

 

쉽게 예를 들자면, 로그인을 할 때 서버가 클라이언트에서 입력되는 아이디와 비밀번호를 확인하고 그 결과를 응답하는데, 

이러한 역할을 수행하는 것이 서블릿 입니다. 

 

 

* jsp는 wepapp 경로에, servlet 파일은 java경로에 만들기.

*WEB-INF 아래 있는 jsp페이지는 URL 접근이 불가. 서블릿을 경유하여 RequestDispatcher를 사용하여 요청해야함. 그러면 WEB-INF 아래 있는 경로이더라도 페이지 호출이 가능(다만 scope는 request scope를 갖게 된다 - 주의) 

'코딩 > jsp, servlet' 카테고리의 다른 글

[jsp] Cookie (쿠키) 생성, 삭제, 읽기  (0) 2023.03.17