Learn & Record

JSP (인텔리제이 구버전 다운로드, 톰캣설치, 프로젝트 생성, 한글 설정 변경, 변경 코드 반영 설정, 자바 백엔드 이론, JSP,스크립트 태그, 연습문제, 디렉티브 태그) 본문

Dev/JSP

JSP (인텔리제이 구버전 다운로드, 톰캣설치, 프로젝트 생성, 한글 설정 변경, 변경 코드 반영 설정, 자바 백엔드 이론, JSP,스크립트 태그, 연습문제, 디렉티브 태그)

Walker_ 2024. 4. 15. 12:36

1. 인텔리제이 울티메이트 22.2.5 zip 버전 다운로드

https://www.jetbrains.com/ko-kr/idea/download/other.html

 

기타 버전 - IntelliJ IDEA

 

www.jetbrains.com

 - 접속 > 22.2.5 zip 버전 다운로드 > 압축해제

 

2. 톰캣 설치

https://tomcat.apache.org/

 

Apache Tomcat® - Welcome!

The Apache Tomcat® software is an open source implementation of the Jakarta Servlet, Jakarta Server Pages, Jakarta Expression Language, Jakarta WebSocket, Jakarta Annotations and Jakarta Authentication specifications. These specifications are part of the

tomcat.apache.org

 

 

접속 > 9.대 버전 다운로드 클릭 > 64-bit window zip 버전 다운로드 > 압축해제

 

3. 프로젝트 생성

 - New Project 클릭 > Jakarta EE 클릭

 

 - New : 프로젝트 이름

 - Location : 폴더 위치

 - Template : Web application 선택

 - App server > new > Tomcat server > Home의 폴더 아이콘 클릭 > 톰캣 설치 폴더 선택

 - 폴더 선택 시 버전 나오는 지 확인

 - Language : Java 선택

 - Build system : Gradle 선택

 - grou, arifact : 그대로 둬도 괜찮음

 - JDK : Java 17 버전 선택

 - Next 

 - Version : Java EE 8 선택 

 - Create

 - 프로젝트 생성 완료까지 대기

 

4. 한글 설정 변경

 

 - 플레이버튼 클릭 > 한글 깨지는 거 확인

 

 - Help > Edit Custom VM Options 

 - 작성

 - 인텔리제이 재시작

 - Edit Configurations 클릭 

 - Deployment > 기존 항목 삭제  

 - + 클릭 > Artifact > exploded 선택

 

 - 삭제 후 / 만 남기고 OK

 

5. 변경된 코드의 반영

 

 

 - 둘 다 Update Classes and resourcse로 설정 변경

 

6. 자바 백엔드

 - 자바 백엔드의 발전

 1) 서블릿 

 - 핵심은 자바로 html을 표현하는 것(자바와 html의 결합). 처음엔 자바코드에서 html을 출력. 

 - 단점 : html 작업이 힘듬

 

 2) JSP

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

 - 단점 : 규모가 큰 프로젝트에서는 구조화된 작업이 힘듬 -> 유지 보수가 어려움

 

 3) JSP + 서블릿을 이용한 MVC 패턴

 - controller와 model은 servlet으로, view는 jsp로 작업

 - 아직도 컴공과 전공으로는 대부분 이 부분을 수업

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

 

 4) 스프링

 - servlet 코드 없이 순수 자바 코드만으로 작업가능. 경량화.

 - 단점 : 버전이 올라가니 결국 얘도 무거워짐. 설정 잡기 다 빡셈

 

 5) 스프링 부트

 - 적은 코드 줄 수로 서비스가 가능. MSA에 적합.

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

 

7. 웹 언어 & JSP 발전

 1) 웹 프로그래밍 언어

 - 클라이언트 측 실행 언어 : 브라우저에서 실행되는 언어. 자바 스크립트 등

 - 서버 측 실행 언어 : JSP, PHP 등등

 

 2) JSP의 발전

 - JSP는 서블릿을 자동으로 만들어 주는 도구.

 

발전 방향 

 - 서블릿 > JSP > 서블릿과 JSP를 결합한 MVC > EJB > Spring > Spring boot

 

8. JSP

 - 스크립트 태그 : HTML 코드에 자바 코드를 넣어 프로그램이 수행하는 기능을 구현

 - src > main > webapp에 폴더하나 생성

 - 폴더 new > JSP/JSPX 생성

<%--
  Created by IntelliJ IDEA.
  User: 평일 오전 계정
  Date: 2024-04-15
  Time: 오전 10:58
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h2>Scripting Tag</h2>
    <%--
    
    --%>

</body>
</html>
<%-- 주석 태그
JSP 주석 태그 : JSP 웹 컨테이너가 무시하는 텍스트를 표시
주석 태그는 JSP 페이지의 일부를 주석 처리하여 숨길 때 유용
주석은 프로그램의 실행에는 영향을 미치지 않지만 프로그램의 이해 및 소스코드의 분석을 위해 반드시 기술할 것을 권장

주석 태그는 JSP 웹 페이지에서만 사용되며, 웹 브라우저를 통해 해당 페이지의 출력 결과를 확인하거나
웹 브라우저상에서 소스 보기를 해도 주석 태그 내의 내용이 표시 되지 않음
--%>

 

 - 선업문 : <%!..%>, 자바 변수나 메소드를 작성하는 데 사용

<%!
    // 선언문 태그를 사용하여 자바 변수와 메서드 정의.
    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")%>
<%--
  Created by IntelliJ IDEA.
  User: 평일 오전 계정
  Date: 2024-04-15
  Time: 오전 11:20
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
  <%-- 선언문 태그 사용 예 : 전역변수 선언 --%>
  <%!
    int count = 0; // 전역변수 count를 0으로 초기화
  %>
  Page Count is
  <%
    out.println(++count); // 전역 변수 1증가. 새로 고침을 하면 숫자가 증가
  %>

</body>
</html>
<body>
<%-- 선언문 태그에 전역 메서드 사용하기 --%>
<%-- 전역 메서드 sum()을 선언하기 위해 선언문 태그를 작성 --%>
  <%!
    int sum(int a, int b) {
      return a + b;
    }
  %>
  <%-- 결과 값 출력을 위해 스크립틀릿 태그를 작성 --%>
  <%
    out.println("2 + 3 = " + sum(2,3)); // 선언문 태그에 선언된 전역 메서드 sum() 호출
  %>
</body>
<body>
  <%
    int count = 0; // 지역 변수 선언
  %>
  Page Count is
  <%
    out.println(++count); // 전역 변수 1증가
  %>
</body>
<body>
  <%-- 스클립틀릿 태그에 지역변수 사용하기 --%>
  <%
    // 지역 변수 a, b에 값을 저장하도록 스크립틀릿 태그를 작성
    int a = 2;
    int b = 3;
    int sum = a + b;
    out.println("2 + 3 = " + sum);
  %>
</body>

 

<body>
  <%-- 선언문 태그 사용 예 : 전역변수 선언 --%>
  <%!
    int count = 0; // 전역변수 count를 0으로 초기화
  %>
  Page Count is
  <%=++count%>
</body>

 

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

 

9. 연습문제

<body>
  <%!
    String str = "Hello, Java Server Pages";
    String getString(String st) {
      return st;
    }
  %>
  <%
  %>
  <%=getString(str)%>
</body>
<body>
  Today :
  <%
    Date today = new java.util.Date();
    out.println(today);
  %>
</body>

 

 

10. 디텍티브 태그 

 - JSP 페이지에 필요한 정보를 설정

 - page, contentType 속성, pageEncoding 속성 등

 

 - page : <%@ page.. %> : JSP페이지에 정보를 저장한다.

<%--
  Created by IntelliJ IDEA.
  User: 평일 오전 계정
  Date: 2024-04-15
  Time: 오후 12:17
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="application/msword"%>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%--
     page 디렉티브 태그에 콘텐츠 유형을 마이크로 소프르 워드 문서(application/msword)로 설정하기.
     1) 콘텐츠 유형을 application/msword로 설정하도록 page 디렉티브 태그의 contentType 속성을 작성
     --%>
  Today is : <%=new java.util.Date()%>
</body>
</html>
<%@ page contentType="text/xml;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h2>contentType 디렉티브 태그</h2>
    <h4>text/html : HTML 출력</h4>
    <h4>charset=utf-8 : 문자 인코딩</h4>
</body>
</html>

 

content Type : XML 일 때

 

 

<%@ page import="java.util.Date" %><%--

 - java 임포트 명령을 해주는 코드

 


공부 과정을 정리한 것이라 내용이 부족할 수 있습니다.

부족한 내용은 추가 자료들로 보충해주시면 좋을 것 같습니다.

읽어주셔서 감사합니다 :)