1.  자바 백엔드의 발전

 

1)  서블릿 : 자바로 html 표현하는 것 (자바와 html 결합) 처음엔 자바코드에서 html을 출력

     📍 단점: html 작업이 힘들다

출처 : https://medium.com/javarevisited/servlet-things-every-java-developer-must-know-servlet-container-filter-and-listener-374a460169bd

 

2)  JSP : PHP의 영향으로 html 코드에 자바가 들어감. 서블릿과 반대

     📍 단점: 규모가 큰 프로젝트에서는 구조화된 작업이 힘들다. → 유지보수 어려움

출처 : https://mauryaravi021.medium.com/servlet-and-jsp-3a830470689b

 

3)  JSP + 서블릿을 이용한 MVC 패턴 : controller와 model은 servlet으로, view는 jsp로 작업

     📍 단점 : 구조화된 프로그래밍은 가능한데, 규모가 더 커지니 코드가 복잡하고 성능 저하

 

💡 자바 서블릿 (Java Servlet)은 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다. 자바 서블릿은 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종이다. 서블릿은 JSP와 비슷한 점이 있지만, JSP가 HTML 문서 안에 Java 코드를 포함하고 있는 반면, 서블릿은 자바 코드 안에 HTML을 포함하고 있다는 차이점이 있다.

 

https://23log.tistory.com/178

 

[JSP] JSP, 서블렛, EL, JSTL에 대한 개념 정리

💬Spring 환경에서 개발을 해야하는데 ‘아.. 이거랑 이거 차이가 뭐였지..?’ 싶은 개념을 빠르게 적립하고 넘어가고 싶은 분들을 위해 작성하였습니다!인트로이전 싸피 교육 과정을 통해 Spring M

23log.tistory.com

 

 

4)  스프링 : servelet 코드 없이 순수 자바 코드만으로 작업 가능. 경량화

     📍 단점 : 버전이 올라가면서 성능 저하. 설정 잡기가 힘듦

 

5)  스프링 부트 : 적은 코드 줄 수로 서비스가 가능. MSA에 적합

     ➡️  최신 신규 프로젝트는 대부분 스프링 부트로 작업

 

  • 클라이언트 측 실행언어 : 브라우저에서 실행되는 언어. 자바스크립트
  • 서버 측 실행 언어 : 서버에서 실행되는 언어. JSP, PHP, ASP, 파이썬, node.js

2.  스크립트 태그  Script Tag

태그 형식 설명
선언문 declaration <!% ... %> 자바 변수나 메소드를 작성
스크립틀릿 scriptlet
<% ... %> 자바 로직 코드 작성
표현문 expression <%= ... %> 선언문의 변수, 메소드, 계산식을 호출하여 문자열로 출력

 

 

1) 선언문 태그 declaration 

<%! 자바 코드; %> 

 

🚀  변수나 메소드 등을 선언하는 태그 

🚀  선언문 태그에 선언된 변수와 메서드는 서블릿 프로그램으로 번역될 때 _jspService() 메소드 외부에 배치되므로 JSP 페이지 임의의 위치에서 선언할 수 있음

🚀  스크립틀릿 태그보다 나중에 선언해도 스크립틀릿 태그에서 사용할 수 있음

🚀  선언문 태그로 선언된 변수는 서블릿 프로그램으로 번역될 때 클래스 수준의 멤버 변수가 되므로 전역 변수로 사용

 

변수 선언
<body>
    <%--선언문 태그 사용 예 : 전역변수 선언--%>
    <%!
      int count = 0; // 전역변수 count를 0으로 초기화
    %>
    Page Count is
    <%
      out.println(++count); // 전역변수 1 증가. 새로 고침을 하면 숫자가 증가.
    %>
</body>


메소드 선언
<body>
    <%-- 선언문 태그에 전역 메서드 사용하기 --%>
    <%-- 전역 메서드 sum()을 선언하기 위해 선언문 태그를 작성 --%>
    <%!
      int sum(int a, int b) {
        return a + b;
      }
    %>
    <%-- 결과 값 출력을 위해 스크립틀릿 태그를 작성 --%>
    <%
      out.println("2 + 3 = " + sum(2, 3)); // 선언문 태그에 선언된 전역 메서드 sum() 호출.
    %>
</body>


2) 스크립틀릿 태그 scriptlet 

 

<% 자바 코드; %> 

 

🚀  자바 코드로 이루어진 로직 부분을 표현

🚀  스크립틀릿 태그는 가장 일반적으로 사용되며 변수 또는 메소드 호출, 유효식 등을 포함할 수 있음

🚀  모든 텍스트, HTML 태그, 또는 JSP 요소는 스크립틀릿 태그 외부에 있어야 함

🚀  스크립틀릿 태그에 작성된 자바 코드는 서블릿 프로그램으로 변환될 때 _jspService() 메소드 내부에 복사

      ➡️ 각 클라이언트의 요청에 대해_jspService() 메소드가 호출되므로 이 메소드의 내부 코드가 클라이언트의 요청마다 실행

      ➡️  _jspService() 메소드 내부에 복사되므로 지역변수가 되어 이 태그에 선언된 변수는 스크립틀릿 태그 내에서만 사용

 

지역 변수 선언
<body>
    <%
      int count = 0; // 지역 변수 선언
    %>
    Page Count is
    <%
      out.println(++count); // 지역 변수 1 증가.
    %>

</body>

 

  📍  전역 변수와 달리 지역변수에서는 1만 증가 ▶️ 새로고침해도 증가되지 않음

 


3) 표현문  expression

<body>
    <%-- 표현문 태그로 현재 날짜 출력하기 --%>
    <p> Today's date: <%=new java.util.Date()%></p>
</body>


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h2>Stripting Tag</h2>

    <%!
        // 선언문 태그를 사용하여 자바 변수와 메서드 정의.
        int count = 3;
        String makeItLower(String data) {
            return data.toLowerCase(); // 소문자로 변경하는 코드
        }
    %>
    <%
        // 스크립틀릿 태그로 자바 로직 코드 작성
        for (int i = 1; i <= count; i++) {
            out.println("Java Server Page " + i + ".<br>");
        }
    %>
    <%-- 표현문 태그로 선언문의 메서드를 호출하여 문자열 형태로 출력 --%>
    <%=makeItLower("Hello World")%>
</body>
</html>

 

 

 

 

[ 내용 참고 : IT 학원 강의 ]

+ Recent posts